1 // (C) Copyright David Abrahams 2000.
2 // Distributed under the Boost Software License, Version 1.0. (See
3 // accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
6 // The author gratefully acknowleges the support of Dragon Systems, Inc., in
7 // producing this work.
10 // 04 Mar 01 Some fixes so it will compile with Intel C++ (Dave Abrahams)
12 #ifndef CONFIG_DWA052200_H_
13 # define CONFIG_DWA052200_H_
15 # include <boost/config.hpp>
16 # include <boost/detail/workaround.hpp>
18 # ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
19 // A gcc bug forces some symbols into the global namespace
20 # define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE
21 # define BOOST_PYTHON_END_CONVERSION_NAMESPACE
22 # define BOOST_PYTHON_CONVERSION
23 # define BOOST_PYTHON_IMPORT_CONVERSION(x) using ::x
25 # define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE namespace boost { namespace python {
26 # define BOOST_PYTHON_END_CONVERSION_NAMESPACE }} // namespace boost::python
27 # define BOOST_PYTHON_CONVERSION boost::python
28 # define BOOST_PYTHON_IMPORT_CONVERSION(x) void never_defined() // so we can follow the macro with a ';'
31 # if defined(BOOST_MSVC)
33 # pragma warning (disable : 4786) // disable truncated debug symbols
34 # pragma warning (disable : 4251) // disable exported dll function
35 # pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
36 # pragma warning (disable : 4275) // non dll-interface class
38 # elif defined(__ICL) && __ICL < 600 // Intel C++ 5
40 # pragma warning(disable: 985) // identifier was truncated in debug information
44 // The STLport puts all of the standard 'C' library names in std (as far as the
45 // user is concerned), but without it you need a fix if you're using MSVC or
47 # if defined(BOOST_NO_STDC_NAMESPACE)
50 # define BOOST_CSTD_ std
53 /*****************************************************************************
55 * Set up dll import/export options:
57 ****************************************************************************/
59 // backwards compatibility:
60 #ifdef BOOST_PYTHON_STATIC_LIB
61 # define BOOST_PYTHON_STATIC_LINK
62 # elif !defined(BOOST_PYTHON_DYNAMIC_LIB)
63 # define BOOST_PYTHON_DYNAMIC_LIB
66 #if defined(BOOST_PYTHON_DYNAMIC_LIB)
68 # if !defined(_WIN32) && !defined(__CYGWIN__) \
69 && !defined(BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY) \
70 && BOOST_WORKAROUND(__GNUC__, >= 3) && (__GNUC_MINOR__ >=5 || __GNUC__ > 3)
71 # define BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY 1
74 # if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY
75 # if defined(BOOST_PYTHON_SOURCE)
76 # define BOOST_PYTHON_DECL __attribute__ ((__visibility__("default")))
77 # define BOOST_PYTHON_BUILD_DLL
79 # define BOOST_PYTHON_DECL
81 # define BOOST_PYTHON_DECL_FORWARD
82 # define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((__visibility__("default")))
83 # elif (defined(_WIN32) || defined(__CYGWIN__))
84 # if defined(BOOST_PYTHON_SOURCE)
85 # define BOOST_PYTHON_DECL __declspec(dllexport)
86 # define BOOST_PYTHON_BUILD_DLL
88 # define BOOST_PYTHON_DECL __declspec(dllimport)
94 #ifndef BOOST_PYTHON_DECL
95 # define BOOST_PYTHON_DECL
98 #ifndef BOOST_PYTHON_DECL_FORWARD
99 # define BOOST_PYTHON_DECL_FORWARD BOOST_PYTHON_DECL
102 #ifndef BOOST_PYTHON_DECL_EXCEPTION
103 # define BOOST_PYTHON_DECL_EXCEPTION BOOST_PYTHON_DECL
106 #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
107 // Replace broken Tru64/cxx offsetof macro
108 # define BOOST_PYTHON_OFFSETOF(s_name, s_member) \
109 ((size_t)__INTADDR__(&(((s_name *)0)->s_member)))
111 # define BOOST_PYTHON_OFFSETOF offsetof
114 // enable automatic library variant selection ------------------------------//
116 #if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB)
118 // Set the name of our library, this will get undef'ed by auto_link.hpp
119 // once it's done with it:
121 #define BOOST_LIB_NAME boost_python
123 // If we're importing code from a dll, then tell auto_link.hpp about it:
125 #ifdef BOOST_PYTHON_DYNAMIC_LIB
126 # define BOOST_DYN_LINK
129 // And include the header that does the work:
131 #include <boost/config/auto_link.hpp>
132 #endif // auto-linking disabled
134 #ifndef BOOST_PYTHON_NO_PY_SIGNATURES
135 #define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition
138 #if !defined(BOOST_ATTRIBUTE_UNUSED) && defined(__GNUC__) && (__GNUC__ >= 4)
139 # define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
142 #endif // CONFIG_DWA052200_H_