30 #ifndef IMPBENCHMARK_CONFIG_H
31 #define IMPBENCHMARK_CONFIG_H
33 #include <IMP/base/base_config.h>
39 #ifdef IMPBENCHMARK_EXPORTS
40 #define IMPBENCHMARKEXPORT __declspec(dllexport)
42 #define IMPBENCHMARKEXPORT __declspec(dllimport)
48 #define IMPBENCHMARKEXPORT __attribute__ ((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPBENCHMARKEXPORT
51 #endif // GCC_VISIBILITY
54 #if defined(_MSC_VER) && !defined(SWIG)
55 #ifdef IMPBENCHMARK_EXPORTS
57 #define IMPBENCHMARK_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
61 #define IMPBENCHMARK_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
66 #define IMPBENCHMARK_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
68 #endif // MSC and SWIG
70 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
72 #define IMPBENCHMARK_BEGIN_NAMESPACE \
73 IMP_COMPILER_ENABLE_WARNINGS \
74 namespace IMP { namespace benchmark { \
76 #define IMPBENCHMARK_END_NAMESPACE \
78 IMP_COMPILER_DISABLE_WARNINGS
80 #define IMPBENCHMARK_BEGIN_INTERNAL_NAMESPACE \
81 IMPBENCHMARK_BEGIN_NAMESPACE namespace internal {
84 #define IMPBENCHMARK_END_INTERNAL_NAMESPACE \
85 } IMPBENCHMARK_END_NAMESPACE
88 #define IMPBENCHMARK_BEGIN_NAMESPACE \
89 namespace IMP { namespace benchmark {
91 #define IMPBENCHMARK_END_NAMESPACE \
94 #define IMPBENCHMARK_BEGIN_INTERNAL_NAMESPACE \
95 IMPBENCHMARK_BEGIN_NAMESPACE namespace internal {
98 #define IMPBENCHMARK_END_INTERNAL_NAMESPACE \
99 } IMPBENCHMARK_END_NAMESPACE
103 #define IMP_BENCHMARK_USE_BOOST_FILESYSTEM
104 #define IMP_BENCHMARK_HAS_BOOST_FILESYSTEM 1
105 #define IMP_BENCHMARK_USE_BOOST_PROGRAMOPTIONS
106 #define IMP_BENCHMARK_HAS_BOOST_PROGRAMOPTIONS 1
107 #define IMP_BENCHMARK_USE_BOOST_RANDOM
108 #define IMP_BENCHMARK_HAS_BOOST_RANDOM 1
109 #define IMP_BENCHMARK_USE_BOOST_SYSTEM
110 #define IMP_BENCHMARK_HAS_BOOST_SYSTEM 1
114 namespace IMP {
namespace benchmark {
121 IMPBENCHMARKEXPORT std::string get_module_version();
126 inline std::string get_module_name() {
127 return "IMP::benchmark";
133 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
138 namespace IMP {
namespace benchmark {
139 using ::IMP::base::Showable;
140 using ::IMP::base::operator<<;
141 using ::IMP::base::hash_value;
143 namespace IMP {
namespace benchmark {
namespace internal {
144 using ::IMP::base::Showable;
145 using ::IMP::base::operator<<;
146 using ::IMP::base::hash_value;
149 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
154 namespace IMP {
namespace benchmark {
167 IMPBENCHMARKEXPORT std::string
get_data_path(std::string file_name);