Go to the documentation of this file.00001
00008
00009
00010
00011
00012 #ifndef ECL_CONFIG_UTILITY_MACROS_HPP_
00013 #define ECL_CONFIG_UTILITY_MACROS_HPP_
00014
00015
00016
00017
00018
00019 #include "ecl.hpp"
00020
00021
00022
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
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