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 IMPEXAMPLE_CONFIG_H
00030 #define IMPEXAMPLE_CONFIG_H
00031
00032 #include <boost/static_assert.hpp>
00033
00034 #ifdef _MSC_VER
00035 #ifdef IMPEXAMPLE_EXPORTS
00036 #define IMPEXAMPLEEXPORT __declspec(dllexport)
00037 #else
00038 #define IMPEXAMPLEEXPORT __declspec(dllimport)
00039 #endif
00040 #define IMPEXAMPLELOCAL
00041 #else
00042 #ifdef GCC_VISIBILITY
00043 #define IMPEXAMPLEEXPORT __attribute__ ((visibility("default")))
00044 #define IMPEXAMPLELOCAL __attribute__ ((visibility("hidden")))
00045 #else
00046 #define IMPEXAMPLEEXPORT
00047 #define IMPEXAMPLELOCAL
00048 #endif
00049 #endif
00050
00051 #if _MSC_VER && !defined(SWIG) && !defined(IMP_DOXYGEN)
00052 #ifdef IMPEXAMPLE_EXPORTS
00053
00054 #define IMPEXAMPLE_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
00055
00056 #else
00057
00058 #define IMPEXAMPLE_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
00059
00060 #endif
00061
00062 #else
00063 #define IMPEXAMPLE_EXPORT_TEMPLATE(name)
00064
00065 #endif
00066
00067
00068
00069 #define IMPEXAMPLE_BEGIN_NAMESPACE \
00070 namespace IMP {\
00071 namespace example {\
00072
00073 #define IMPEXAMPLE_END_NAMESPACE \
00074 } \
00075 } \
00076
00077 #define IMPEXAMPLE_BEGIN_INTERNAL_NAMESPACE \
00078 IMPEXAMPLE_BEGIN_NAMESPACE \
00079 namespace internal {
00080
00081
00082 #define IMPEXAMPLE_END_INTERNAL_NAMESPACE \
00083 } \
00084 IMPEXAMPLE_END_NAMESPACE
00085
00086
00087
00088
00089
00090 #ifndef SWIG
00091 namespace IMP {
00092 class VersionInfo;
00093 }
00094
00095 #include <IMP/internal/directories.h>
00096 #include <IMP/kernel_config.h>
00097 #include <string>
00098
00099 IMP_BEGIN_INTERNAL_NAMESPACE
00100 IMPEXPORT std::string get_data_path(std::string module_name,
00101 std::string file_name);
00102 IMPEXPORT std::string get_example_path(std::string module_name,
00103 std::string file_name);
00104
00105 IMP_END_INTERNAL_NAMESPACE
00106
00107 IMPEXAMPLE_BEGIN_NAMESPACE
00108 IMPEXAMPLEEXPORT const VersionInfo& get_module_version_info();
00109
00110 inline std::string get_module_name() {
00111 return "IMP::example";
00112 }
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125 inline std::string get_data_path(std::string file_name) {
00126 return IMP::internal::get_data_path("example", file_name);
00127 }
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 inline std::string get_example_path(std::string file_name) {
00141 return IMP::internal::get_example_path("example", file_name);
00142 }
00143
00144
00145 IMPEXAMPLE_END_NAMESPACE
00146
00147 #endif // SWIG
00148
00149 #endif