Orocos Real-Time Toolkit  2.9.0
rtt-marsh-config.h
Go to the documentation of this file.
1 #ifndef RTT_MARSH_CONFIG_H
2 #define RTT_MARSH_CONFIG_H
3 
4 #include "../rtt-config.h"
5 
6 //
7 // See: <http://gcc.gnu.org/wiki/Visibility>
8 //
9 #define RTT_GCC_HASVISIBILITY
10 #if defined(__GNUG__) && defined(RTT_GCC_HASVISIBILITY) && (defined(__unix__) || defined(__APPLE__))
11 
12 # if defined(RTT_MARSH_DLL_EXPORT)
13  // Use RTT_MARSH_API for normal function exporting
14 # define RTT_MARSH_API __attribute__((visibility("default")))
15 
16  // Use RTT_MARSH_EXPORT for static template class member variables
17  // They must always be 'globally' visible.
18 # define RTT_MARSH_EXPORT __attribute__((visibility("default")))
19 
20  // Use RTT_MARSH_HIDE to explicitly hide a symbol
21 # define RTT_MARSH_HIDE __attribute__((visibility("hidden")))
22 
23 # else
24 # define RTT_MARSH_API
25 # define RTT_MARSH_EXPORT __attribute__((visibility("default")))
26 # define RTT_MARSH_HIDE __attribute__((visibility("hidden")))
27 # endif
28 #else
29  // NOT GNU
30 # if defined( __MINGW__ ) || defined( WIN32 )
31 # if defined(RTT_MARSH_DLL_EXPORT)
32 # define RTT_MARSH_API __declspec(dllexport)
33 # define RTT_MARSH_EXPORT __declspec(dllexport)
34 # define RTT_MARSH_HIDE
35 # else
36 # define RTT_MARSH_API __declspec(dllimport)
37 # define RTT_MARSH_EXPORT __declspec(dllexport)
38 # define RTT_MARSH_HIDE
39 # endif
40 # else
41 # define RTT_MARSH_API
42 # define RTT_MARSH_EXPORT
43 # define RTT_MARSH_HIDE
44 # endif
45 #endif
46 
47 #endif
48