$search
00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_CONFIG_UTILITY_MACROS_HPP_ 00013 #define ECL_CONFIG_UTILITY_MACROS_HPP_ 00014 00015 /***************************************************************************** 00016 ** Include 00017 *****************************************************************************/ 00018 00019 #include "ecl.hpp" 00020 00021 /***************************************************************************** 00022 ** Macros 00023 *****************************************************************************/ 00039 #if (defined __GNUC__) 00040 #define ECL_DONT_INLINE __attribute__((noinline)) 00041 #elif (defined _MSC_VER) 00042 #define ECL_DONT_INLINE __declspec(noinline) 00043 #else 00044 #define ECL_DONT_INLINE 00045 #endif 00046 00047 /***************************************************************************** 00048 ** Depracated 00049 *****************************************************************************/ 00050 00061 #if (defined __GNUC__) 00062 #define ECL_DEPRECATED __attribute__((deprecated)) 00063 #elif (defined _MSC_VER) 00064 #define ECL_DEPRECATED __declspec(deprecated) 00065 #else 00066 #define ECL_DEPRECATED 00067 #endif 00068 00073 #if defined(ECL_IS_WIN32) || defined(ECL_IS_CYGWIN) 00074 #define ECL_HELPER_IMPORT __declspec(dllimport) 00075 #define ECL_HELPER_EXPORT __declspec(dllexport) 00076 #define ECL_HELPER_LOCAL 00077 #else 00078 #if defined(ECL_IS_POSIX) && __GNUC__ >= 4 00079 #define ECL_HELPER_IMPORT __attribute__ ((visibility("default"))) 00080 #define ECL_HELPER_EXPORT __attribute__ ((visibility("default"))) 00081 #define ECL_HELPER_LOCAL __attribute__ ((visibility("hidden"))) 00082 #else 00083 #define ECL_HELPER_IMPORT 00084 #define ECL_HELPER_EXPORT 00085 #define ECL_HELPER_LOCAL 00086 #endif 00087 #endif 00088 00135 #ifdef ECL_HAS_SHARED_LIBS // defined if ecl is compiled as a shared library 00136 #ifdef ECL_BUILDING_SHARED_LIB // defined if we are building the ecl lib (instead of using it) 00137 #define ECL_PUBLIC ECL_HELPER_EXPORT 00138 #else 00139 #define ECL_PUBLIC ECL_HELPER_IMPORT 00140 #endif // ECL_EXPORTS 00141 #define ECL_LOCAL ECL_HELPER_LOCAL 00142 #else // defined if ecl is compiled as a static library 00143 #define ECL_PUBLIC 00144 #define ECL_LOCAL 00145 #endif 00146 00151 #endif /* ECL_UTILITY_CONFIG_MACROS_HPP_ */