EnforceConfig.cmake.in 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # Choose a configuration with which to drive CTest tests.
  2. if(CTEST_CONFIGURATION_TYPE)
  3. set(CTestTest_CONFIG "${CTEST_CONFIGURATION_TYPE}")
  4. else()
  5. set(CTestTest_CONFIG "@CTestTest_CONFIG@")
  6. endif()
  7. # Choose a configuration that was built if none is given.
  8. if(NOT CTEST_CONFIGURATION_TYPE)
  9. set(CTEST_CMD "@CMAKE_CTEST_COMMAND@@CMAKE_EXECUTABLE_SUFFIX@")
  10. get_filename_component(CTEST_DIR "${CTEST_CMD}" PATH)
  11. get_filename_component(CTEST_EXE "${CTEST_CMD}" NAME)
  12. foreach(cfg IN ITEMS Release Debug MinSizeRel RelWithDebInfo)
  13. if(NOT CTEST_CONFIGURATION_TYPE)
  14. if(EXISTS "${CTEST_DIR}/${cfg}/${CTEST_EXE}")
  15. set(CTEST_CONFIGURATION_TYPE ${cfg})
  16. endif()
  17. endif()
  18. endforeach()
  19. if(NOT CTEST_CONFIGURATION_TYPE)
  20. if("@CMAKE_C_COMPILER_ID@;@CMAKE_C_SIMULATE_ID@;@CMAKE_C_COMPILER_FRONTEND_VARIANT@" STREQUAL "Clang;MSVC;GNU")
  21. # A valid configuration is required for this compiler in tests that do not set CMP0091 to NEW.
  22. set(CTEST_CONFIGURATION_TYPE Debug)
  23. else()
  24. set(CTEST_CONFIGURATION_TYPE NoConfig)
  25. endif()
  26. endif()
  27. message("Guessing configuration ${CTEST_CONFIGURATION_TYPE}")
  28. endif()
  29. # Isolate tests from user configuration in the environment.
  30. unset(ENV{CMAKE_GENERATOR})
  31. unset(ENV{CMAKE_GENERATOR_INSTANCE})
  32. unset(ENV{CMAKE_GENERATOR_PLATFORM})
  33. unset(ENV{CMAKE_GENERATOR_TOOLSET})
  34. unset(ENV{CMAKE_EXPORT_COMPILE_COMMANDS})
  35. # Verify that our module implementations do not recurse too much.
  36. set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 100)
  37. @TEST_HOME_ENV_CODE@
  38. @TEST_WARN_VS_CODE@