Elements  6.2
A C++ base framework for the Euclid Software.
Export.h
Go to the documentation of this file.
1 
42 #ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_EXPORT_H_
43 #define ELEMENTSKERNEL_ELEMENTSKERNEL_EXPORT_H_
44 
46 
47 // ---------------------------------- Symbol visibility macros (begin)
48 // Enabled on in Elements v21 mode
49 #if defined(ELEMENTS_HIDE_SYMBOLS)
50 #if defined(__GNUC__) && not defined(__CINT__)
53 #define ELEMENTS_HASCLASSVISIBILITY
54 #endif
55 
56 #if defined(ELEMENTS_HASCLASSVISIBILITY)
57 #define ELEMENTS_IMPORT __attribute__((visibility("default")))
58 #define ELEMENTS_EXPORT __attribute__((visibility("default")))
59 #define ELEMENTS_LOCAL __attribute__((visibility("hidden")))
60 #else
61 #define ELEMENTS_IMPORT
62 #define ELEMENTS_EXPORT
63 #define ELEMENTS_LOCAL
64 #endif
65 
67 #ifdef ELEMENTS_LINKER_LIBRARY
68 #define ELEMENTS_API ELEMENTS_EXPORT
69 #else
70 #define ELEMENTS_API ELEMENTS_IMPORT
71 #endif
72 #else
73 #define ELEMENTS_API
75 #define ELEMENTS_IMPORT
76 #define ELEMENTS_EXPORT
77 #define ELEMENTS_LOCAL
78 #endif // defined(ELEMENTS_HIDE_SYMBOLS)
79 
80 // ---------------------------------- Symbol visibility macros (end)
81 
82 #endif // ELEMENTSKERNEL_ELEMENTSKERNEL_EXPORT_H_
83 
Attribute.h
define the __attribute__ macro if it doesn't exist for some version of GCC