Orocos Real-Time Toolkit  2.5.0
rtt-marsh-config.h
00001 #ifndef RTT_MARSH_CONFIG_H
00002 #define RTT_MARSH_CONFIG_H
00003 
00004 #include "../rtt-config.h"
00005 
00006 //
00007 // See: <http://gcc.gnu.org/wiki/Visibility>
00008 //
00009 #define RTT_GCC_HASVISIBILITY
00010 #if defined(__GNUG__) && defined(RTT_GCC_HASVISIBILITY) && (defined(__unix__) || defined(__APPLE__))
00011 
00012 # if defined(RTT_MARSH_DLL_EXPORT)
00013    // Use RTT_MARSH_API for normal function exporting
00014 #  define RTT_MARSH_API    __attribute__((visibility("default")))
00015 
00016    // Use RTT_MARSH_EXPORT for static template class member variables
00017    // They must always be 'globally' visible.
00018 #  define RTT_MARSH_EXPORT __attribute__((visibility("default")))
00019 
00020    // Use RTT_MARSH_HIDE to explicitly hide a symbol
00021 #  define RTT_MARSH_HIDE   __attribute__((visibility("hidden")))
00022 
00023 # else
00024 #  define RTT_MARSH_API
00025 #  define RTT_MARSH_EXPORT __attribute__((visibility("default")))
00026 #  define RTT_MARSH_HIDE   __attribute__((visibility("hidden")))
00027 # endif
00028 #else
00029    // NOT GNU
00030 # if defined( __MINGW__ ) || defined( WIN32 )
00031 #  if defined(RTT_MARSH_DLL_EXPORT)
00032 #   define RTT_MARSH_API    __declspec(dllexport)
00033 #   define RTT_MARSH_EXPORT __declspec(dllexport)
00034 #   define RTT_MARSH_HIDE   
00035 #  else
00036 #   define RTT_MARSH_API    __declspec(dllimport)
00037 #   define RTT_MARSH_EXPORT __declspec(dllexport)
00038 #   define RTT_MARSH_HIDE 
00039 #  endif
00040 # else
00041 #  define RTT_MARSH_API
00042 #  define RTT_MARSH_EXPORT
00043 #  define RTT_MARSH_HIDE
00044 # endif
00045 #endif
00046 
00047 #endif
00048