IMP  2.0.1
The Integrative Modeling Platform
em2d_config.h
1 
2 /*
3  * \file IMP/em2d/em2d_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, IMPEM2D_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  * IMPEM2DEXPORT 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::em2d namespace.
18  * This is simply achieved by wrapping things with the
19  * IMPEM2D_BEGIN_NAMESPACE and IMPEM2D_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 IMPEM2D_CONFIG_H
31 #define IMPEM2D_CONFIG_H
32 
33 #include <IMP/base/base_config.h>
34 #include <string>
35 
36 
37 #ifdef _MSC_VER
38 
39 #ifdef IMPEM2D_EXPORTS
40 #define IMPEM2DEXPORT __declspec(dllexport)
41 #else // EXPORTS
42 #define IMPEM2DEXPORT __declspec(dllimport)
43 #endif // EXPORTS
44 
45 #else // _MSC_VER
46 
47 #ifdef GCC_VISIBILITY
48 #define IMPEM2DEXPORT __attribute__ ((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPEM2DEXPORT
51 #endif // GCC_VISIBILITY
52 #endif // _MSC_VER
53 
54 #if defined(_MSC_VER) && !defined(SWIG)
55 #ifdef IMPEM2D_EXPORTS
56 
57 #define IMPEM2D_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
58 
59 #else //EXPORTS
60 
61 #define IMPEM2D_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
62 
63 #endif // EXPORTS
64 
65 #else // MSC and SWIG
66 #define IMPEM2D_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
67 
68 #endif // MSC and SWIG
69 
70 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
71 
72 #define IMPEM2D_BEGIN_NAMESPACE \
73 IMP_COMPILER_ENABLE_WARNINGS \
74 namespace IMP { namespace em2d { \
75 
76 #define IMPEM2D_END_NAMESPACE \
77 } } \
78 IMP_COMPILER_DISABLE_WARNINGS
79 
80 #define IMPEM2D_BEGIN_INTERNAL_NAMESPACE \
81 IMPEM2D_BEGIN_NAMESPACE namespace internal {
82 
83 
84 #define IMPEM2D_END_INTERNAL_NAMESPACE \
85 } IMPEM2D_END_NAMESPACE
86 
87 #else
88 #define IMPEM2D_BEGIN_NAMESPACE \
89 namespace IMP { namespace em2d {
90 
91 #define IMPEM2D_END_NAMESPACE \
92 } }
93 
94 #define IMPEM2D_BEGIN_INTERNAL_NAMESPACE \
95 IMPEM2D_BEGIN_NAMESPACE namespace internal {
96 
97 
98 #define IMPEM2D_END_INTERNAL_NAMESPACE \
99 } IMPEM2D_END_NAMESPACE
100 
101 #endif
102 
103 #define IMP_EM2D_USE_IMP_BASE
104 #define IMP_EM2D_HAS_IMP_BASE 1
105 #define IMP_EM2D_USE_IMP_CGAL
106 #define IMP_EM2D_HAS_IMP_CGAL 1
107 #define IMP_EM2D_USE_IMP_KERNEL
108 #define IMP_EM2D_HAS_IMP_KERNEL 1
109 #define IMP_EM2D_USE_IMP_RMF
110 #define IMP_EM2D_HAS_IMP_RMF 1
111 #define IMP_EM2D_USE_IMP_SCORE_FUNCTOR
112 #define IMP_EM2D_HAS_IMP_SCORE_FUNCTOR 1
113 #define IMP_EM2D_USE_IMP_STATISTICS
114 #define IMP_EM2D_HAS_IMP_STATISTICS 1
115 #define IMP_EM2D_USE_BOOST_GRAPH
116 #define IMP_EM2D_HAS_BOOST_GRAPH 1
117 #define IMP_EM2D_USE_BOOST_RANDOM
118 #define IMP_EM2D_HAS_BOOST_RANDOM 1
119 #define IMP_EM2D_USE_BOOST_REGEX
120 #define IMP_EM2D_HAS_BOOST_REGEX 1
121 #define IMP_EM2D_USE_BOOST_SYSTEM
122 #define IMP_EM2D_HAS_BOOST_SYSTEM 1
123 #define IMP_EM2D_USE_CGAL
124 #define IMP_EM2D_HAS_CGAL 1
125 #define IMP_EM2D_USE_GSL
126 #define IMP_EM2D_HAS_GSL 1
127 #define IMP_EM2D_USE_HDF5
128 #define IMP_EM2D_HAS_HDF5 1
129 #define IMP_EM2D_USE_OPENCV22
130 #define IMP_EM2D_HAS_OPENCV22 1
131 #define IMP_EM2D_USE_RMF
132 #define IMP_EM2D_HAS_RMF 1
133 #define IMP_EM2D_NO_OPENCV21
134 #define IMP_EM2D_HAS_OPENCV21 0
135 
136 // functions are defined explicitly for swig
137 
138 namespace IMP { namespace em2d {
139 /** \name Standard module methods
140  All \imp modules have a set of standard methods to help get information
141  about the module and about files associated with the module.
142  @{
143  */
144 #if !defined(SWIG)
145 IMPEM2DEXPORT std::string get_module_version();
146 #endif
147 
148 #if !defined(SWIG)
149 // swig will whine about duplicate definitions of function
150 inline std::string get_module_name() {
151  return "IMP::em2d";
152 }
153 #endif
154 
155 } } //namespace
156 
157 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
158 
159 #include <IMP/base/Showable.h>
160 #include <IMP/base/hash.h>
161 
162 namespace IMP { namespace em2d {
163 using ::IMP::base::Showable;
164 using ::IMP::base::operator<<;
165 using ::IMP::base::hash_value;
166 } } // namespace
167 namespace IMP { namespace em2d { namespace internal {
168 using ::IMP::base::Showable;
169 using ::IMP::base::operator<<;
170 using ::IMP::base::hash_value;
171 } } } // namespace
172 
173 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
174 
175 
176 #if !defined(SWIG)
177 
178 namespace IMP { namespace em2d {
179 
180 //! Return the full path to installed data
181 /** Each module has its own data directory, so be sure to use
182  the version of this function in the correct module. To read
183  the data file "data_library" that was placed in the \c data
184  directory of module "mymodule", do something like
185  \code
186  std::ifstream in(IMP::mymodule::get_data_path("data_library"));
187  \endcode
188  This will ensure that the code works when \imp is installed or
189  used via the \c tools/imppy.sh script.
190 */
191 IMPEM2DEXPORT std::string get_data_path(std::string file_name);
192 
193 //! Return the path to installed example data for this module
194 /** Each module has its own example directory, so be sure to use
195  the version of this function in the correct module. For example
196  to read the file \c example_protein.pdb located in the
197  \c examples directory of the IMP::atom module, do
198  \code
199  IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));
200  \endcode
201  This will ensure that the code works when \imp is installed or
202  used via the \c tools/imppy.sh script.
203 */
204 IMPEM2DEXPORT std::string get_example_path(std::string file_name);
205 /** @} */
206 
207 
208 } } // namespace
209 
210 #endif // SWIG
211 
213 
214 #ifdef IMP_DOXYGEN
215 /** \namespace IMP::em2d
216  \brief See \ref IMP_em2d_overview "IMP.em2d Overview" for more information.
217  */
218 #endif
219 
220 #endif /* IMPEM2D_CONFIG_H */