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) 5 // 6 // The author gratefully acknowleges the support of Dragon Systems, Inc., in 7 // producing this work. 8 9 // Revision History: 10 // 04 Mar 01 Some fixes so it will compile with Intel C++ (Dave Abrahams) 11 12 #ifndef CONFIG_DWA052200_H_ 13 # define CONFIG_DWA052200_H_ 14 15 # include <boost/config.hpp> 16 # include <boost/detail/workaround.hpp> 17 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 24 # else 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 ';' 29 # endif 30 31 # if defined(BOOST_MSVC) 32 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 37 38 # elif defined(__ICL) && __ICL < 600 // Intel C++ 5 39 40 # pragma warning(disable: 985) // identifier was truncated in debug information 41 42 # endif 43 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 46 // Intel C++ 47 # if defined(BOOST_NO_STDC_NAMESPACE) 48 # define BOOST_CSTD_ 49 # else 50 # define BOOST_CSTD_ std 51 # endif 52 53 /***************************************************************************** 54 * 55 * Set up dll import/export options: 56 * 57 ****************************************************************************/ 58 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 64 #endif 65 66 #if defined(BOOST_PYTHON_DYNAMIC_LIB) 67 # if defined(BOOST_SYMBOL_EXPORT) 68 # if defined(BOOST_PYTHON_SOURCE) 69 # define BOOST_PYTHON_DECL BOOST_SYMBOL_EXPORT 70 # define BOOST_PYTHON_DECL_FORWARD BOOST_SYMBOL_FORWARD_EXPORT 71 # define BOOST_PYTHON_DECL_EXCEPTION BOOST_EXCEPTION_EXPORT 72 # define BOOST_PYTHON_BUILD_DLL 73 # else 74 # define BOOST_PYTHON_DECL BOOST_SYMBOL_IMPORT 75 # define BOOST_PYTHON_DECL_FORWARD BOOST_SYMBOL_FORWARD_IMPORT 76 # define BOOST_PYTHON_DECL_EXCEPTION BOOST_EXCEPTION_IMPORT 77 # endif 78 # endif 79 #endif 80 81 #ifndef BOOST_PYTHON_DECL 82 # define BOOST_PYTHON_DECL 83 #endif 84 85 #ifndef BOOST_PYTHON_DECL_FORWARD 86 # define BOOST_PYTHON_DECL_FORWARD 87 #endif 88 89 #ifndef BOOST_PYTHON_DECL_EXCEPTION 90 # define BOOST_PYTHON_DECL_EXCEPTION 91 #endif 92 93 #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) 94 // Replace broken Tru64/cxx offsetof macro 95 # define BOOST_PYTHON_OFFSETOF(s_name, s_member) \ 96 ((size_t)__INTADDR__(&(((s_name *)0)->s_member))) 97 #else 98 # define BOOST_PYTHON_OFFSETOF offsetof 99 #endif 100 101 // enable automatic library variant selection ------------------------------// 102 103 #if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB) 104 // 105 // Set the name of our library, this will get undef'ed by auto_link.hpp 106 // once it's done with it: 107 // 108 #define _BOOST_PYTHON_CONCAT(N, M, m) N ## M ## m 109 #define BOOST_PYTHON_CONCAT(N, M, m) _BOOST_PYTHON_CONCAT(N, M, m) 110 #define BOOST_LIB_NAME BOOST_PYTHON_CONCAT(boost_python, PY_MAJOR_VERSION, PY_MINOR_VERSION) 111 // 112 // If we're importing code from a dll, then tell auto_link.hpp about it: 113 // 114 #ifdef BOOST_PYTHON_DYNAMIC_LIB 115 # define BOOST_DYN_LINK 116 #endif 117 // 118 // And include the header that does the work: 119 // 120 #include <boost/config/auto_link.hpp> 121 #endif // auto-linking disabled 122 123 #undef BOOST_PYTHON_CONCAT 124 #undef _BOOST_PYTHON_CONCAT 125 126 #ifndef BOOST_PYTHON_NO_PY_SIGNATURES 127 #define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition 128 #endif 129 130 #if !defined(BOOST_ATTRIBUTE_UNUSED) && defined(__GNUC__) && (__GNUC__ >= 4) 131 # define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) 132 #endif 133 134 #endif // CONFIG_DWA052200_H_ 135