Elements 6.1.2
A C++ base framework for the Euclid Software.
Loading...
Searching...
No Matches
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)
52#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
74#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
define the __attribute__ macro if it doesn't exist for some version of GCC