
//              Copyright Catch2 Authors
// Distributed under the Boost Software License, Version 1.0.
//   (See accompanying file LICENSE.txt or copy at
//        https://www.boost.org/LICENSE_1_0.txt)

// SPDX-License-Identifier: BSL-1.0

/**\file
 * **AUTOGENERATED FROM CMAKE CONFIGURATION**
 *
 * Contains materialized compile-time configuration provided to Catch2's
 * CMake configuration. All compile-time configuration options need to
 * be here, and also documented in `docs/configuration.md`.
 */

#ifndef CATCH_USER_CONFIG_HPP_INCLUDED
#define CATCH_USER_CONFIG_HPP_INCLUDED


// ------
// Overridable compilation flags,
// these can have 3 "states": Force Yes, Force No, Use Default.
// Setting both Force Yes and Force No is an error
// ------

#cmakedefine CATCH_CONFIG_ANDROID_LOGWRITE
#cmakedefine CATCH_CONFIG_NO_ANDROID_LOGWRITE

#if defined( CATCH_CONFIG_ANDROID_LOGWRITE ) && \
    defined( CATCH_CONFIG_NO_ANDROID_LOGWRITE )
#    error Cannot force ANDROID_LOGWRITE to both ON and OFF
#endif

#cmakedefine CATCH_CONFIG_COLOUR_WIN32
#cmakedefine CATCH_CONFIG_NO_COLOUR_WIN32

#if defined( CATCH_CONFIG_COLOUR_WIN32 ) && \
    defined( CATCH_CONFIG_NO_COLOUR_WIN32 )
#    error Cannot force COLOUR_WIN32 to be ON and OFF
#endif

#cmakedefine CATCH_CONFIG_COUNTER
#cmakedefine CATCH_CONFIG_NO_COUNTER

#if defined( CATCH_CONFIG_COUNTER ) && \
    defined( CATCH_CONFIG_NO_COUNTER )
#    error Cannot force COUNTER to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP11_TO_STRING
#cmakedefine CATCH_CONFIG_NO_CPP11_TO_STRING

#if defined( CATCH_CONFIG_CPP11_TO_STRING ) && \
    defined( CATCH_CONFIG_NO_CPP11_TO_STRING )
#    error Cannot force CPP11_TO_STRING to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP17_BYTE
#cmakedefine CATCH_CONFIG_NO_CPP17_BYTE

#if defined( CATCH_CONFIG_CPP17_BYTE ) && \
    defined( CATCH_CONFIG_NO_CPP17_BYTE )
#    error Cannot force CPP17_BYTE to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP17_OPTIONAL
#cmakedefine CATCH_CONFIG_NO_CPP17_OPTIONAL

#if defined( CATCH_CONFIG_CPP17_OPTIONAL ) && \
    defined( CATCH_CONFIG_NO_CPP17_OPTIONAL )
#    error Cannot force CPP17_OPTIONAL to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP17_STRING_VIEW
#cmakedefine CATCH_CONFIG_NO_CPP17_STRING_VIEW

#if defined( CATCH_CONFIG_CPP17_STRING_VIEW ) && \
    defined( CATCH_CONFIG_NO_CPP17_STRING_VIEW )
#    error Cannot force CPP17_STRING_VIEW to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
#cmakedefine CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS

#if defined( CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS ) && \
    defined( CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS )
#    error Cannot force CPP17_UNCAUGHT_EXCEPTIONS to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_CPP17_VARIANT
#cmakedefine CATCH_CONFIG_NO_CPP17_VARIANT

#if defined( CATCH_CONFIG_CPP17_VARIANT ) && \
    defined( CATCH_CONFIG_NO_CPP17_VARIANT )
#    error Cannot force CPP17_VARIANT to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_GLOBAL_NEXTAFTER
#cmakedefine CATCH_CONFIG_NO_GLOBAL_NEXTAFTER

#if defined( CATCH_CONFIG_GLOBAL_NEXTAFTER ) && \
    defined( CATCH_CONFIG_NO_GLOBAL_NEXTAFTER )
#    error Cannot force GLOBAL_NEXTAFTER to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_POSIX_SIGNALS
#cmakedefine CATCH_CONFIG_NO_POSIX_SIGNALS

#if defined( CATCH_CONFIG_POSIX_SIGNALS ) && \
    defined( CATCH_CONFIG_NO_POSIX_SIGNALS )
#    error Cannot force POSIX_SIGNALS to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_GETENV
#cmakedefine CATCH_CONFIG_NO_GETENV

#if defined( CATCH_CONFIG_GETENV ) && \
    defined( CATCH_CONFIG_NO_GETENV )
