00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef IMP_CONFIG_H
00030 #define IMP_CONFIG_H
00031
00032 #include <boost/static_assert.hpp>
00033
00034 #ifdef _MSC_VER
00035 #ifdef IMP_EXPORTS
00036 #define IMPEXPORT __declspec(dllexport)
00037 #else
00038 #define IMPEXPORT __declspec(dllimport)
00039 #endif
00040 #define IMPLOCAL
00041 #else
00042 #ifdef GCC_VISIBILITY
00043 #define IMPEXPORT __attribute__ ((visibility("default")))
00044 #define IMPLOCAL __attribute__ ((visibility("hidden")))
00045 #else
00046 #define IMPEXPORT
00047 #define IMPLOCAL
00048 #endif
00049 #endif
00050
00051 #if _MSC_VER && !defined(SWIG) && !defined(IMP_DOXYGEN)
00052 #ifdef IMP_EXPORTS
00053
00054 #define IMP_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
00055
00056 #else
00057
00058 #define IMP_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
00059
00060 #endif
00061
00062 #else
00063 #define IMP_EXPORT_TEMPLATE(name)
00064
00065 #endif
00066
00067
00068
00069 #define IMP_BEGIN_NAMESPACE \
00070 namespace IMP {\
00071
00072 #define IMP_END_NAMESPACE \
00073 } \
00074
00075 #define IMP_BEGIN_INTERNAL_NAMESPACE \
00076 IMP_BEGIN_NAMESPACE \
00077 namespace internal {
00078
00079
00080 #define IMP_END_INTERNAL_NAMESPACE \
00081 } \
00082 IMP_END_NAMESPACE
00083
00084
00085 #ifdef IMP_USE_CGAL
00086
00087 BOOST_STATIC_ASSERT(false)
00088 #endif
00089 #ifdef IMP_NO_CGAL
00090
00091 BOOST_STATIC_ASSERT(false)
00092 #endif
00093 #define IMP_NO_CGAL
00094 #ifdef IMP_NO_BOOST_LIBS
00095
00096 BOOST_STATIC_ASSERT(false)
00097 #endif
00098 #ifdef IMP_USE_BOOST_LIBS
00099
00100 BOOST_STATIC_ASSERT(false)
00101 #endif
00102 #define IMP_USE_BOOST_LIBS
00103 #ifdef IMP_NO_DEPRECATED
00104
00105 BOOST_STATIC_ASSERT(false)
00106 #endif
00107 #ifdef IMP_USE_DEPRECATED
00108
00109 BOOST_STATIC_ASSERT(false)
00110 #endif
00111 #define IMP_USE_DEPRECATED
00112 #ifdef IMP_LITTLE_ENDIAN
00113
00114 BOOST_STATIC_ASSERT(false)
00115 #endif
00116 #define IMP_LITTLE_ENDIAN
00117 #ifdef IMP_BOOST_VERSION
00118
00119 BOOST_STATIC_ASSERT(false)
00120 #endif
00121 #define IMP_BOOST_VERSION 103900
00122 #ifdef IMP_DEBUG
00123
00124 BOOST_STATIC_ASSERT(false)
00125 #endif
00126 #define IMP_DEBUG 0
00127 #ifdef IMP_RELEASE
00128
00129 BOOST_STATIC_ASSERT(false)
00130 #endif
00131 #define IMP_RELEASE 1
00132 #ifdef IMP_FAST
00133
00134 BOOST_STATIC_ASSERT(false)
00135 #endif
00136 #define IMP_FAST 2
00137 #ifdef IMP_BUILD
00138
00139 BOOST_STATIC_ASSERT(false)
00140 #endif
00141 #define IMP_BUILD IMP_RELEASE
00142
00143
00144
00145 #ifndef SWIG
00146 namespace IMP {
00147 class VersionInfo;
00148 }
00149
00150 #include <IMP/internal/directories.h>
00151 #include <IMP/kernel_config.h>
00152 #include <string>
00153
00154 IMP_BEGIN_INTERNAL_NAMESPACE
00155 IMPEXPORT std::string get_data_path(std::string module_name,
00156 std::string file_name);
00157 IMPEXPORT std::string get_example_path(std::string module_name,
00158 std::string file_name);
00159
00160 IMP_END_INTERNAL_NAMESPACE
00161
00162 IMP_BEGIN_NAMESPACE
00163 IMPEXPORT const VersionInfo& get_module_version_info();
00164
00165 inline std::string get_module_name() {
00166 return "IMP";
00167 }
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180 inline std::string get_data_path(std::string file_name) {
00181 return IMP::internal::get_data_path("kernel", file_name);
00182 }
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195 inline std::string get_example_path(std::string file_name) {
00196 return IMP::internal::get_example_path("kernel", file_name);
00197 }
00198
00199
00200 IMP_END_NAMESPACE
00201
00202 #endif // SWIG
00203
00204 #endif