Qpid Proton C++  0.17.0
export.hpp
1 #ifndef PROTON_INTERNAL_EXPORT_HPP
2 #define PROTON_INTERNAL_EXPORT_HPP
3 
4 /*
5  *
6  * Licensed to the Apache Software Foundation (ASF) under one
7  * or more contributor license agreements. See the NOTICE file
8  * distributed with this work for additional information
9  * regarding copyright ownership. The ASF licenses this file
10  * to you under the Apache License, Version 2.0 (the
11  * "License"); you may not use this file except in compliance
12  * with the License. You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing,
17  * software distributed under the License is distributed on an
18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19  * KIND, either express or implied. See the License for the
20  * specific language governing permissions and limitations
21  * under the License.
22  *
23  */
24 
26 
28 #if defined(WIN32) && !defined(PN_CPP_DECLARE_STATIC)
29  //
30  // Import and Export definitions for Windows:
31  //
32 # define PN_CPP_EXPORT __declspec(dllexport)
33 # define PN_CPP_IMPORT __declspec(dllimport)
34 # define PN_CPP_CLASS_EXPORT
35 # define PN_CPP_CLASS_IMPORT
36 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
37 # define PN_CPP_EXPORT __global
38 # define PN_CPP_IMPORT
39 # define PN_CPP_CLASS_EXPORT __global
40 # define PN_CPP_CLASS_IMPORT
41 #else
42  //
43  // Non-Windows (Linux, etc.) definitions:
44  //
45 # define PN_CPP_EXPORT __attribute ((visibility ("default")))
46 # define PN_CPP_IMPORT
47 # define PN_CPP_CLASS_EXPORT __attribute ((visibility ("default")))
48 # define PN_CPP_CLASS_IMPORT
49 #endif
50 
51 // For qpid-proton-cpp library symbols
52 #ifdef qpid_proton_cpp_EXPORTS
53 # define PN_CPP_EXTERN PN_CPP_EXPORT
54 # define PN_CPP_CLASS_EXTERN PN_CPP_CLASS_EXPORT
55 #else
56 # define PN_CPP_EXTERN PN_CPP_IMPORT
57 # define PN_CPP_CLASS_EXTERN PN_CPP_CLASS_IMPORT
58 #endif
59 
61 
62 #endif // PROTON_INTERNAL_EXPORT_HPP