#    error Cannot force GETENV to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_USE_ASYNC
#cmakedefine CATCH_CONFIG_NO_USE_ASYNC

#if defined( CATCH_CONFIG_USE_ASYNC ) && \
    defined( CATCH_CONFIG_NO_USE_ASYNC )
#    error Cannot force USE_ASYNC to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_WCHAR
#cmakedefine CATCH_CONFIG_NO_WCHAR

#if defined( CATCH_CONFIG_WCHAR ) && \
    defined( CATCH_CONFIG_NO_WCHAR )
#    error Cannot force WCHAR to both ON and OFF
#endif



#cmakedefine CATCH_CONFIG_WINDOWS_SEH
#cmakedefine CATCH_CONFIG_NO_WINDOWS_SEH

#if defined( CATCH_CONFIG_WINDOWS_SEH ) && \
    defined( CATCH_CONFIG_NO_WINDOWS_SEH )
#    error Cannot force WINDOWS_SEH to both ON and OFF
#endif


#cmakedefine CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT
#cmakedefine CATCH_CONFIG_NO_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT

#if defined( CATCH_CONFIG_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT ) && \
    defined( CATCH_CONFIG_NO_EXPERIMENTAL_STATIC_ANALYSIS_SUPPORT )
#    error Cannot force STATIC_ANALYSIS_SUPPORT to both ON and OFF
#endif


#cmakedefine CATCH_CONFIG_USE_BUILTIN_CONSTANT_P
#cmakedefine CATCH_CONFIG_NO_USE_BUILTIN_CONSTANT_P

#if defined( CATCH_CONFIG_USE_BUILTIN_CONSTANT_P ) && \
    defined( CATCH_CONFIG_NO_USE_BUILTIN_CONSTANT_P )
#    error Cannot force USE_BUILTIN_CONSTANT_P to both ON and OFF
#endif


#cmakedefine CATCH_CONFIG_DEPRECATION_ANNOTATIONS
#cmakedefine CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS

#if defined( CATCH_CONFIG_DEPRECATION_ANNOTATIONS ) && \
    defined( CATCH_CONFIG_NO_DEPRECATION_ANNOTATIONS )
#    error Cannot force DEPRECATION_ANNOTATIONS to both ON and OFF
#endif


#cmakedefine CATCH_CONFIG_THREAD_SAFE_ASSERTIONS
#cmakedefine CATCH_CONFIG_NO_THREAD_SAFE_ASSERTIONS

#if defined( CATCH_CONFIG_THREAD_SAFE_ASSERTIONS ) && \
    defined( CATCH_CONFIG_NO_THREAD_SAFE_ASSERTIONS )
#    error Cannot force THREAD_SAFE_ASSERTIONS to both ON and OFF
#endif


// ------
// Simple toggle defines
// their value is never used and they cannot be overridden
// ------


#cmakedefine CATCH_CONFIG_BAZEL_SUPPORT
#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS
#cmakedefine CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER
#cmakedefine CATCH_CONFIG_DISABLE
#cmakedefine CATCH_CONFIG_DISABLE_STRINGIFICATION
#cmakedefine CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS
#cmakedefine CATCH_CONFIG_ENABLE_OPTIONAL_STRINGMAKER
#cmakedefine CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER
#cmakedefine CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER
#cmakedefine CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER
#cmakedefine CATCH_CONFIG_EXPERIMENTAL_REDIRECT
#cmakedefine CATCH_CONFIG_FAST_COMPILE
#cmakedefine CATCH_CONFIG_NOSTDOUT
#cmakedefine CATCH_CONFIG_PREFIX_ALL
#cmakedefine CATCH_CONFIG_PREFIX_MESSAGES
#cmakedefine CATCH_CONFIG_WINDOWS_CRTDBG

#cmakedefine CATCH_CONFIG_SHARED_LIBRARY


// ------
// "Variable" defines, these have actual values
// ------

#define CATCH_CONFIG_DEFAULT_REPORTER "@CATCH_CONFIG_DEFAULT_REPORTER@"
#define CATCH_CONFIG_CONSOLE_WIDTH @CATCH_CONFIG_CONSOLE_WIDTH@

// Unlike the macros above, CATCH_CONFIG_FALLBACK_STRINGIFIER does not
// have a good default value, so we cannot always define it, and cannot
// even expose it as a variable in CMake. The users will have to find
// out about it from docs and set it only if they use it.
#cmakedefine CATCH_CONFIG_FALLBACK_STRINGIFIER @CATCH_CONFIG_FALLBACK_STRINGIFIER@

#endif // CATCH_USER_CONFIG_HPP_INCLUDED
