Orocos Real-Time Toolkit  2.6.0
rtt-scripting-config.h
00001 #ifndef RTT_SCRIPTING_CONFIG_H
00002 #define RTT_SCRIPTING_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_SCRIPTING_DLL_EXPORT)
00013    // Use RTT_SCRIPTING_API for normal function exporting
00014 #  define RTT_SCRIPTING_API    __attribute__((visibility("default")))
00015 
00016    // Use RTT_SCRIPTING_EXPORT for static template class member variables
00017    // They must always be 'globally' visible.
00018 #  define RTT_SCRIPTING_EXPORT __attribute__((visibility("default")))
00019 
00020    // Use RTT_SCRIPTING_HIDE to explicitly hide a symbol
00021 #  define RTT_SCRIPTING_HIDE   __attribute__((visibility("hidden")))
00022 
00023 # else
00024 #  define RTT_SCRIPTING_API
00025 #  define RTT_SCRIPTING_EXPORT __attribute__((visibility("default")))
00026 #  define RTT_SCRIPTING_HIDE   __attribute__((visibility("hidden")))
00027 # endif
00028 #else
00029    // NOT GNU
00030 # if defined( __MINGW__ ) || defined( WIN32 )
00031 #  if defined(RTT_SCRIPTING_DLL_EXPORT)
00032 #   define RTT_SCRIPTING_API    __declspec(dllexport)
00033 #   define RTT_SCRIPTING_EXPORT __declspec(dllexport)
00034 #   define RTT_SCRIPTING_HIDE   
00035 #  else
00036 #   define RTT_SCRIPTING_API    __declspec(dllimport)
00037 #   define RTT_SCRIPTING_EXPORT __declspec(dllexport)
00038 #   define RTT_SCRIPTING_HIDE 
00039 #  endif
00040 # else
00041 #  define RTT_SCRIPTING_API
00042 #  define RTT_SCRIPTING_EXPORT
00043 #  define RTT_SCRIPTING_HIDE
00044 # endif
00045 #endif
00046 
00047 #endif
00048