config.hpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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. // See http://www.boost.org/libs/test for the library home page.
  6. //
  7. //!@file
  8. //!@brief a central place for global configuration switches
  9. // ***************************************************************************
  10. #ifndef BOOST_TEST_CONFIG_HPP_071894GER
  11. #define BOOST_TEST_CONFIG_HPP_071894GER
  12. // Boost
  13. #include <boost/config.hpp> // compilers workarounds
  14. #include <boost/detail/workaround.hpp>
  15. #if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) && \
  16. (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
  17. BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
  18. # define BOOST_SEH_BASED_SIGNAL_HANDLING
  19. #endif
  20. #if defined(__COMO__) && defined(_MSC_VER)
  21. // eh.h uses type_info without declaring it.
  22. class type_info;
  23. # define BOOST_SEH_BASED_SIGNAL_HANDLING
  24. #endif
  25. //____________________________________________________________________________//
  26. #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) || \
  27. BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) || \
  28. (defined __sgi && BOOST_WORKAROUND(_COMPILER_VERSION, BOOST_TESTED_AT(730)))
  29. # define BOOST_TEST_SHIFTED_LINE
  30. #endif
  31. //____________________________________________________________________________//
  32. #if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
  33. # define BOOST_TEST_CALL_DECL __cdecl
  34. #else
  35. # define BOOST_TEST_CALL_DECL /**/
  36. #endif
  37. //____________________________________________________________________________//
  38. #if !defined(BOOST_NO_STD_LOCALE) && !defined(__MWERKS__)
  39. # define BOOST_TEST_USE_STD_LOCALE 1
  40. #endif
  41. //____________________________________________________________________________//
  42. #if BOOST_WORKAROUND(__BORLANDC__, <= 0x570) || \
  43. BOOST_WORKAROUND( __COMO__, <= 0x433 ) || \
  44. BOOST_WORKAROUND( __INTEL_COMPILER, <= 800 ) || \
  45. defined(__sgi) && _COMPILER_VERSION <= 730 || \
  46. BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) || \
  47. defined(__DECCXX) || \
  48. defined(__DMC__)
  49. # define BOOST_TEST_NO_PROTECTED_USING
  50. #endif
  51. //____________________________________________________________________________//
  52. #if defined(__GNUC__) || BOOST_WORKAROUND(BOOST_MSVC, == 1400)
  53. #define BOOST_TEST_PROTECTED_VIRTUAL virtual
  54. #else
  55. #define BOOST_TEST_PROTECTED_VIRTUAL
  56. #endif
  57. //____________________________________________________________________________//
  58. #if !defined(__BORLANDC__) && !BOOST_WORKAROUND( __SUNPRO_CC, < 0x5100 )
  59. #define BOOST_TEST_SUPPORT_TOKEN_ITERATOR 1
  60. #endif
  61. //____________________________________________________________________________//
  62. // Sun compiler does not support visibility on enums
  63. #if defined(__SUNPRO_CC)
  64. #define BOOST_TEST_ENUM_SYMBOL_VISIBLE
  65. #else
  66. #define BOOST_TEST_ENUM_SYMBOL_VISIBLE BOOST_SYMBOL_VISIBLE
  67. #endif
  68. //____________________________________________________________________________//
  69. #if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_TEST_DYN_LINK)
  70. # define BOOST_TEST_DYN_LINK
  71. #endif
  72. // in case any of the define from cmake/b2 is set
  73. #if !defined(BOOST_TEST_DYN_LINK) \
  74. && (defined(BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK) \
  75. || defined(BOOST_TEST_EXEC_MONITOR_DYN_LINK) \
  76. || defined(BOOST_PRG_EXEC_MONITOR_DYN_LINK) )
  77. # define BOOST_TEST_DYN_LINK
  78. #endif
  79. #if defined(BOOST_TEST_INCLUDED)
  80. # undef BOOST_TEST_DYN_LINK
  81. #endif
  82. #if defined(BOOST_TEST_DYN_LINK)
  83. # define BOOST_TEST_ALTERNATIVE_INIT_API
  84. # ifdef BOOST_TEST_SOURCE
  85. # define BOOST_TEST_DECL BOOST_SYMBOL_EXPORT BOOST_SYMBOL_VISIBLE
  86. # else
  87. # define BOOST_TEST_DECL BOOST_SYMBOL_IMPORT BOOST_SYMBOL_VISIBLE
  88. # endif // BOOST_TEST_SOURCE
  89. #else
  90. # define BOOST_TEST_DECL BOOST_SYMBOL_VISIBLE
  91. #endif
  92. #if !defined(BOOST_TEST_MAIN) && defined(BOOST_AUTO_TEST_MAIN)
  93. #define BOOST_TEST_MAIN BOOST_AUTO_TEST_MAIN
  94. #endif
  95. #if !defined(BOOST_TEST_MAIN) && defined(BOOST_TEST_MODULE)
  96. #define BOOST_TEST_MAIN BOOST_TEST_MODULE
  97. #endif
  98. #ifndef BOOST_PP_VARIADICS /* we can change this only if not already defined) */
  99. #ifdef __PGI
  100. #define BOOST_PP_VARIADICS 1
  101. #endif
  102. #if BOOST_CLANG
  103. #define BOOST_PP_VARIADICS 1
  104. #endif
  105. #if defined(BOOST_GCC) && (BOOST_GCC >= 4 * 10000 + 8 * 100)
  106. #define BOOST_PP_VARIADICS 1
  107. #endif
  108. #endif /* ifndef BOOST_PP_VARIADICS */
  109. //____________________________________________________________________________//
  110. // string_view support
  111. //____________________________________________________________________________//
  112. // note the code should always be compatible with compiled version of boost.test
  113. // using a pre-c++17 compiler
  114. #ifndef BOOST_NO_CXX17_HDR_STRING_VIEW
  115. #define BOOST_TEST_STRING_VIEW
  116. #endif
  117. #endif // BOOST_TEST_CONFIG_HPP_071894GER