1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00
Files
CMake/Tests/EnforceConfig.cmake.in
Ben Boeckel 7191d72acd Tests/EnforceConfig: clear the CMAKE_BUILD_TYPE environment variable
Some tests want to test the config-less build type (at least
`Tests/RunCMake/add_custom_command@WorkingDirectory`).
2025-09-29 11:11:06 -04:00

50 lines
1.7 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{NO_COLOR})
unset(ENV{CLICOLOR})
unset(ENV{CLICOLOR_FORCE})
unset(ENV{CMAKE_BUILD_TYPE})
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@
@TEST_INSTRUMENTATION_ENV_CODE@