CMake/Tests/EnforceConfig.cmake.in
Brad King 33856b1d62 Add CMAKE_POLICY_VERSION_MINIMUM environment variable
Extend commit 1a35351125 (Add CMAKE_POLICY_VERSION_MINIMUM to help
configure outdated projects, 2025-02-13, v4.0.0-rc1~12^2) with an
environment variable to initialize the cache entry.  That will make it
easier to use when `cmake` is invoked under layers of scripting.

Closes: #26715
2025-02-20 16:55:53 -05:00

47 lines
1.6 KiB
CMake

# Choose a configuration with which to drive CTest tests.
if(CTEST_CONFIGURATION_TYPE)
set(CTestTest_CONFIG "${CTEST_CONFIGURATION_TYPE}")
else()
set(CTestTest_CONFIG "@CTestTest_CONFIG@")
endif()
# Choose a configuration that was built if none is given.
if(NOT CTEST_CONFIGURATION_TYPE)
set(CTEST_CMD "@CMAKE_CTEST_COMMAND@@CMAKE_EXECUTABLE_SUFFIX@")
get_filename_component(CTEST_DIR "${CTEST_CMD}" PATH)
get_filename_component(CTEST_EXE "${CTEST_CMD}" NAME)
foreach(cfg IN ITEMS Release Debug MinSizeRel RelWithDebInfo)
if(NOT CTEST_CONFIGURATION_TYPE)
if(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
set(CTEST_CONFIGURATION_TYPE ${cfg})
endif()
endif()
endforeach()
if(NOT CTEST_CONFIGURATION_TYPE)
if("@CMAKE_C_COMPILER_ID@;@CMAKE_C_SIMULATE_ID@;@CMAKE_C_COMPILER_FRONTEND_VARIANT@" STREQUAL "Clang;MSVC;GNU")
# A valid configuration is required for this compiler in tests that do not set CMP0091 to NEW.
set(CTEST_CONFIGURATION_TYPE Debug)
else()
set(CTEST_CONFIGURATION_TYPE NoConfig)
endif()
endif()
message("Guessing configuration ${CTEST_CONFIGURATION_TYPE}")
endif()
# Isolate tests from user configuration in the environment.
unset(ENV{CLICOLOR})
unset(ENV{CLICOLOR_FORCE})
unset(ENV{CMAKE_GENERATOR})
unset(ENV{CMAKE_GENERATOR_INSTANCE})
unset(ENV{CMAKE_GENERATOR_PLATFORM})
unset(ENV{CMAKE_GENERATOR_TOOLSET})
unset(ENV{CMAKE_EXPORT_COMPILE_COMMANDS})
unset(ENV{CMAKE_POLICY_VERSION_MINIMUM})
# Verify that our module implementations do not recurse too much.
set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 100)
@TEST_CONFIG_ENV_CODE@
@TEST_HOME_ENV_CODE@
@TEST_WARN_VS_CODE@