summaryrefslogtreecommitdiff
path: root/boost/python/detail/config.hpp
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
committerAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
commit1a78a62555be32868418fe52f8e330c9d0f95d5a (patch)
treed3765a80e7d3b9640ec2e930743630cd6b9fce2b /boost/python/detail/config.hpp
downloadboost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'boost/python/detail/config.hpp')
-rw-r--r--boost/python/detail/config.hpp141
1 files changed, 141 insertions, 0 deletions
diff --git a/boost/python/detail/config.hpp b/boost/python/detail/config.hpp
new file mode 100644
index 0000000000..acafc03747
--- /dev/null
+++ b/boost/python/detail/config.hpp
@@ -0,0 +1,141 @@
+// (C) Copyright David Abrahams 2000.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// The author gratefully acknowleges the support of Dragon Systems, Inc., in
+// producing this work.
+
+// Revision History:
+// 04 Mar 01 Some fixes so it will compile with Intel C++ (Dave Abrahams)
+
+#ifndef CONFIG_DWA052200_H_
+# define CONFIG_DWA052200_H_
+
+# include <boost/config.hpp>
+# include <boost/detail/workaround.hpp>
+
+# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
+ // A gcc bug forces some symbols into the global namespace
+# define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE
+# define BOOST_PYTHON_END_CONVERSION_NAMESPACE
+# define BOOST_PYTHON_CONVERSION
+# define BOOST_PYTHON_IMPORT_CONVERSION(x) using ::x
+# else
+# define BOOST_PYTHON_BEGIN_CONVERSION_NAMESPACE namespace boost { namespace python {
+# define BOOST_PYTHON_END_CONVERSION_NAMESPACE }} // namespace boost::python
+# define BOOST_PYTHON_CONVERSION boost::python
+# define BOOST_PYTHON_IMPORT_CONVERSION(x) void never_defined() // so we can follow the macro with a ';'
+# endif
+
+# if defined(BOOST_MSVC)
+# if _MSC_VER < 1300
+# define BOOST_MSVC6_OR_EARLIER 1
+# endif
+
+# pragma warning (disable : 4786) // disable truncated debug symbols
+# pragma warning (disable : 4251) // disable exported dll function
+# pragma warning (disable : 4800) //'int' : forcing value to bool 'true' or 'false'
+# pragma warning (disable : 4275) // non dll-interface class
+
+# elif defined(__ICL) && __ICL < 600 // Intel C++ 5
+
+# pragma warning(disable: 985) // identifier was truncated in debug information
+
+# endif
+
+// The STLport puts all of the standard 'C' library names in std (as far as the
+// user is concerned), but without it you need a fix if you're using MSVC or
+// Intel C++
+# if defined(BOOST_NO_STDC_NAMESPACE)
+# define BOOST_CSTD_
+# else
+# define BOOST_CSTD_ std
+# endif
+
+/*****************************************************************************
+ *
+ * Set up dll import/export options:
+ *
+ ****************************************************************************/
+
+// backwards compatibility:
+#ifdef BOOST_PYTHON_STATIC_LIB
+# define BOOST_PYTHON_STATIC_LINK
+# elif !defined(BOOST_PYTHON_DYNAMIC_LIB)
+# define BOOST_PYTHON_DYNAMIC_LIB
+#endif
+
+#if defined(BOOST_PYTHON_DYNAMIC_LIB)
+
+# if !defined(_WIN32) && !defined(__CYGWIN__) \
+ && !defined(BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY) \
+ && BOOST_WORKAROUND(__GNUC__, >= 3) && (__GNUC_MINOR__ >=5 || __GNUC__ > 3)
+# define BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY 1
+# endif
+
+# if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY
+# if defined(BOOST_PYTHON_SOURCE)
+# define BOOST_PYTHON_DECL __attribute__ ((visibility("default")))
+# define BOOST_PYTHON_BUILD_DLL
+# else
+# define BOOST_PYTHON_DECL
+# endif
+# define BOOST_PYTHON_DECL_FORWARD
+# define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((visibility("default")))
+# elif (defined(_WIN32) || defined(__CYGWIN__))
+# if defined(BOOST_PYTHON_SOURCE)
+# define BOOST_PYTHON_DECL __declspec(dllexport)
+# define BOOST_PYTHON_BUILD_DLL
+# else
+# define BOOST_PYTHON_DECL __declspec(dllimport)
+# endif
+# endif
+
+#endif
+
+#ifndef BOOST_PYTHON_DECL
+# define BOOST_PYTHON_DECL
+#endif
+
+#ifndef BOOST_PYTHON_DECL_FORWARD
+# define BOOST_PYTHON_DECL_FORWARD BOOST_PYTHON_DECL
+#endif
+
+#ifndef BOOST_PYTHON_DECL_EXCEPTION
+# define BOOST_PYTHON_DECL_EXCEPTION BOOST_PYTHON_DECL
+#endif
+
+#if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
+// Replace broken Tru64/cxx offsetof macro
+# define BOOST_PYTHON_OFFSETOF(s_name, s_member) \
+ ((size_t)__INTADDR__(&(((s_name *)0)->s_member)))
+#else
+# define BOOST_PYTHON_OFFSETOF offsetof
+#endif
+
+// enable automatic library variant selection ------------------------------//
+
+#if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB)
+//
+// Set the name of our library, this will get undef'ed by auto_link.hpp
+// once it's done with it:
+//
+#define BOOST_LIB_NAME boost_python
+//
+// If we're importing code from a dll, then tell auto_link.hpp about it:
+//
+#ifdef BOOST_PYTHON_DYNAMIC_LIB
+# define BOOST_DYN_LINK
+#endif
+//
+// And include the header that does the work:
+//
+#include <boost/config/auto_link.hpp>
+#endif // auto-linking disabled
+
+#ifndef BOOST_PYTHON_NO_PY_SIGNATURES
+#define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition
+#endif
+
+#endif // CONFIG_DWA052200_H_