| # Test of the functions in the CMake Modules file: |
| # |
| include(GetPrerequisites) |
| |
| set(CMAKE_EXECUTABLE_SUFFIX "@CMAKE_EXECUTABLE_SUFFIX@") |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)") |
| message(STATUS "") |
| message(STATUS "Configuration '${Configuration}'") |
| message(STATUS "CMAKE_COMMAND='${CMAKE_COMMAND}'") |
| message(STATUS "CMAKE_EXECUTABLE_SUFFIX='${CMAKE_EXECUTABLE_SUFFIX}'") |
| message(STATUS "") |
| |
| |
| function(stresstest_list_prerequisites file) |
| message(STATUS "=============================================================================") |
| message(STATUS "stresstest_list_prerequisites file='${file}'") |
| message(STATUS "") |
| |
| get_filename_component(file_full "${file}" ABSOLUTE) |
| |
| message(STATUS "list_prerequisites '${file_full}' 0 0 0") |
| list_prerequisites("${file_full}" 0 0 0) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 0 0 1") |
| list_prerequisites("${file_full}" 0 0 1) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 0 1 0") |
| list_prerequisites("${file_full}" 0 1 0) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 0 1 1") |
| list_prerequisites("${file_full}" 0 1 1) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 1 0 0") |
| list_prerequisites("${file_full}" 1 0 0) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 1 0 1") |
| list_prerequisites("${file_full}" 1 0 1) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 1 1 0") |
| list_prerequisites("${file_full}" 1 1 0) |
| message(STATUS "") |
| |
| message(STATUS "list_prerequisites '${file_full}' 1 1 1") |
| list_prerequisites("${file_full}" 1 1 1) |
| message(STATUS "") |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "") |
| endfunction() |
| |
| |
| function(test_cmake_executables) |
| message(STATUS "=============================================================================") |
| message(STATUS "Loop over all executable files in the same directory with CMake") |
| message(STATUS "") |
| |
| get_filename_component(cmake_bin_dir "${CMAKE_COMMAND}" PATH) |
| list_prerequisites_by_glob(GLOB "${cmake_bin_dir}/*" 0 0 1) |
| endfunction() |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "Simplest test - list all the direct prerequisites of CMake itself") |
| message(STATUS "") |
| list_prerequisites("${CMAKE_COMMAND}" 0 0 1) |
| message(STATUS "") |
| |
| message(STATUS "=============================================================================") |
| string(LENGTH "$ENV{PATH}" PATH_LENGTH_BEGIN) |
| message(STATUS "Begin PATH length is: ${PATH_LENGTH_BEGIN}") |
| message(STATUS "") |
| |
| |
| # Leave the code for these tests in here, but turn them off by default... they |
| # take longer than they're worth during development... |
| # |
| set(do_testdefaults 0) |
| if(do_testdefaults) |
| message(STATUS "=============================================================================") |
| message(STATUS "Test default argument values to list_prerequisites function...") |
| message(STATUS "") |
| list_prerequisites("${CMAKE_COMMAND}") |
| message(STATUS "") |
| endif() |
| |
| |
| set(do_stresstest 0) |
| if(do_stresstest) |
| message(STATUS "=============================================================================") |
| message(STATUS "stresstest_list_prerequisites with CMake itself...") |
| message(STATUS "") |
| stresstest_list_prerequisites("${CMAKE_COMMAND}") |
| message(STATUS "") |
| endif() |
| |
| |
| test_cmake_executables() |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "Test overriding 'gp_tool' with bogus value") |
| message(STATUS "") |
| set(gp_tool "bogus") |
| list_prerequisites("${CMAKE_COMMAND}" 0 0 0) |
| set(gp_tool) |
| message(STATUS "") |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "Test overriding 'gp_tool' with value unlikely to be found") |
| message(STATUS "") |
| if(APPLE) |
| set(gp_tool "dumpbin") |
| else() |
| set(gp_tool "otool") |
| endif() |
| set(gp_cmd "gp_cmd-NOTFOUND") |
| list_prerequisites("${CMAKE_COMMAND}" 0 0 0) |
| set(gp_cmd) |
| set(gp_tool) |
| message(STATUS "") |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "All variables: (Make sure functions/macros are not leaving stuff around...") |
| message(STATUS " Only variables predefined by CMake and defined in this") |
| message(STATUS " test script file should be listed here...)") |
| message(STATUS "") |
| get_cmake_property(vs VARIABLES) |
| foreach(v ${vs}) |
| message(STATUS "${v}='${${v}}'") |
| endforeach() |
| message(STATUS "") |
| |
| message(STATUS "=============================================================================") |
| string(LENGTH "$ENV{PATH}" PATH_LENGTH_END) |
| message(STATUS "Final PATH length is: ${PATH_LENGTH_END}") |
| |
| if(PATH_LENGTH_END GREATER ${PATH_LENGTH_BEGIN}) |
| message(FATAL_ERROR "list_prerequisties is endlessly appending the path of gp_tool to the PATH.") |
| endif() |
| message(STATUS "") |
| |
| |
| message(STATUS "=============================================================================") |
| message(STATUS "End of test") |
| message(STATUS "") |