IMP logo
IMP Reference Guide  develop.50fdd7fa33,2025/08/31
The Integrative Modeling Platform
integrative_docking_config.h
1 // Autogenerated by ../../../../tmp/nightly-build-478/imp-20250831.develop.50fdd7fa33/tools/build/setup_module.py
2 // from ../../../../tmp/nightly-build-478/imp-20250831.develop.50fdd7fa33/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_CGAL
133 #define IMP_INTEGRATIVE_DOCKING_HAS_CGAL 1
134 #define IMP_INTEGRATIVE_DOCKING_USE_FFTW3
135 #define IMP_INTEGRATIVE_DOCKING_HAS_FFTW3 1
136 #define IMP_INTEGRATIVE_DOCKING_USE_GSL
137 #define IMP_INTEGRATIVE_DOCKING_HAS_GSL 1
138 #define IMP_INTEGRATIVE_DOCKING_USE_HDF5
139 #define IMP_INTEGRATIVE_DOCKING_HAS_HDF5 1
140 #define IMP_INTEGRATIVE_DOCKING_USE_NUMPY
141 #define IMP_INTEGRATIVE_DOCKING_HAS_NUMPY 1
142 #define IMP_INTEGRATIVE_DOCKING_USE_OPENCV3
143 #define IMP_INTEGRATIVE_DOCKING_HAS_OPENCV3 1
144 #define IMP_INTEGRATIVE_DOCKING_USE_RMF
145 #define IMP_INTEGRATIVE_DOCKING_HAS_RMF 1
146 #define IMP_INTEGRATIVE_DOCKING_USE_PYTHON_IHM
147 #define IMP_INTEGRATIVE_DOCKING_HAS_PYTHON_IHM 1
148 
149 // functions are defined explicitly for SWIG
150 namespace IMP{ namespace integrative_docking {
151 /** \name Standard module functions
152  All \imp modules have a set of standard functions to help get information
153  about the module and about files associated with the module.
154  @{
155  */
156 #if !defined(SWIG) || defined(IMP_SWIG_WRAPPER)
157  IMPINTEGRATIVEDOCKINGEXPORT std::string get_module_version();
158 #endif
159 
160 #if !defined(SWIG) || defined(IMP_SWIG_WRAPPER)
161  // SWIG will whine about duplicate definitions of function
162  inline std::string get_module_name() { return "IMP::integrative_docking"; }
163 #endif
164 
165  //! Return the full path to one of this module's data files
166  /** To read the data file "data_library" that was placed in the \c data
167  directory of this module, do something like
168  \code
169  std::ifstream in(IMP::integrative_docking::get_data_path("data_library"));
170  \endcode
171  This will ensure that the code works both when IMP is installed or
172  if used via the \c setup_environment.sh script.
173 
174  \note Each module has its own data directory, so be sure to use
175  this function from the correct module.
176  */
177 #if !defined(SWIG)
178  IMPINTEGRATIVEDOCKINGEXPORT std::string get_data_path(std::string file_name);
179 #endif
180 
181  //! Return the full path to one of this module's example files
182  /** To read the example file "example_protein.pdb" that was placed
183  in the \c examples directory of this module, do something like
184  \code
185  std::ifstream in(IMP::integrative_docking::get_example_path("example_protein.pdb"));
186  \endcode
187  This will ensure that the code works both when IMP is installed or
188  if used via the \c setup_environment.sh script.
189 
190  \note Each module has its own example directory, so be sure to use
191  this function from the correct module.
192  */
193 #if !defined(SWIG)
194  IMPINTEGRATIVEDOCKINGEXPORT std::string get_example_path(std::string file_name);
195 #endif
196  /** @} */
197 
198 
199 } } //namespace
200 
201 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
202 
203 #include <IMP/Showable.h>
204 #include <IMP/hash.h>
205 
206 namespace IMP{ namespace integrative_docking {
207 using ::IMP::Showable;
208 using ::IMP::operator<<;
209 using ::IMP::hash_value;
210 } } // namespace
211 namespace IMP{ namespace integrative_docking { namespace internal {
212 using ::IMP::Showable;
213 using ::IMP::operator<<;
214 using ::IMP::hash_value;
215 } } } // namespace
216 
217 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
218 
219 
220 #include <IMP/compiler_macros.h>
221 
222 #endif /* IMPINTEGRATIVEDOCKING_CONFIG_H */
223 
224 // Here so it is always parsed
225 
226 #ifdef IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER
227 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER
228 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DEF
229 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL
230 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DEF
231 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL
232 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DEF
233 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL
234 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DEF
235 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL
236 #undef IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO
237 #undef IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
238 #endif
239 
240 // the central modules we can update easily, so don't warn in them
241 #if defined( IMPINTEGRATIVEDOCKING_COMPILATION) \
242  || defined(SWIG) || defined(IMP_SWIG_WRAPPER) \
243  || defined( IMPINTEGRATIVEDOCKING_ALL) || defined(IMP_DOXYGEN) \
244  || defined(IMPBASE_COMPILATION) || defined(IMPKERNEL_COMPILATION) \
245  || defined(IMPCORE_COMPILATION) || defined(IMPATOM_COMPILATION) \
246  || defined(IMPSTATISTICS_COMPILATION) || defined(IMPDOMINO_COMPILATION) \
247  || defined(IMPCONTAINER_COMPILATION) || defined(IMPDISPLAY_COMPILATION) \
248  || defined(IMPSCOREFUNCTOR_COMPILATION) || defined(IMPRMF_COMPILATION) \
249  || defined(IMPGSL_COMPILATION)
250 #define IMPINTEGRATIVEDOCKING_SHOW_WARNINGS 0
251 #else
252 #define IMPINTEGRATIVEDOCKING_SHOW_WARNINGS 1
253 #endif
254 
255 // suppress header warnings with all header, SWIG wrapper and in the module
256 #if IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
257 #define IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER(version, help_message) \
258  IMP_PRAGMA(message(__FILE__ " is deprecated: " help_message))
259 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL(version) \
260  IMP_DEPRECATED_ATTRIBUTE
261 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL(version) \
262  IMP_DEPRECATED_ATTRIBUTE
263 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL(version) \
264  IMP_DEPRECATED_ATTRIBUTE
265 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL(version) \
266  IMP_DEPRECATED_ATTRIBUTE
267 
268 #else //IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
269 /** See [deprecation support](@ref deprecation). */
270 #define IMPINTEGRATIVEDOCKING_DEPRECATED_HEADER(version, help_message) \
271 /** See [deprecation support](@ref deprecation). */
272 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DECL(version)
273 /** See [deprecation support](@ref deprecation). */
274 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DECL(version)
275 /** See [deprecation support](@ref deprecation). */
276 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DECL(version)
277 /** See [deprecation support](@ref deprecation). */
278 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DECL(version)
279 
280 #endif // IMPINTEGRATIVEDOCKING_SHOW_WARNINGS
281 
282 // only warn about it in the all inclusion to cut down on copies
283 #if !defined(IMP_ALL) || defined(SWIG) || defined(IMP_DOXYGEN) \
284  || defined(IMPBASE_COMPILATION) || defined(IMPKERNEL_COMPILATION) \
285  || defined(IMPCORE_COMPILATION) || defined(IMPATOM_COMPILATION) \
286  || defined(IMPSTATISTICS_COMPILATION) || defined(IMPDOMINO_COMPILATION) \
287  || defined(IMPCONTAINER_COMPILATION) || defined(IMPDISPLAY_COMPILATION) \
288  || defined(IMPSCOREFUNCTOR_COMPILATION)
289 /** See [deprecation support](@ref deprecation). */
290 #define IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO(version, message)
291 
292 #else
293 #define IMPINTEGRATIVEDOCKING_DEPRECATED_MACRO(version, message) \
294  IMP_DEPRECATED_MACRO(version, message)
295 #endif
296 
297 /** See [deprecation support](@ref deprecation). */
298 #define IMPINTEGRATIVEDOCKING_DEPRECATED_VALUE_DEF(version, message) \
299  IMP_DEPRECATED_VALUE_RUNTIME_WARNING(version, message)
300 
301 /** See [deprecation support](@ref deprecation). */
302 #define IMPINTEGRATIVEDOCKING_DEPRECATED_OBJECT_DEF(version, message) \
303  IMP_DEPRECATED_OBJECT_RUNTIME_WARNING(version, message)
304 
305 /** See [deprecation support](@ref deprecation). */
306 #define IMPINTEGRATIVEDOCKING_DEPRECATED_FUNCTION_DEF(version, message) \
307  IMP_DEPRECATED_FUNCTION_RUNTIME_WARNING(version, message)
308 
309 /** See [deprecation support](@ref deprecation). */
310 #define IMPINTEGRATIVEDOCKING_DEPRECATED_METHOD_DEF(version, message) \
311  IMP_DEPRECATED_METHOD_RUNTIME_WARNING(version, message)
312 
313 
314 #include <IMP/compiler_macros.h>
315 
316 #if defined(IMP_EXECUTABLE) && !defined(IMP_EXECUTABLE_WARNINGS)
317 IMP_COMPILER_ENABLE_WARNINGS
318 #define IMP_EXECUTABLE_WARNINGS
319 #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.