Elements
6.2
A C++ base framework for the Euclid Software.
ElementsKernel
ElementsKernel
Export.h
Go to the documentation of this file.
1
42
#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_EXPORT_H_
43
#define ELEMENTSKERNEL_ELEMENTSKERNEL_EXPORT_H_
44
45
#include "
ElementsKernel/Attribute.h
"
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
Generated by
1.8.17