IMP  2.0.1
The Integrative Modeling Platform
pepdock_config.h
1 
2 /*
3  * \file IMP/pepdock/pepdock_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, IMPPEPDOCK_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  * IMPPEPDOCKEXPORT 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::pepdock namespace.
18  * This is simply achieved by wrapping things with the
19  * IMPPEPDOCK_BEGIN_NAMESPACE and IMPPEPDOCK_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 IMPPEPDOCK_CONFIG_H
31 #define IMPPEPDOCK_CONFIG_H
32 
33 #include <IMP/base/base_config.h>
34 #include <string>
35 
36 
37 #ifdef _MSC_VER
38 
39 #ifdef IMPPEPDOCK_EXPORTS
40 #define IMPPEPDOCKEXPORT __declspec(dllexport)
41 #else // EXPORTS
42 #define IMPPEPDOCKEXPORT __declspec(dllimport)
43 #endif // EXPORTS
44 
45 #else // _MSC_VER
46 
47 #ifdef GCC_VISIBILITY
48 #define IMPPEPDOCKEXPORT __attribute__ ((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPPEPDOCKEXPORT
51 #endif // GCC_VISIBILITY
52 #endif // _MSC_VER
53 
54 #if defined(_MSC_VER) && !defined(SWIG)
55 #ifdef IMPPEPDOCK_EXPORTS
56 
57 #define IMPPEPDOCK_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
58 
59 #else //EXPORTS
60 
61 #define IMPPEPDOCK_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
62 
63 #endif // EXPORTS
64 
65 #else // MSC and SWIG
66 #define IMPPEPDOCK_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
67 
68 #endif // MSC and SWIG
69 
70 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
71 
72 #define IMPPEPDOCK_BEGIN_NAMESPACE \
73 IMP_COMPILER_ENABLE_WARNINGS \
74 namespace IMP { namespace pepdock { \
75 
76 #define IMPPEPDOCK_END_NAMESPACE \
77 } } \
78 IMP_COMPILER_DISABLE_WARNINGS
79 
80 #define IMPPEPDOCK_BEGIN_INTERNAL_NAMESPACE \
81 IMPPEPDOCK_BEGIN_NAMESPACE namespace internal {
82 
83 
84 #define IMPPEPDOCK_END_INTERNAL_NAMESPACE \
85 } IMPPEPDOCK_END_NAMESPACE
86 
87 #else
88 #define IMPPEPDOCK_BEGIN_NAMESPACE \
89 namespace IMP { namespace pepdock {
90 
91 #define IMPPEPDOCK_END_NAMESPACE \
92 } }
93 
94 #define IMPPEPDOCK_BEGIN_INTERNAL_NAMESPACE \
95 IMPPEPDOCK_BEGIN_NAMESPACE namespace internal {
96 
97 
98 #define IMPPEPDOCK_END_INTERNAL_NAMESPACE \
99 } IMPPEPDOCK_END_NAMESPACE
100 
101 #endif
102 
103 #define IMP_PEPDOCK_USE_IMP_ALGEBRA
104 #define IMP_PEPDOCK_HAS_IMP_ALGEBRA 1
105 #define IMP_PEPDOCK_USE_IMP_ATOM
106 #define IMP_PEPDOCK_HAS_IMP_ATOM 1
107 #define IMP_PEPDOCK_USE_IMP_BASE
108 #define IMP_PEPDOCK_HAS_IMP_BASE 1
109 #define IMP_PEPDOCK_USE_IMP_CGAL
110 #define IMP_PEPDOCK_HAS_IMP_CGAL 1
111 #define IMP_PEPDOCK_USE_IMP_DISPLAY
112 #define IMP_PEPDOCK_HAS_IMP_DISPLAY 1
113 #define IMP_PEPDOCK_USE_IMP_KERNEL
114 #define IMP_PEPDOCK_HAS_IMP_KERNEL 1
115 #define IMP_PEPDOCK_USE_IMP_RMF
116 #define IMP_PEPDOCK_HAS_IMP_RMF 1
117 #define IMP_PEPDOCK_USE_IMP_SCORE_FUNCTOR
118 #define IMP_PEPDOCK_HAS_IMP_SCORE_FUNCTOR 1
119 #define IMP_PEPDOCK_USE_IMP_STATISTICS
120 #define IMP_PEPDOCK_HAS_IMP_STATISTICS 1
121 #define IMP_PEPDOCK_USE_BOOST_FILESYSTEM
122 #define IMP_PEPDOCK_HAS_BOOST_FILESYSTEM 1
123 #define IMP_PEPDOCK_USE_BOOST_GRAPH
124 #define IMP_PEPDOCK_HAS_BOOST_GRAPH 1
125 #define IMP_PEPDOCK_USE_BOOST_PROGRAMOPTIONS
126 #define IMP_PEPDOCK_HAS_BOOST_PROGRAMOPTIONS 1
127 #define IMP_PEPDOCK_USE_BOOST_RANDOM
128 #define IMP_PEPDOCK_HAS_BOOST_RANDOM 1
129 #define IMP_PEPDOCK_USE_BOOST_REGEX
130 #define IMP_PEPDOCK_HAS_BOOST_REGEX 1
131 #define IMP_PEPDOCK_USE_BOOST_SYSTEM
132 #define IMP_PEPDOCK_HAS_BOOST_SYSTEM 1
133 #define IMP_PEPDOCK_USE_CGAL
134 #define IMP_PEPDOCK_HAS_CGAL 1
135 #define IMP_PEPDOCK_USE_HDF5
136 #define IMP_PEPDOCK_HAS_HDF5 1
137 #define IMP_PEPDOCK_USE_RMF
138 #define IMP_PEPDOCK_HAS_RMF 1
139 
140 // functions are defined explicitly for swig
141 
142 namespace IMP { namespace pepdock {
143 /** \name Standard module methods
144  All \imp modules have a set of standard methods to help get information
145  about the module and about files associated with the module.
146  @{
147  */
148 #if !defined(SWIG)
149 IMPPEPDOCKEXPORT std::string get_module_version();
150 #endif
151 
152 #if !defined(SWIG)
153 // swig will whine about duplicate definitions of function
154 inline std::string get_module_name() {
155  return "IMP::pepdock";
156 }
157 #endif
158 
159 } } //namespace
160 
161 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
162 
163 #include <IMP/base/Showable.h>
164 #include <IMP/base/hash.h>
165 
166 namespace IMP { namespace pepdock {
167 using ::IMP::base::Showable;
168 using ::IMP::base::operator<<;
169 using ::IMP::base::hash_value;
170 } } // namespace
171 namespace IMP { namespace pepdock { namespace internal {
172 using ::IMP::base::Showable;
173 using ::IMP::base::operator<<;
174 using ::IMP::base::hash_value;
175 } } } // namespace
176 
177 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
178 
179 
180 #if !defined(SWIG)
181 
182 namespace IMP { namespace pepdock {
183 
184 //! Return the full path to installed data
185 /** Each module has its own data directory, so be sure to use
186  the version of this function in the correct module. To read
187  the data file "data_library" that was placed in the \c data
188  directory of module "mymodule", do something like
189  \code
190  std::ifstream in(IMP::mymodule::get_data_path("data_library"));
191  \endcode
192  This will ensure that the code works when \imp is installed or
193  used via the \c tools/imppy.sh script.
194 */
195 IMPPEPDOCKEXPORT std::string get_data_path(std::string file_name);
196 
197 //! Return the path to installed example data for this module
198 /** Each module has its own example directory, so be sure to use
199  the version of this function in the correct module. For example
200  to read the file \c example_protein.pdb located in the
201  \c examples directory of the IMP::atom module, do
202  \code
203  IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));
204  \endcode
205  This will ensure that the code works when \imp is installed or
206  used via the \c tools/imppy.sh script.
207 */
208 IMPPEPDOCKEXPORT std::string get_example_path(std::string file_name);
209 /** @} */
210 
211 
212 } } // namespace
213 
214 #endif // SWIG
215 
217 
218 #ifdef IMP_DOXYGEN
219 /** \namespace IMP::pepdock
220  \brief See \ref IMP_pepdock_overview "IMP.pepdock Overview" for more information.
221  */
222 #endif
223 
224 #endif /* IMPPEPDOCK_CONFIG_H */