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
# define BOOST_MSVC6_OR_EARLIER 1
36
# pragma warning (disable : 4786) // disable truncated debug symbols
37
# pragma warning (disable : 4251) // disable exported dll function
38
# pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
39
# pragma warning (disable : 4275) // non dll-interface class
41
# elif defined(__ICL) && __ICL < 600 // Intel C++ 5
43
# pragma warning(disable: 985) // identifier was truncated in debug information
47
// The STLport puts all of the standard 'C' library names in std (as far as the
48
// user is concerned), but without it you need a fix if you're using MSVC or
50
# if defined(BOOST_NO_STDC_NAMESPACE)
53
# define BOOST_CSTD_ std
56
/*****************************************************************************
58
* Set up dll import/export options:
60
****************************************************************************/
62
// backwards compatibility:
63
#ifdef BOOST_PYTHON_STATIC_LIB
64
# define BOOST_PYTHON_STATIC_LINK
65
# elif !defined(BOOST_PYTHON_DYNAMIC_LIB)
66
# define BOOST_PYTHON_DYNAMIC_LIB
69
#if defined(BOOST_PYTHON_DYNAMIC_LIB)
71
# if !defined(_WIN32) && !defined(__CYGWIN__) \
72
&& !defined(BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY) \
73
&& BOOST_WORKAROUND(__GNUC__, >= 3) && (__GNUC_MINOR__ >=5 || __GNUC__ > 3)
74
# define BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY 1
77
# if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY
78
# if defined(BOOST_PYTHON_SOURCE)
79
# define BOOST_PYTHON_DECL __attribute__ ((visibility("default")))
80
# define BOOST_PYTHON_BUILD_DLL
82
# define BOOST_PYTHON_DECL
84
# define BOOST_PYTHON_DECL_FORWARD
85
# define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((visibility("default")))
86
# elif (defined(_WIN32) || defined(__CYGWIN__))
87
# if defined(BOOST_PYTHON_SOURCE)
88
# define BOOST_PYTHON_DECL __declspec(dllexport)
89
# define BOOST_PYTHON_BUILD_DLL
91
# define BOOST_PYTHON_DECL __declspec(dllimport)
97
#ifndef BOOST_PYTHON_DECL
98
# define BOOST_PYTHON_DECL
101
#ifndef BOOST_PYTHON_DECL_FORWARD
102
# define BOOST_PYTHON_DECL_FORWARD BOOST_PYTHON_DECL
105
#ifndef BOOST_PYTHON_DECL_EXCEPTION
106
# define BOOST_PYTHON_DECL_EXCEPTION BOOST_PYTHON_DECL
109
#if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
110
// Replace broken Tru64/cxx offsetof macro
111
# define BOOST_PYTHON_OFFSETOF(s_name, s_member) \
112
((size_t)__INTADDR__(&(((s_name *)0)->s_member)))
114
# define BOOST_PYTHON_OFFSETOF offsetof
117
// enable automatic library variant selection ------------------------------//
119
#if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB)
121
// Set the name of our library, this will get undef'ed by auto_link.hpp
122
// once it's done with it:
124
#define BOOST_LIB_NAME boost_python
126
// If we're importing code from a dll, then tell auto_link.hpp about it:
128
#ifdef BOOST_PYTHON_DYNAMIC_LIB
129
# define BOOST_DYN_LINK
132
// And include the header that does the work:
134
#include <boost/config/auto_link.hpp>
135
#endif // auto-linking disabled
137
#ifndef BOOST_PYTHON_NO_PY_SIGNATURES
138
#define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition
141
#endif // CONFIG_DWA052200_H_