123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- #ifndef TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
- #define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
- #include "catch_platform.h"
- #ifdef __cplusplus
- # if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
- # define CATCH_CPP14_OR_GREATER
- # endif
- # if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
- # define CATCH_CPP17_OR_GREATER
- # endif
- #endif
- #if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__)
- # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" )
- # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" )
- # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__)
- #endif
- #if defined(__clang__)
- # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" )
- # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" )
- # if !defined(__ibmxl__) && !defined(__CUDACC__)
- # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__)
- # endif
- # define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
- _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \
- _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"")
- # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
- _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
- # define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \
- _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" )
- # define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
- _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" )
- # define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
- _Pragma( "clang diagnostic ignored \"-Wunused-template\"" )
- #endif
- #if !defined(CATCH_PLATFORM_WINDOWS)
- #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS
- #endif
- #if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__)
- #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
- #endif
- #ifdef __OS400__
- # define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
- # define CATCH_CONFIG_COLOUR_NONE
- #endif
- #if defined(__ANDROID__)
- # define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING
- # define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE
- #endif
- #if defined(__MINGW32__)
- # define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH
- #endif
- #if defined(__ORBIS__)
- # define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE
- #endif
- #ifdef __CYGWIN__
- # define _BSD_SOURCE
- # if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \
- && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF))
- # define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING
- # endif
- #endif
- #if defined(_MSC_VER)
- # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) )
- # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) )
- # if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
- # define CATCH_CONFIG_COLOUR_NONE
- # else
- # define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
- # endif
- # if !defined(__clang__)
- # if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL)
- # define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
- # endif
- # endif
- #endif
- #if defined(_REENTRANT) || defined(_MSC_VER)
- # define CATCH_INTERNAL_CONFIG_USE_ASYNC
- #endif
- #if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND)
- # define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED
- #endif
- #ifdef __DJGPP__
- # define CATCH_INTERNAL_CONFIG_NO_WCHAR
- #endif
- #if defined(__BORLANDC__)
- #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN
- #endif
- #if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L )
- #define CATCH_INTERNAL_CONFIG_COUNTER
- #endif
- #if defined(UNDER_RTSS) || defined(RTX64_BUILD)
- #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH
- #define CATCH_INTERNAL_CONFIG_NO_ASYNC
- #define CATCH_CONFIG_COLOUR_NONE
- #endif
- #if !defined(_GLIBCXX_USE_C99_MATH_TR1)
- #define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER
- #endif
- #if defined(__has_include)
-
- #if __has_include(<string_view>) && defined(CATCH_CPP17_OR_GREATER)
- # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW
- #endif
-
- # if __has_include(<optional>) && defined(CATCH_CPP17_OR_GREATER)
- # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL
- # endif
-
- # if __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER)
- # include <cstddef>
- # if __cpp_lib_byte > 0
- # define CATCH_INTERNAL_CONFIG_CPP17_BYTE
- # endif
- # endif
-
- # if __has_include(<variant>) && defined(CATCH_CPP17_OR_GREATER)
- # if defined(__clang__) && (__clang_major__ < 8)
-
-
- # include <ciso646>
- # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9)
- # define CATCH_CONFIG_NO_CPP17_VARIANT
- # else
- # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT
- # endif
- # else
- # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT
- # endif
- # endif
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER)
- # define CATCH_CONFIG_COUNTER
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH)
- # define CATCH_CONFIG_WINDOWS_SEH
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS)
- # define CATCH_CONFIG_POSIX_SIGNALS
- #endif
- #if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR)
- # define CATCH_CONFIG_WCHAR
- #endif
- #if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING)
- # define CATCH_CONFIG_CPP11_TO_STRING
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL)
- # define CATCH_CONFIG_CPP17_OPTIONAL
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW)
- # define CATCH_CONFIG_CPP17_STRING_VIEW
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT)
- # define CATCH_CONFIG_CPP17_VARIANT
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE)
- # define CATCH_CONFIG_CPP17_BYTE
- #endif
- #if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)
- # define CATCH_INTERNAL_CONFIG_NEW_CAPTURE
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE)
- # define CATCH_CONFIG_NEW_CAPTURE
- #endif
- #if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
- # define CATCH_CONFIG_DISABLE_EXCEPTIONS
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN)
- # define CATCH_CONFIG_POLYFILL_ISNAN
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_INTERNAL_CONFIG_NO_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC)
- # define CATCH_CONFIG_USE_ASYNC
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE)
- # define CATCH_CONFIG_ANDROID_LOGWRITE
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER)
- # define CATCH_CONFIG_GLOBAL_NEXTAFTER
- #endif
- #if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION)
- # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION
- #endif
- #if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION)
- # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
- #endif
- #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
- # define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
- #endif
- #if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS)
- # define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
- #endif
- #if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS)
- # define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS
- #endif
- #if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS)
- # define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS
- #endif
- #if !defined(CATCH_INTERNAL_IGNORE_BUT_WARN)
- # define CATCH_INTERNAL_IGNORE_BUT_WARN(...)
- #endif
- #if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10)
- # undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
- #elif defined(__clang__) && (__clang_major__ < 5)
- # undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
- #endif
- #if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS)
- # define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
- #endif
- #if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
- #define CATCH_TRY if ((true))
- #define CATCH_CATCH_ALL if ((false))
- #define CATCH_CATCH_ANON(type) if ((false))
- #else
- #define CATCH_TRY try
- #define CATCH_CATCH_ALL catch (...)
- #define CATCH_CATCH_ANON(type) catch (type)
- #endif
- #if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR)
- #define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
- #endif
- #endif
|