os/ossrv/ossrv_pub/boost_apis/boost/python/detail/config.hpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     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 #  if _MSC_VER < 1300
    33 #   define BOOST_MSVC6_OR_EARLIER 1
    34 #  endif
    35 
    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
    40 
    41 # elif defined(__ICL) && __ICL < 600 // Intel C++ 5
    42 
    43 #  pragma warning(disable: 985) // identifier was truncated in debug information
    44 
    45 # endif
    46 
    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
    49 // Intel C++
    50 # if defined(BOOST_NO_STDC_NAMESPACE)
    51 #  define BOOST_CSTD_
    52 # else
    53 #  define BOOST_CSTD_ std
    54 # endif
    55 
    56 /*****************************************************************************
    57  *
    58  *  Set up dll import/export options:
    59  *
    60  ****************************************************************************/
    61 
    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
    67 #endif
    68 
    69 #if defined(BOOST_PYTHON_DYNAMIC_LIB)
    70 
    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
    75 #  endif 
    76 
    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
    81 #     else
    82 #        define BOOST_PYTHON_DECL
    83 #     endif
    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
    90 #     else
    91 #        define BOOST_PYTHON_DECL __declspec(dllimport)
    92 #     endif
    93 #  endif
    94 
    95 #endif
    96 
    97 #ifndef BOOST_PYTHON_DECL
    98 #  define BOOST_PYTHON_DECL
    99 #endif
   100 
   101 #ifndef BOOST_PYTHON_DECL_FORWARD
   102 #  define BOOST_PYTHON_DECL_FORWARD BOOST_PYTHON_DECL
   103 #endif
   104 
   105 #ifndef BOOST_PYTHON_DECL_EXCEPTION
   106 #  define BOOST_PYTHON_DECL_EXCEPTION BOOST_PYTHON_DECL
   107 #endif
   108 
   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)))
   113 #else
   114 # define BOOST_PYTHON_OFFSETOF offsetof
   115 #endif
   116 
   117 //  enable automatic library variant selection  ------------------------------// 
   118 
   119 #if !defined(BOOST_PYTHON_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_PYTHON_NO_LIB)
   120 //
   121 // Set the name of our library, this will get undef'ed by auto_link.hpp
   122 // once it's done with it:
   123 //
   124 #define BOOST_LIB_NAME boost_python
   125 //
   126 // If we're importing code from a dll, then tell auto_link.hpp about it:
   127 //
   128 #ifdef BOOST_PYTHON_DYNAMIC_LIB
   129 #  define BOOST_DYN_LINK
   130 #endif
   131 //
   132 // And include the header that does the work:
   133 //
   134 #include <boost/config/auto_link.hpp>
   135 #endif  // auto-linking disabled
   136 
   137 #endif // CONFIG_DWA052200_H_