1 // (C) Copyright Gennadiy Rozental 2001. 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 6 // See http://www.boost.org/libs/test for the library home page. 7 // 8 //!@file 9 //!@brief a central place for global configuration switches 10 // *************************************************************************** 11 12 #ifndef BOOST_TEST_CONFIG_HPP_071894GER 13 #define BOOST_TEST_CONFIG_HPP_071894GER 14 15 // Boost 16 #include <boost/config.hpp> // compilers workarounds 17 #include <boost/detail/workaround.hpp> 18 19 #if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) && \ 20 (!defined(__COMO__) && !defined(__MWERKS__) && \ 21 !defined(__GNUC__) && !defined(BOOST_EMBTC) || \ 22 BOOST_WORKAROUND(__MWERKS__, >= 0x3000)) 23 # define BOOST_SEH_BASED_SIGNAL_HANDLING 24 #endif 25 26 #if defined(__COMO__) && defined(_MSC_VER) 27 // eh.h uses type_info without declaring it. 28 class type_info; 29 # define BOOST_SEH_BASED_SIGNAL_HANDLING 30 #endif 31 32 //____________________________________________________________________________// 33 34 #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x570)) || \ 35 BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) || \ 36 (defined __sgi && BOOST_WORKAROUND(_COMPILER_VERSION, BOOST_TESTED_AT(730))) 37 # define BOOST_TEST_SHIFTED_LINE 38 #endif 39 40 //____________________________________________________________________________// 41 42 #if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)) 43 # define BOOST_TEST_CALL_DECL __cdecl 44 #else 45 # define BOOST_TEST_CALL_DECL /**/ 46 #endif 47 48 //____________________________________________________________________________// 49 50 #if !defined(BOOST_NO_STD_LOCALE) && !defined(__MWERKS__) 51 # define BOOST_TEST_USE_STD_LOCALE 1 52 #endif 53 54 //____________________________________________________________________________// 55 56 #if BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x570) || \ 57 BOOST_WORKAROUND( __COMO__, <= 0x433 ) || \ 58 BOOST_WORKAROUND( __INTEL_COMPILER, <= 800 ) || \ 59 defined(__sgi) && _COMPILER_VERSION <= 730 || \ 60 BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) || \ 61 defined(__DECCXX) || \ 62 defined(__DMC__) 63 # define BOOST_TEST_NO_PROTECTED_USING 64 #endif 65 66 //____________________________________________________________________________// 67 68 #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) 69 #define BOOST_TEST_PROTECTED_VIRTUAL 70 #else 71 #define BOOST_TEST_PROTECTED_VIRTUAL virtual 72 #endif 73 74 //____________________________________________________________________________// 75 76 #if !defined(BOOST_BORLANDC) && !BOOST_WORKAROUND( __SUNPRO_CC, < 0x5100 ) 77 #define BOOST_TEST_SUPPORT_TOKEN_ITERATOR 1 78 #endif 79 80 //____________________________________________________________________________// 81 82 // Sun compiler does not support visibility on enums 83 #if defined(__SUNPRO_CC) 84 #define BOOST_TEST_ENUM_SYMBOL_VISIBLE 85 #else 86 #define BOOST_TEST_ENUM_SYMBOL_VISIBLE BOOST_SYMBOL_VISIBLE 87 #endif 88 89 //____________________________________________________________________________// 90 91 #if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_TEST_DYN_LINK) 92 # define BOOST_TEST_DYN_LINK 93 #endif 94 95 // in case any of the define from cmake/b2 is set 96 #if !defined(BOOST_TEST_DYN_LINK) \ 97 && (defined(BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK) \ 98 || defined(BOOST_TEST_EXEC_MONITOR_DYN_LINK) \ 99 || defined(BOOST_PRG_EXEC_MONITOR_DYN_LINK) ) 100 # define BOOST_TEST_DYN_LINK 101 #endif 102 103 #if defined(BOOST_TEST_INCLUDED) 104 # undef BOOST_TEST_DYN_LINK 105 #endif 106 107 #if defined(BOOST_TEST_DYN_LINK) 108 # define BOOST_TEST_ALTERNATIVE_INIT_API 109 110 # ifdef BOOST_TEST_SOURCE 111 # define BOOST_TEST_DECL BOOST_SYMBOL_EXPORT BOOST_SYMBOL_VISIBLE 112 # else 113 # define BOOST_TEST_DECL BOOST_SYMBOL_IMPORT BOOST_SYMBOL_VISIBLE 114 # endif // BOOST_TEST_SOURCE 115 #else 116 # if defined(BOOST_TEST_INCLUDED) 117 # define BOOST_TEST_DECL 118 # else 119 # define BOOST_TEST_DECL BOOST_SYMBOL_VISIBLE 120 # endif 121 #endif 122 123 #if !defined(BOOST_TEST_MAIN) && defined(BOOST_AUTO_TEST_MAIN) 124 #define BOOST_TEST_MAIN BOOST_AUTO_TEST_MAIN 125 #endif 126 127 #if !defined(BOOST_TEST_MAIN) && defined(BOOST_TEST_MODULE) 128 #define BOOST_TEST_MAIN BOOST_TEST_MODULE 129 #endif 130 131 132 133 #ifndef BOOST_PP_VARIADICS /* we can change this only if not already defined */ 134 135 #ifdef __PGI 136 #define BOOST_PP_VARIADICS 1 137 #endif 138 139 #if BOOST_CLANG 140 #define BOOST_PP_VARIADICS 1 141 #endif 142 143 #if defined(BOOST_GCC) && (BOOST_GCC >= 4 * 10000 + 8 * 100) 144 #define BOOST_PP_VARIADICS 1 145 #endif 146 147 #if defined(__NVCC__) 148 #define BOOST_PP_VARIADICS 1 149 #endif 150 151 #endif /* ifndef BOOST_PP_VARIADICS */ 152 153 // some versions of VC exibit a manifest error with this BOOST_UNREACHABLE_RETURN 154 #if BOOST_WORKAROUND(BOOST_MSVC, < 1910) 155 # define BOOST_TEST_UNREACHABLE_RETURN(x) return x 156 #else 157 # define BOOST_TEST_UNREACHABLE_RETURN(x) BOOST_UNREACHABLE_RETURN(x) 158 #endif 159 160 //____________________________________________________________________________// 161 // string_view support 162 //____________________________________________________________________________// 163 // note the code should always be compatible with compiled version of boost.test 164 // using a pre-c++17 compiler 165 166 #ifndef BOOST_NO_CXX17_HDR_STRING_VIEW 167 #define BOOST_TEST_STRING_VIEW 168 #endif 169 170 #endif // BOOST_TEST_CONFIG_HPP_071894GER 171