RunCMakeTest.cmake 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. include(RunCMake)
  2. macro(run_cmake_target test subtest target)
  3. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
  4. set(RunCMake_TEST_NO_CLEAN 1)
  5. run_cmake_command(${test}-${subtest} ${CMAKE_COMMAND} --build . --target ${target} ${ARGN})
  6. unset(RunCMake_TEST_BINARY_DIR)
  7. unset(RunCMake_TEST_NO_CLEAN)
  8. endmacro()
  9. if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
  10. # Intel compiler does not reject bad flags or objects!
  11. set(RunCMake_TEST_OUTPUT_MERGE TRUE)
  12. if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
  13. set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release)
  14. endif()
  15. run_cmake(LINK_OPTIONS)
  16. run_cmake_target(LINK_OPTIONS shared LinkOptions_shared --config Release)
  17. run_cmake_target(LINK_OPTIONS mod LinkOptions_mod --config Release)
  18. run_cmake_target(LINK_OPTIONS exe LinkOptions_exe --config Release)
  19. unset(RunCMake_TEST_OPTIONS)
  20. unset(RunCMake_TEST_OUTPUT_MERGE)
  21. endif()
  22. run_cmake(bad_SHELL_usage)
  23. if(RunCMake_GENERATOR MATCHES "(Ninja|Makefile)")
  24. run_cmake(LINKER_expansion)
  25. run_cmake_target(LINKER_expansion build all)
  26. run_cmake(LINKER_SHELL_expansion)
  27. run_cmake_target(LINKER_SHELL_expansion build all)
  28. endif()