IMP logo
IMP Reference Guide  develop.234970c887,2024/04/29
The Integrative Modeling Platform
integrative_docking_config.h
1 // Autogenerated by ../../../../tmp/nightly-build-99767/imp-20240429.develop.234970c887/tools/build/setup_module.py
2 // from ../../../../tmp/nightly-build-99767/imp-20240429.develop.234970c887/tools/build/config_templates/header.h
3 // Do not edit - any changes will be lost!
4 
5 /*
6  * \file IMP/integrative_docking/integrative_docking_config.h
7  * \brief Provide macros to mark functions and classes as exported
8  * from a DLL/.so, and to set up namespaces
9  *
10  * When building the module, IMPINTEGRATIVEDOCKING_EXPORTS should be defined, and when
11  * using the module externally, it should not be. Classes and functions
12  * declared in the module's headers should then be marked with
13  * IMPINTEGRATIVEDOCKINGEXPORT if they are intended to be part of the API and
14  * they are not defined entirely in a header.
15  *
16  * The Windows build environment requires applications to mark exports in
17  * this way; we use the same markings to set the visibility of ELF symbols
18  * if we have compiler support.
19  *
20  * All code in this module should live in the IMP::integrative_docking namespace.
21  * This is simply achieved by wrapping things with the
22  * IMPINTEGRATIVEDOCKING_BEGIN_NAMESPACE and IMPINTEGRATIVEDOCKING_END_NAMESPACE macros.
23  * There are similar macros for module code that is designed to be for
24  * internal use only.
25  *
26  * Copyright 2007-2022 IMP Inventors. All rights reserved.
27  *
28  */
29 
30 #ifndef IMPINTEGRATIVEDOCKING_CONFIG_H
31 #define IMPINTEGRATIVEDOCKING_CONFIG_H
32 
33 #include <IMP/kernel_config.h>
34 #include <string>
35 
36 #ifdef _MSC_VER
37 #define NOMINMAX
38 
39 #ifdef IMPINTEGRATIVEDOCKING_EXPORTS
40 #define IMPINTEGRATIVEDOCKINGEXPORT __declspec(dllexport)
41 #else // EXPORTS
42 #define IMPINTEGRATIVEDOCKINGEXPORT __declspec(dllimport)
43 #endif // EXPORTS
44 
45 #else // _MSC_VER
46 
47 #ifdef GCC_VISIBILITY
48 #define IMPINTEGRATIVEDOCKINGEXPORT __attribute__((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPINTEGRATIVEDOCKINGEXPORT
51 #endif // GCC_VISIBILITY
52 
53 #endif // _MSC_VER
54 
55 #if defined(_MSC_VER) && !defined(SWIG)
56 #ifdef IMPINTEGRATIVEDOCKING_EXPORTS
57 
58 #define IMPINTEGRATIVEDOCKING_EXPORT_TEMPLATE(name) \
59  template class __declspec(dllexport) name
60 
61 #else //EXPORTS
62 
63 #define IMPINTEGRATIVEDOCKING_EXPORT_TEMPLATE(name) \
64  template class __declspec(dllimport) name
65 
66 #endif // EXPORTS
67 
68 #else // MSC and SWIG
69 #define IMPINTEGRATIVEDOCKING_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
70 
71 #endif // MSC and SWIG
72 
73 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
74 
75 #define IMPINTEGRATIVEDOCKING_BEGIN_NAMESPACE \
76  IMP_COMPILER_ENABLE_WARNINGS namespace IMP{ namespace integrative_docking {
77 
78 #define IMPINTEGRATIVEDOCKING_END_NAMESPACE } } \
79 IMP_COMPILER_DISABLE_WARNINGS
80 
81 #define IMPINTEGRATIVEDOCKING_BEGIN_INTERNAL_NAMESPACE IMPINTEGRATIVEDOCKING_BEGIN_NAMESPACE \
82  namespace internal {
83 
84 #define IMPINTEGRATIVEDOCKING_END_INTERNAL_NAMESPACE } IMPINTEGRATIVEDOCKING_END_NAMESPACE
85 
86 #else // SWIG and DOXYGEN
87 #define IMPINTEGRATIVEDOCKING_BEGIN_NAMESPACE namespace IMP{ namespace integrative_docking {
88 
89 #define IMPINTEGRATIVEDOCKING_END_NAMESPACE } }
90 
91 #define IMPINTEGRATIVEDOCKING_BEGIN_INTERNAL_NAMESPACE IMPINTEGRATIVEDOCKING_BEGIN_NAMESPACE\
92  namespace internal {
93 
94 #define IMPINTEGRATIVEDOCKING_END_INTERNAL_NAMESPACE } IMPINTEGRATIVEDOCKING_END_NAMESPACE
95 
96 #endif // SWIG AND DOXYGEN
97 
98 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_ALGEBRA
99 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_ALGEBRA 1
100 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_ATOM
101 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_ATOM 1
102 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_CGAL
103 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_CGAL 1
104 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_CONTAINER
105 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_CONTAINER 1
106 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_CORE
107 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_CORE 1
108 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_DISPLAY
109 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_DISPLAY 1
110 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_DOMINO
111 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_DOMINO 1
112 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_GSL
113 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_GSL 1
114 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_ISD
115 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_ISD 1
116 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_KERNEL
117 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_KERNEL 1
118 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_RMF
119 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_RMF 1
120 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_SCORE_FUNCTOR
121 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_SCORE_FUNCTOR 1
122 #define IMP_INTEGRATIVE_DOCKING_USE_IMP_STATISTICS
123 #define IMP_INTEGRATIVE_DOCKING_HAS_IMP_STATISTICS 1
124 #define IMP_INTEGRATIVE_DOCKING_USE_BOOST_FILESYSTEM
125 #define IMP_INTEGRATIVE_DOCKING_HAS_BOOST_FILESYSTEM 1
126 #define IMP_INTEGRATIVE_DOCKING_USE_BOOST_GRAPH
127 #define IMP_INTEGRATIVE_DOCKING_HAS_BOOST_GRAPH 1
128 #define IMP_INTEGRATIVE_DOCKING_USE_BOOST_RANDOM
129 #define IMP_INTEGRATIVE_DOCKING_HAS_BOOST_RANDOM 1
130 #define IMP_INTEGRATIVE_DOCKING_USE_BOOST_REGEX
131 #define IMP_INTEGRATIVE_DOCKING_HAS_BOOST_REGEX 1
132 #define IMP_INTEGRATIVE_DOCKING_USE_BOOST_SYSTEM
133 #define IMP_INTEGRATIVE_DOCKING_HAS_BOOST_SYSTEM 1
134 #define IMP_INTEGRATIVE_DOCKING_USE_CGAL
135 #define IMP_INTEGRATIVE_DOCKING_HAS_CGAL 1
136 #define IMP_INTEGRATIVE_DOCKING_USE_FFTW3
137 #define IMP_INTEGRATIVE_DOCKING_HAS_FFTW3 1
138 #define IMP_INTEGRATIVE_DOCKING_USE_GSL
139 #define IMP_INTEGRATIVE_DOCKING_HAS_GSL 1
140 #define IMP_INTEGRATIVE_DOCKING_USE_HDF5
141 #define IMP_INTEGRATIVE_DOCKING_HAS_HDF5 1
142 #define IMP_INTEGRATIVE_DOCKING_USE_NUMPY
143 #define IMP_INTEGRATIVE_DOCKING_HAS_NUMPY 1
144 #define IMP_INTEGRATIVE_DOCKING_USE_OPENCV3
145 #define IMP_INTEGRATIVE_DOCKING_HAS_OPENCV3 1
146 #define IMP_INTEGRATIVE_DOCKING_USE_RMF
147 #define IMP_INTEGRATIVE_DOCKING_HAS_RMF 1
148 #define IMP_INTEGRATIVE_DOCKING_USE_PYTHON_IHM
149 #define IMP_INTEGRATIVE_DOCKING_HAS_PYTHON_IHM 1
150 
151 // functions are defined explicitly for SWIG
152 namespace IMP{ namespace integrative_docking {
153 /** \name Standard module functions
154  All \imp modules have a set of standard functions to help get information
155  about the module and about files associated with the module.
156  @{
157  */
158 #if !defined(SWIG)
159  IMPINTEGRATIVEDOCKINGEXPORT std::string get_module_version();
160 #endif
161 
162 #if !defined(SWIG)
163  // SWIG will whine about duplicate definitions of function
164  inline std::string get_module_name() { return "IMP::integrative_docking"; }
165 #endif
166 
167  //! Return the full path to one of this module's data files
168  /** To read the data file "data_library" that was placed in the \c data
169  directory of this module, do something like
170  \code
171  std::ifstream in(IMP::integrative_docking::get_data_path("data_library"));
172  \endcode
173  This will ensure that the code works both when IMP is installed or
174  if used via the \c setup_environment.sh script.
175 
176  \note Each module has its own data directory, so be sure to use
177  this function from the correct module.
178  */
179 #if !defined(SWIG)
180  IMPINTEGRATIVEDOCKINGEXPORT std::string get_data_path(std::string file_name);
181 #endif
182 
183  //! Return the full path to one of this module's example files
184  /** To read the example file "example_protein.pdb" that was placed
185  in the \c examples directory of this module, do something like
186  \code
187  std::ifstream in(IMP::integrative_docking::get_example_path("example_protein.pdb"));
188  \endcode
189  This will ensure that the code works both when IMP is installed or
190  if used via the \c setup_environment.sh script.
191 
192  \note Each module has its own example directory, so be sure to use
193  this function from the correct module.
194  */
195 #if !defined(SWIG)
196  IMPINTEGRATIVEDOCKINGEXPORT std::string get_example_path(std::string file_name);
197 #endif
198  /** @} */
199 
200 
201 } } //namespace
202 
203 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
204 
205 #include <IMP/Showable.h>
206 #include <IMP/hash.h>
207 
208 namespace IMP{ namespace integrative_docking {
209 using ::IMP::Showable;
210 using ::IMP::operator<<;
211 using ::IMP::hash_value;
212 } } // namespace
213 namespace IMP{ namespace integrative_docking { namespace internal {
214 using ::IMP::Showable;
215 using ::IMP::operator<<;
216 using ::IMP::hash_value;
217 } } } // namespace
218 
219 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
220 
221 
222 #include <IMP/compiler_macros.h>
223 
224 #endif /* IMPINTEGRATIVEDOCKING_CONFIG_H */
225 
226 // Here so it is always parsed
227 
228 #ifdef IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER
229 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER
230 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DEF
231 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL
232 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DEF
233 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL
234 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DEF
235 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL
236 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DEF
237 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL
238 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO
239 #undef IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
240 #endif
241 
242 // the central modules we can update easily, so don't warn in them
243 #if defined( IMPINTEGRATIVEDOCKING_COMPILATION) \
244  || defined(SWIG) || defined(IMP_SWIG_WRAPPER) \
245  || defined( IMPINTEGRATIVEDOCKING_ALL) || defined(IMP_DOXYGEN) \
246  || defined(IMPBASE_COMPILATION) || defined(IMPKERNEL_COMPILATION) \
247  || defined(IMPCORE_COMPILATION) || defined(IMPATOM_COMPILATION) \
248  || defined(IMPSTATISTICS_COMPILATION) || defined(IMPDOMINO_COMPILATION) \
249  || defined(IMPCONTAINER_COMPILATION) || defined(IMPDISPLAY_COMPILATION) \
250  || defined(IMPSCOREFUNCTOR_COMPILATION) || defined(IMPRMF_COMPILATION) \
251  || defined(IMPGSL_COMPILATION)
252 #define IMPINTEGRATIVEDOCKING_SHOW_WARNINGS 0
253 #else
254 #define IMPINTEGRATIVEDOCKING_SHOW_WARNINGS 1
255 #endif
256 
257 // suppress header warnings with all header, SWIG wrapper and in the module
258 #if IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
259 #define IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER(version, help_message) \
260  IMP_PRAGMA(message(__FILE__ " is deprecated: " help_message))
261 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL(version) \
262  IMP_DEPRECATED_ATTRIBUTE
263 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL(version) \
264  IMP_DEPRECATED_ATTRIBUTE
265 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL(version) \
266  IMP_DEPRECATED_ATTRIBUTE
267 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL(version) \
268  IMP_DEPRECATED_ATTRIBUTE
269 
270 #else //IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
271 /** See [deprecation support](@ref deprecation). */
272 #define IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER(version, help_message) \
273 /** See [deprecation support](@ref deprecation). */
274 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL(version)
275 /** See [deprecation support](@ref deprecation). */
276 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL(version)
277 /** See [deprecation support](@ref deprecation). */
278 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL(version)
279 /** See [deprecation support](@ref deprecation). */
280 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL(version)
281 
282 #endif // IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
283 
284 // only warn about it in the all inclusion to cut down on copies
285 #if !defined(IMP_ALL) || defined(SWIG) || defined(IMP_DOXYGEN) \
286  || defined(IMPBASE_COMPILATION) || defined(IMPKERNEL_COMPILATION) \
287  || defined(IMPCORE_COMPILATION) || defined(IMPATOM_COMPILATION) \
288  || defined(IMPSTATISTICS_COMPILATION) || defined(IMPDOMINO_COMPILATION) \
289  || defined(IMPCONTAINER_COMPILATION) || defined(IMPDISPLAY_COMPILATION) \
290  || defined(IMPSCOREFUNCTOR_COMPILATION)
291 /** See [deprecation support](@ref deprecation). */
292 #define IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO(version, message)
293 
294 #else
295 #define IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO(version, message) \
296  IMP_DEPRECATED_MACRO(version, message)
297 #endif
298 
299 /** See [deprecation support](@ref deprecation). */
300 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DEF(version, message) \
301  IMP_DEPRECATED_VALUE_RUNTIME_WARNING(version, message)
302 
303 /** See [deprecation support](@ref deprecation). */
304 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DEF(version, message) \
305  IMP_DEPRECATED_OBJECT_RUNTIME_WARNING(version, message)
306 
307 /** See [deprecation support](@ref deprecation). */
308 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DEF(version, message) \
309  IMP_DEPRECATED_FUNCTION_RUNTIME_WARNING(version, message)
310 
311 /** See [deprecation support](@ref deprecation). */
312 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DEF(version, message) \
313  IMP_DEPRECATED_METHOD_RUNTIME_WARNING(version, message)
314 
315 
316 #include <IMP/compiler_macros.h>
317 
318 #if defined(IMP_EXECUTABLE) && !defined(IMP_EXECUTABLE_WARNINGS)
319 IMP_COMPILER_ENABLE_WARNINGS
320 #define IMP_EXECUTABLE_WARNINGS
321 #endif
std::string get_module_version()
Return the version of this module, as a string.
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
Helper functions for implementing hashes.
Helper class to aid in output of IMP classes to streams.
Various compiler workarounds.
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.