CMakeLists.txt 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. cmake_minimum_required(VERSION 3.10)
  2. project(CommandLineTest)
  3. get_filename_component(CMAKE_BIN_DIR ${CMAKE_COMMAND} PATH)
  4. macro(EXEC_CMAKE_COMMAND)
  5. execute_process(COMMAND "${CMAKE_COMMAND}" ${ARGN} RESULT_VARIABLE RET)
  6. if(${RET})
  7. message(SEND_ERROR "CMake command failed with arguments \"${ARGN}\"")
  8. endif()
  9. endmacro()
  10. EXEC_CMAKE_COMMAND(-E chdir "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_COMMAND}" -E echo "Hello World")
  11. EXEC_CMAKE_COMMAND(-E time "${CMAKE_COMMAND} -N -L ${CommandLineTest_SOURCE_DIR}")
  12. EXEC_CMAKE_COMMAND(-E time "${CMAKE_COMMAND} -N -LA ${CommandLineTest_SOURCE_DIR}")
  13. EXEC_CMAKE_COMMAND(-E time "${CMAKE_COMMAND} -N -LH ${CommandLineTest_SOURCE_DIR}")
  14. EXEC_CMAKE_COMMAND(-E time "${CMAKE_COMMAND} -N -LAH ${CommandLineTest_SOURCE_DIR}")
  15. EXEC_CMAKE_COMMAND(--help)
  16. EXEC_CMAKE_COMMAND(--help-command-list)
  17. EXEC_CMAKE_COMMAND(--help add_executable)
  18. EXEC_CMAKE_COMMAND(--help-command add_executable)
  19. EXEC_CMAKE_COMMAND(--help-full "${CMAKE_CURRENT_BINARY_DIR}/cmake.txt")
  20. EXEC_CMAKE_COMMAND(--help-man "${CMAKE_CURRENT_BINARY_DIR}/cmake.man")
  21. EXEC_CMAKE_COMMAND(--help-html "${CMAKE_CURRENT_BINARY_DIR}/cmake.html")
  22. EXEC_CMAKE_COMMAND(--copyright "${CMAKE_CURRENT_BINARY_DIR}/Copyright.txt")
  23. EXEC_CMAKE_COMMAND(--version "${CMAKE_CURRENT_BINARY_DIR}/version.txt")
  24. add_executable(CommandLineTest CommandLineTest.cxx)
  25. get_filename_component(CMAKE_COMMAND_PATH "${CMAKE_COMMAND}" PATH)
  26. set(CTEST_COMMAND "${CMAKE_COMMAND_PATH}/ctest")
  27. macro(EXEC_CTEST_COMMAND)
  28. execute_process(COMMAND "${CTEST_COMMAND}" ${ARGN} RESULT_VARIABLE RET)
  29. if(${RET})
  30. message(SEND_ERROR "CTest command failed with arguments \"${CMAKE_ARGS}\"")
  31. endif()
  32. endmacro()
  33. macro(EXEC_CTEST_COMMAND_WITH_DIR DIR)
  34. execute_process(COMMAND "${CTEST_COMMAND}" ${ARGN} WORKING_DIRECTORY "${DIR}" RESULT_VARIABLE RET)
  35. if(${RET})
  36. message(SEND_ERROR "CTest command failed with arguments \"${CMAKE_ARGS}\"")
  37. endif()
  38. endmacro()
  39. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -N)
  40. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -R complex -N)
  41. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -E Simple -N)
  42. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -E Simple -N)
  43. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -N -I -10)
  44. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -N -I 10-)
  45. EXEC_CTEST_COMMAND_WITH_DIR("${CMAKE_CURRENT_BINARY_DIR}/../.." -N -I 3,4)
  46. EXEC_CTEST_COMMAND(--help)
  47. EXEC_CTEST_COMMAND(--copyright)
  48. EXEC_CTEST_COMMAND(--help-full "${CMAKE_CURRENT_BINARY_DIR}/ctest.txt")
  49. EXEC_CTEST_COMMAND(--help-man "${CMAKE_CURRENT_BINARY_DIR}/ctest.man")
  50. EXEC_CTEST_COMMAND(--help-html "${CMAKE_CURRENT_BINARY_DIR}/ctest.html")
  51. EXEC_CTEST_COMMAND(--version)
  52. if(THIS_SHOULD_BE_SET)
  53. message(STATUS "***************************")
  54. message(STATUS "PreLoad.cmake works fine.")
  55. message(STATUS "***************************")
  56. else()
  57. message("***************************")
  58. message(FATAL_ERROR "PreLoad.cmake does not work.")
  59. endif()
  60. if(DEFINED ENV{TEST_ENVIRONMENT_VARIABLE_NOTSET})
  61. message(SEND_ERROR "Environment variable definition test broken!")
  62. endif()
  63. set(ENV{TEST_ENVIRONMENT_VARIABLE} "Environment variable set")
  64. if("$ENV{TEST_ENVIRONMENT_VARIABLE}" STREQUAL "Environment variable set")
  65. message(STATUS "Environment variable set to: $ENV{TEST_ENVIRONMENT_VARIABLE}")
  66. if(NOT DEFINED ENV{TEST_ENVIRONMENT_VARIABLE})
  67. message(SEND_ERROR "Environment variable definition test failed!")
  68. endif()
  69. else()
  70. message(SEND_ERROR "Environment variable setting is broken")
  71. endif()