IMP  2.0.1
The Integrative Modeling Platform
domino_config.h
1 
2 /*
3  * \file IMP/domino/domino_config.h
4  * \brief Provide macros to mark functions and classes as exported
5  * from a DLL/.so, and to set up namespaces
6  *
7  * When building the module, IMPDOMINO_EXPORTS should be defined, and when
8  * using the module externally, it should not be. Classes and functions
9  * declared in the module's headers should then be marked with
10  * IMPDOMINOEXPORT if they are intended to be part of the API and
11  * they are not defined entirely in a header.
12  *
13  * The Windows build environment requires applications to mark exports in
14  * this way; we use the same markings to set the visibility of ELF symbols
15  * if we have compiler support.
16  *
17  * All code in this module should live in the IMP::domino namespace.
18  * This is simply achieved by wrapping things with the
19  * IMPDOMINO_BEGIN_NAMESPACE and IMPDOMINO_END_NAMESPACE macros.
20  * There are similar macros for module code that is designed to be for
21  * internal use only.
22  *
23  * This header is auto-generated by tools/build/setup_module.py;
24  * it should not be edited manually.
25  *
26  * Copyright 2007-2013 IMP Inventors. All rights reserved.
27  *
28  */
29 
30 #ifndef IMPDOMINO_CONFIG_H
31 #define IMPDOMINO_CONFIG_H
32 
33 #include <IMP/base/base_config.h>
34 #include <string>
35 
36 
37 #ifdef _MSC_VER
38 
39 #ifdef IMPDOMINO_EXPORTS
40 #define IMPDOMINOEXPORT __declspec(dllexport)
41 #else // EXPORTS
42 #define IMPDOMINOEXPORT __declspec(dllimport)
43 #endif // EXPORTS
44 
45 #else // _MSC_VER
46 
47 #ifdef GCC_VISIBILITY
48 #define IMPDOMINOEXPORT __attribute__ ((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPDOMINOEXPORT
51 #endif // GCC_VISIBILITY
52 #endif // _MSC_VER
53 
54 #if defined(_MSC_VER) && !defined(SWIG)
55 #ifdef IMPDOMINO_EXPORTS
56 
57 #define IMPDOMINO_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
58 
59 #else //EXPORTS
60 
61 #define IMPDOMINO_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
62 
63 #endif // EXPORTS
64 
65 #else // MSC and SWIG
66 #define IMPDOMINO_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
67 
68 #endif // MSC and SWIG
69 
70 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
71 
72 #define IMPDOMINO_BEGIN_NAMESPACE \
73 IMP_COMPILER_ENABLE_WARNINGS \
74 namespace IMP { namespace domino { \
75 
76 #define IMPDOMINO_END_NAMESPACE \
77 } } \
78 IMP_COMPILER_DISABLE_WARNINGS
79 
80 #define IMPDOMINO_BEGIN_INTERNAL_NAMESPACE \
81 IMPDOMINO_BEGIN_NAMESPACE namespace internal {
82 
83 
84 #define IMPDOMINO_END_INTERNAL_NAMESPACE \
85 } IMPDOMINO_END_NAMESPACE
86 
87 #else
88 #define IMPDOMINO_BEGIN_NAMESPACE \
89 namespace IMP { namespace domino {
90 
91 #define IMPDOMINO_END_NAMESPACE \
92 } }
93 
94 #define IMPDOMINO_BEGIN_INTERNAL_NAMESPACE \
95 IMPDOMINO_BEGIN_NAMESPACE namespace internal {
96 
97 
98 #define IMPDOMINO_END_INTERNAL_NAMESPACE \
99 } IMPDOMINO_END_NAMESPACE
100 
101 #endif
102 
103 #define IMP_DOMINO_USE_IMP_ATOM
104 #define IMP_DOMINO_HAS_IMP_ATOM 1
105 #define IMP_DOMINO_USE_IMP_BASE
106 #define IMP_DOMINO_HAS_IMP_BASE 1
107 #define IMP_DOMINO_USE_IMP_CGAL
108 #define IMP_DOMINO_HAS_IMP_CGAL 1
109 #define IMP_DOMINO_USE_IMP_KERNEL
110 #define IMP_DOMINO_HAS_IMP_KERNEL 1
111 #define IMP_DOMINO_USE_IMP_RMF
112 #define IMP_DOMINO_HAS_IMP_RMF 1
113 #define IMP_DOMINO_USE_IMP_SCORE_FUNCTOR
114 #define IMP_DOMINO_HAS_IMP_SCORE_FUNCTOR 1
115 #define IMP_DOMINO_USE_BOOST_FILESYSTEM
116 #define IMP_DOMINO_HAS_BOOST_FILESYSTEM 1
117 #define IMP_DOMINO_USE_BOOST_PROGRAMOPTIONS
118 #define IMP_DOMINO_HAS_BOOST_PROGRAMOPTIONS 1
119 #define IMP_DOMINO_USE_BOOST_RANDOM
120 #define IMP_DOMINO_HAS_BOOST_RANDOM 1
121 #define IMP_DOMINO_USE_BOOST_REGEX
122 #define IMP_DOMINO_HAS_BOOST_REGEX 1
123 #define IMP_DOMINO_USE_BOOST_SYSTEM
124 #define IMP_DOMINO_HAS_BOOST_SYSTEM 1
125 #define IMP_DOMINO_USE_CGAL
126 #define IMP_DOMINO_HAS_CGAL 1
127 #define IMP_DOMINO_USE_HDF5
128 #define IMP_DOMINO_HAS_HDF5 1
129 #define IMP_DOMINO_USE_RMF
130 #define IMP_DOMINO_HAS_RMF 1
131 
132 // functions are defined explicitly for swig
133 
134 namespace IMP { namespace domino {
135 /** \name Standard module methods
136  All \imp modules have a set of standard methods to help get information
137  about the module and about files associated with the module.
138  @{
139  */
140 #if !defined(SWIG)
141 IMPDOMINOEXPORT std::string get_module_version();
142 #endif
143 
144 #if !defined(SWIG)
145 // swig will whine about duplicate definitions of function
146 inline std::string get_module_name() {
147  return "IMP::domino";
148 }
149 #endif
150 
151 } } //namespace
152 
153 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
154 
155 #include <IMP/base/Showable.h>
156 #include <IMP/base/hash.h>
157 
158 namespace IMP { namespace domino {
159 using ::IMP::base::Showable;
160 using ::IMP::base::operator<<;
161 using ::IMP::base::hash_value;
162 } } // namespace
163 namespace IMP { namespace domino { namespace internal {
164 using ::IMP::base::Showable;
165 using ::IMP::base::operator<<;
166 using ::IMP::base::hash_value;
167 } } } // namespace
168 
169 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
170 
171 
172 #if !defined(SWIG)
173 
174 namespace IMP { namespace domino {
175 
176 //! Return the full path to installed data
177 /** Each module has its own data directory, so be sure to use
178  the version of this function in the correct module. To read
179  the data file "data_library" that was placed in the \c data
180  directory of module "mymodule", do something like
181  \code
182  std::ifstream in(IMP::mymodule::get_data_path("data_library"));
183  \endcode
184  This will ensure that the code works when \imp is installed or
185  used via the \c tools/imppy.sh script.
186 */
187 IMPDOMINOEXPORT std::string get_data_path(std::string file_name);
188 
189 //! Return the path to installed example data for this module
190 /** Each module has its own example directory, so be sure to use
191  the version of this function in the correct module. For example
192  to read the file \c example_protein.pdb located in the
193  \c examples directory of the IMP::atom module, do
194  \code
195  IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));
196  \endcode
197  This will ensure that the code works when \imp is installed or
198  used via the \c tools/imppy.sh script.
199 */
200 IMPDOMINOEXPORT std::string get_example_path(std::string file_name);
201 /** @} */
202 
203 
204 } } // namespace
205 
206 #endif // SWIG
207 
209 
210 #ifdef IMP_DOXYGEN
211 /** \namespace IMP::domino
212  \brief See \ref IMP_domino_overview "IMP.domino Overview" for more information.
213  */
214 #endif
215 
216 #endif /* IMPDOMINO_CONFIG_H */