IMP  2.0.1
The Integrative Modeling Platform
saxs_config.h
1 
2 /*
3  * \file IMP/saxs/saxs_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, IMPSAXS_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  * IMPSAXSEXPORT 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::saxs namespace.
18  * This is simply achieved by wrapping things with the
19  * IMPSAXS_BEGIN_NAMESPACE and IMPSAXS_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 IMPSAXS_CONFIG_H
31 #define IMPSAXS_CONFIG_H
32 
33 #include <IMP/base/base_config.h>
34 #include <string>
35 
36 
37 #ifdef _MSC_VER
38 
39 #ifdef IMPSAXS_EXPORTS
40 #define IMPSAXSEXPORT __declspec(dllexport)
41 #else // EXPORTS
42 #define IMPSAXSEXPORT __declspec(dllimport)
43 #endif // EXPORTS
44 
45 #else // _MSC_VER
46 
47 #ifdef GCC_VISIBILITY
48 #define IMPSAXSEXPORT __attribute__ ((visibility("default")))
49 #else // GCC_VISIBILITY
50 #define IMPSAXSEXPORT
51 #endif // GCC_VISIBILITY
52 #endif // _MSC_VER
53 
54 #if defined(_MSC_VER) && !defined(SWIG)
55 #ifdef IMPSAXS_EXPORTS
56 
57 #define IMPSAXS_EXPORT_TEMPLATE(name) template class __declspec(dllexport) name
58 
59 #else //EXPORTS
60 
61 #define IMPSAXS_EXPORT_TEMPLATE(name) template class __declspec(dllimport) name
62 
63 #endif // EXPORTS
64 
65 #else // MSC and SWIG
66 #define IMPSAXS_EXPORT_TEMPLATE(name) IMP_REQUIRE_SEMICOLON_NAMESPACE
67 
68 #endif // MSC and SWIG
69 
70 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
71 
72 #define IMPSAXS_BEGIN_NAMESPACE \
73 IMP_COMPILER_ENABLE_WARNINGS \
74 namespace IMP { namespace saxs { \
75 
76 #define IMPSAXS_END_NAMESPACE \
77 } } \
78 IMP_COMPILER_DISABLE_WARNINGS
79 
80 #define IMPSAXS_BEGIN_INTERNAL_NAMESPACE \
81 IMPSAXS_BEGIN_NAMESPACE namespace internal {
82 
83 
84 #define IMPSAXS_END_INTERNAL_NAMESPACE \
85 } IMPSAXS_END_NAMESPACE
86 
87 #else
88 #define IMPSAXS_BEGIN_NAMESPACE \
89 namespace IMP { namespace saxs {
90 
91 #define IMPSAXS_END_NAMESPACE \
92 } }
93 
94 #define IMPSAXS_BEGIN_INTERNAL_NAMESPACE \
95 IMPSAXS_BEGIN_NAMESPACE namespace internal {
96 
97 
98 #define IMPSAXS_END_INTERNAL_NAMESPACE \
99 } IMPSAXS_END_NAMESPACE
100 
101 #endif
102 
103 #define IMP_SAXS_USE_IMP_BASE
104 #define IMP_SAXS_HAS_IMP_BASE 1
105 #define IMP_SAXS_USE_IMP_CGAL
106 #define IMP_SAXS_HAS_IMP_CGAL 1
107 #define IMP_SAXS_USE_IMP_CONTAINER
108 #define IMP_SAXS_HAS_IMP_CONTAINER 1
109 #define IMP_SAXS_USE_IMP_DISPLAY
110 #define IMP_SAXS_HAS_IMP_DISPLAY 1
111 #define IMP_SAXS_USE_IMP_KERNEL
112 #define IMP_SAXS_HAS_IMP_KERNEL 1
113 #define IMP_SAXS_USE_IMP_SCORE_FUNCTOR
114 #define IMP_SAXS_HAS_IMP_SCORE_FUNCTOR 1
115 #define IMP_SAXS_USE_BOOST_FILESYSTEM
116 #define IMP_SAXS_HAS_BOOST_FILESYSTEM 1
117 #define IMP_SAXS_USE_BOOST_PROGRAMOPTIONS
118 #define IMP_SAXS_HAS_BOOST_PROGRAMOPTIONS 1
119 #define IMP_SAXS_USE_BOOST_RANDOM
120 #define IMP_SAXS_HAS_BOOST_RANDOM 1
121 #define IMP_SAXS_USE_BOOST_REGEX
122 #define IMP_SAXS_HAS_BOOST_REGEX 1
123 #define IMP_SAXS_USE_BOOST_SYSTEM
124 #define IMP_SAXS_HAS_BOOST_SYSTEM 1
125 #define IMP_SAXS_USE_CGAL
126 #define IMP_SAXS_HAS_CGAL 1
127 
128 // functions are defined explicitly for swig
129 
130 namespace IMP { namespace saxs {
131 /** \name Standard module methods
132  All \imp modules have a set of standard methods to help get information
133  about the module and about files associated with the module.
134  @{
135  */
136 #if !defined(SWIG)
137 IMPSAXSEXPORT std::string get_module_version();
138 #endif
139 
140 #if !defined(SWIG)
141 // swig will whine about duplicate definitions of function
142 inline std::string get_module_name() {
143  return "IMP::saxs";
144 }
145 #endif
146 
147 } } //namespace
148 
149 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
150 
151 #include <IMP/base/Showable.h>
152 #include <IMP/base/hash.h>
153 
154 namespace IMP { namespace saxs {
155 using ::IMP::base::Showable;
156 using ::IMP::base::operator<<;
157 using ::IMP::base::hash_value;
158 } } // namespace
159 namespace IMP { namespace saxs { namespace internal {
160 using ::IMP::base::Showable;
161 using ::IMP::base::operator<<;
162 using ::IMP::base::hash_value;
163 } } } // namespace
164 
165 #endif // !defined(SWIG) && !defined(IMP_DOXYGEN)
166 
167 
168 #if !defined(SWIG)
169 
170 namespace IMP { namespace saxs {
171 
172 //! Return the full path to installed data
173 /** Each module has its own data directory, so be sure to use
174  the version of this function in the correct module. To read
175  the data file "data_library" that was placed in the \c data
176  directory of module "mymodule", do something like
177  \code
178  std::ifstream in(IMP::mymodule::get_data_path("data_library"));
179  \endcode
180  This will ensure that the code works when \imp is installed or
181  used via the \c tools/imppy.sh script.
182 */
183 IMPSAXSEXPORT std::string get_data_path(std::string file_name);
184 
185 //! Return the path to installed example data for this module
186 /** Each module has its own example directory, so be sure to use
187  the version of this function in the correct module. For example
188  to read the file \c example_protein.pdb located in the
189  \c examples directory of the IMP::atom module, do
190  \code
191  IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));
192  \endcode
193  This will ensure that the code works when \imp is installed or
194  used via the \c tools/imppy.sh script.
195 */
196 IMPSAXSEXPORT std::string get_example_path(std::string file_name);
197 /** @} */
198 
199 
200 } } // namespace
201 
202 #endif // SWIG
203 
205 
206 #ifdef IMP_DOXYGEN
207 /** \namespace IMP::saxs
208  \brief See \ref IMP_saxs_overview "IMP.saxs Overview" for more information.
209  */
210 #endif
211 
212 #endif /* IMPSAXS_CONFIG_H */