GetPrerequisitesTest.cmake.in 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. # Test of the functions in the CMake Modules file:
  2. #
  3. include(GetPrerequisites)
  4. set(CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@")
  5. set(CMAKE_CONFIGURATION_TYPES "@CMAKE_CONFIGURATION_TYPES@")
  6. set(CMAKE_EXECUTABLE_SUFFIX "@CMAKE_EXECUTABLE_SUFFIX@")
  7. message(STATUS "=============================================================================")
  8. message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
  9. message(STATUS "")
  10. message(STATUS "CMAKE_BUILD_TYPE='${CMAKE_BUILD_TYPE}'")
  11. message(STATUS "CMAKE_CONFIGURATION_TYPES='${CMAKE_CONFIGURATION_TYPES}'")
  12. message(STATUS "CMAKE_EXECUTABLE_SUFFIX='${CMAKE_EXECUTABLE_SUFFIX}'")
  13. message(STATUS "CTEST_CONFIGURATION_TYPE='${CTEST_CONFIGURATION_TYPE}'")
  14. message(STATUS "")
  15. function(stresstest_list_prerequisites file)
  16. message(STATUS "=============================================================================")
  17. message(STATUS "stresstest_list_prerequisites file='${file}'")
  18. message(STATUS "")
  19. get_filename_component(file_full "${file}" ABSOLUTE)
  20. message(STATUS "list_prerequisites '${file_full}' 0 0 0")
  21. list_prerequisites("${file_full}" 0 0 0)
  22. message(STATUS "")
  23. message(STATUS "list_prerequisites '${file_full}' 0 0 1")
  24. list_prerequisites("${file_full}" 0 0 1)
  25. message(STATUS "")
  26. message(STATUS "list_prerequisites '${file_full}' 0 1 0")
  27. list_prerequisites("${file_full}" 0 1 0)
  28. message(STATUS "")
  29. message(STATUS "list_prerequisites '${file_full}' 0 1 1")
  30. list_prerequisites("${file_full}" 0 1 1)
  31. message(STATUS "")
  32. message(STATUS "list_prerequisites '${file_full}' 1 0 0")
  33. list_prerequisites("${file_full}" 1 0 0)
  34. message(STATUS "")
  35. message(STATUS "list_prerequisites '${file_full}' 1 0 1")
  36. list_prerequisites("${file_full}" 1 0 1)
  37. message(STATUS "")
  38. message(STATUS "list_prerequisites '${file_full}' 1 1 0")
  39. list_prerequisites("${file_full}" 1 1 0)
  40. message(STATUS "")
  41. message(STATUS "list_prerequisites '${file_full}' 1 1 1")
  42. list_prerequisites("${file_full}" 1 1 1)
  43. message(STATUS "")
  44. message(STATUS "=============================================================================")
  45. message(STATUS "")
  46. endfunction(stresstest_list_prerequisites)
  47. function(test_cmake_executables)
  48. message(STATUS "=============================================================================")
  49. message(STATUS "Loop over all executable files in the same directory with CMake")
  50. message(STATUS "")
  51. get_filename_component(cmake_bin_dir "${CMAKE_COMMAND}" PATH)
  52. list_prerequisites_by_glob(GLOB "${cmake_bin_dir}/*" 0 0 1)
  53. endfunction(test_cmake_executables)
  54. message(STATUS "=============================================================================")
  55. message(STATUS "Simplest test - list all the direct prerequisites of CMake itself")
  56. message(STATUS "")
  57. list_prerequisites("${CMAKE_COMMAND}" 0 0 1)
  58. message(STATUS "")
  59. # Leave the code for these tests in here, but turn them off by default... they
  60. # take longer than they're worth during development...
  61. #
  62. set(do_testdefaults 0)
  63. if(do_testdefaults)
  64. message(STATUS "=============================================================================")
  65. message(STATUS "Test default argument values to list_prerequisites function...")
  66. message(STATUS "")
  67. list_prerequisites("${CMAKE_COMMAND}")
  68. message(STATUS "")
  69. endif(do_testdefaults)
  70. set(do_stresstest 0)
  71. if(do_stresstest)
  72. message(STATUS "=============================================================================")
  73. message(STATUS "stresstest_list_prerequisites with CMake itself...")
  74. message(STATUS "")
  75. stresstest_list_prerequisites("${CMAKE_COMMAND}")
  76. message(STATUS "")
  77. endif(do_stresstest)
  78. test_cmake_executables()
  79. message(STATUS "=============================================================================")
  80. message(STATUS "Test overriding 'gp_tool' with bogus value")
  81. message(STATUS "")
  82. set(gp_tool "bogus")
  83. list_prerequisites("${CMAKE_COMMAND}" 0 0 0)
  84. set(gp_tool)
  85. message(STATUS "")
  86. message(STATUS "=============================================================================")
  87. message(STATUS "Test overriding 'gp_tool' with value unlikely to be found")
  88. message(STATUS "")
  89. if(WIN32 OR APPLE)
  90. set(gp_tool "ldd")
  91. else(WIN32 OR APPLE)
  92. set(gp_tool "otool")
  93. endif(WIN32 OR APPLE)
  94. set(gp_cmd "gp_cmd-NOTFOUND")
  95. list_prerequisites("${CMAKE_COMMAND}" 0 0 0)
  96. set(gp_cmd)
  97. set(gp_tool)
  98. message(STATUS "")
  99. message(STATUS "=============================================================================")
  100. message(STATUS "All variables: (Make sure functions/macros are not leaving stuff around...")
  101. message(STATUS " Only variables predefined by CMake and defined in this")
  102. message(STATUS " test script file should be listed here...)")
  103. message(STATUS "")
  104. get_cmake_property(vs VARIABLES)
  105. foreach(v ${vs})
  106. message(STATUS "${v}='${${v}}'")
  107. endforeach(v)
  108. message(STATUS "")
  109. message(STATUS "=============================================================================")
  110. message(STATUS "End of test")
  111. message(STATUS "")