RunCMakeTest.cmake 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. include(RunCMake)
  2. run_cmake_command(E_tar-bad-opt1 ${CMAKE_COMMAND} -E tar cvf bad.tar --bad)
  3. run_cmake_command(E_tar-bad-mtime1 ${CMAKE_COMMAND} -E tar cvf bad.tar --mtime=bad .)
  4. run_cmake_command(E_tar-bad-from1 ${CMAKE_COMMAND} -E tar cvf bad.tar --files-from=bad)
  5. run_cmake_command(E_tar-bad-from2 ${CMAKE_COMMAND} -E tar cvf bad.tar --files-from=.)
  6. run_cmake_command(E_tar-bad-from3 ${CMAKE_COMMAND} -E tar cvf bad.tar --files-from=${CMAKE_CURRENT_LIST_DIR}/E_tar-bad-from3.txt)
  7. run_cmake_command(E_tar-bad-from4 ${CMAKE_COMMAND} -E tar cvf bad.tar --files-from=${CMAKE_CURRENT_LIST_DIR}/E_tar-bad-from4.txt)
  8. run_cmake_command(E_tar-bad-from5 ${CMAKE_COMMAND} -E tar cvf bad.tar --files-from=${CMAKE_CURRENT_LIST_DIR}/E_tar-bad-from5.txt)
  9. run_cmake_command(E_tar-end-opt1 ${CMAKE_COMMAND} -E tar cvf bad.tar -- --bad)
  10. run_cmake_command(E_tar-end-opt2 ${CMAKE_COMMAND} -E tar cvf bad.tar --)
  11. run_cmake_command(E_tar-mtime ${CMAKE_COMMAND} -E tar cvf bad.tar "--mtime=1970-01-01 00:00:00 UTC")
  12. run_cmake_command(build-no-cache
  13. ${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR})
  14. run_cmake_command(build-no-generator
  15. ${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR}/cache-no-generator)
  16. run_cmake_command(build-bad-generator
  17. ${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR}/cache-bad-generator)
  18. if(RunCMake_GENERATOR STREQUAL "Ninja")
  19. # Use a single build tree for a few tests without cleaning.
  20. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Build-build)
  21. set(RunCMake_TEST_NO_CLEAN 1)
  22. file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
  23. file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
  24. set(RunCMake_TEST_OPTIONS -DCMAKE_VERBOSE_MAKEFILE=1)
  25. run_cmake(Build)
  26. unset(RunCMake_TEST_OPTIONS)
  27. run_cmake_command(Build-ninja-v ${CMAKE_COMMAND} --build .)
  28. unset(RunCMake_TEST_BINARY_DIR)
  29. unset(RunCMake_TEST_NO_CLEAN)
  30. endif()
  31. if(UNIX)
  32. run_cmake_command(E_create_symlink-missing-dir
  33. ${CMAKE_COMMAND} -E create_symlink T missing-dir/L
  34. )
  35. # Use a single build tree for a few tests without cleaning.
  36. set(RunCMake_TEST_BINARY_DIR
  37. ${RunCMake_BINARY_DIR}/E_create_symlink-broken-build)
  38. set(RunCMake_TEST_NO_CLEAN 1)
  39. file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
  40. run_cmake_command(E_create_symlink-broken-create
  41. ${CMAKE_COMMAND} -E create_symlink T L
  42. )
  43. run_cmake_command(E_create_symlink-broken-replace
  44. ${CMAKE_COMMAND} -E create_symlink . L
  45. )
  46. unset(RunCMake_TEST_BINARY_DIR)
  47. unset(RunCMake_TEST_NO_CLEAN)
  48. run_cmake_command(E_create_symlink-no-replace-dir
  49. ${CMAKE_COMMAND} -E create_symlink T .
  50. )
  51. endif()
  52. run_cmake_command(E_env-no-command0 ${CMAKE_COMMAND} -E env)
  53. run_cmake_command(E_env-no-command1 ${CMAKE_COMMAND} -E env TEST_ENV=1)
  54. run_cmake_command(E_env-bad-arg1 ${CMAKE_COMMAND} -E env -bad-arg1)
  55. run_cmake_command(E_env-set ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-set.cmake)
  56. run_cmake_command(E_env-unset ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -E env --unset=TEST_ENV ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-unset.cmake)
  57. set(RunCMake_DEFAULT_stderr ".")
  58. run_cmake_command(E_sleep-no-args ${CMAKE_COMMAND} -E sleep)
  59. unset(RunCMake_DEFAULT_stderr)
  60. run_cmake_command(E_sleep-bad-arg1 ${CMAKE_COMMAND} -E sleep x)
  61. run_cmake_command(E_sleep-bad-arg2 ${CMAKE_COMMAND} -E sleep 1 -1)
  62. run_cmake_command(E_sleep-one-tenth ${CMAKE_COMMAND} -E sleep 0.1)
  63. run_cmake_command(P_directory ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR})
  64. set(RunCMake_TEST_OPTIONS
  65. "-DFOO=-DBAR:BOOL=BAZ")
  66. run_cmake(D_nested_cache)
  67. set(RunCMake_TEST_OPTIONS
  68. "-DFOO:STRING=-DBAR:BOOL=BAZ")
  69. run_cmake(D_typed_nested_cache)
  70. function(run_cmake_depends)
  71. set(RunCMake_TEST_SOURCE_DIR "${RunCMake_SOURCE_DIR}/cmake_depends")
  72. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/cmake_depends-build")
  73. set(RunCMake_TEST_NO_CLEAN 1)
  74. file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
  75. file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
  76. file(WRITE "${RunCMake_TEST_BINARY_DIR}/CMakeFiles/DepTarget.dir/DependInfo.cmake" "
  77. set(CMAKE_DEPENDS_LANGUAGES \"C\")
  78. set(CMAKE_DEPENDS_CHECK_C
  79. \"${RunCMake_TEST_SOURCE_DIR}/test.c\"
  80. \"${RunCMake_TEST_BINARY_DIR}/CMakeFiles/DepTarget.dir/test.c.o\"
  81. )
  82. ")
  83. file(WRITE "${RunCMake_TEST_BINARY_DIR}/CMakeFiles/CMakeDirectoryInformation.cmake" "
  84. set(CMAKE_RELATIVE_PATH_TOP_SOURCE \"${RunCMake_TEST_SOURCE_DIR}\")
  85. set(CMAKE_RELATIVE_PATH_TOP_BINARY \"${RunCMake_TEST_BINARY_DIR}\")
  86. ")
  87. run_cmake_command(cmake_depends ${CMAKE_COMMAND} -E cmake_depends
  88. "Unix Makefiles"
  89. ${RunCMake_TEST_SOURCE_DIR} ${RunCMake_TEST_SOURCE_DIR}
  90. ${RunCMake_TEST_BINARY_DIR} ${RunCMake_TEST_BINARY_DIR}
  91. ${RunCMake_TEST_BINARY_DIR}/CMakeFiles/DepTarget.dir/DependInfo.cmake
  92. )
  93. endfunction()
  94. run_cmake_depends()