RunCMakeTest.cmake 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. include(RunCMake)
  2. function(run_cmp0116 status warn)
  3. if(warn)
  4. set(name CMP0116-${status}-WARN)
  5. else()
  6. set(name CMP0116-${status}-NOWARN)
  7. endif()
  8. set(RunCMake_TEST_OPTIONS
  9. -DCMAKE_POLICY_WARNING_CMP0116:BOOL=${warn}
  10. )
  11. if(NOT status STREQUAL "WARN")
  12. list(APPEND RunCMake_TEST_OPTIONS
  13. -DCMAKE_POLICY_DEFAULT_CMP0116:STRING=${status}
  14. )
  15. endif()
  16. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  17. run_cmake(${name})
  18. unset(RunCMake_TEST_OPTIONS)
  19. set(RunCMake_TEST_NO_CLEAN 1)
  20. set(RunCMake-check-file check.cmake)
  21. file(TOUCH "${RunCMake_TEST_BINARY_DIR}/topdep.txt")
  22. file(TOUCH "${RunCMake_TEST_BINARY_DIR}/Subdirectory/subdep.txt")
  23. set(cmp0116_step 1)
  24. run_cmake_command(${name}-build1 ${CMAKE_COMMAND} --build . --config Debug)
  25. file(REMOVE "${RunCMake_TEST_BINARY_DIR}/topstamp.txt")
  26. file(REMOVE "${RunCMake_TEST_BINARY_DIR}/Subdirectory/substamp.txt")
  27. execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1.25)
  28. file(TOUCH "${RunCMake_TEST_BINARY_DIR}/topdep.txt")
  29. file(TOUCH "${RunCMake_TEST_BINARY_DIR}/Subdirectory/subdep.txt")
  30. set(cmp0116_step 2)
  31. run_cmake_command(${name}-build2 ${CMAKE_COMMAND} --build . --config Debug)
  32. file(REMOVE "${RunCMake_TEST_BINARY_DIR}/topstamp.txt")
  33. file(REMOVE "${RunCMake_TEST_BINARY_DIR}/Subdirectory/substamp.txt")
  34. execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1.25)
  35. set(cmp0116_step 3)
  36. run_cmake_command(${name}-build3 ${CMAKE_COMMAND} --build . --config Debug)
  37. endfunction()
  38. run_cmp0116(WARN OFF)
  39. run_cmp0116(OLD OFF)
  40. run_cmp0116(NEW OFF)
  41. run_cmp0116(WARN ON)
  42. run_cmp0116(OLD ON)
  43. run_cmp0116(NEW ON)