| include(RunCMake) |
| |
| set(RunCMake_TEST_OPTIONS "-DPSEUDO_TIDY=${PSEUDO_TIDY}") |
| |
| function(run_tidy lang) |
| # Use a single build tree for tests without cleaning. |
| set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${lang}-build) |
| set(RunCMake_TEST_NO_CLEAN 1) |
| file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") |
| file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") |
| run_cmake(${lang}) |
| |
| set(RunCMake_TEST_OUTPUT_MERGE 1) |
| run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build .) |
| endfunction() |
| |
| run_tidy(C) |
| run_tidy(CXX) |
| if (APPLE) |
| run_tidy(OBJC) |
| run_tidy(OBJCXX) |
| endif() |
| if (NOT RunCMake_GENERATOR STREQUAL "Watcom WMake") |
| run_tidy(C-launch) |
| run_tidy(CXX-launch) |
| if (APPLE) |
| run_tidy(OBJC-launch) |
| run_tidy(OBJCXX-launch) |
| endif() |
| endif() |
| run_tidy(C-bad) |
| run_tidy(compdb) |
| |
| function(any_file_exists varname) |
| foreach(filename IN LISTS ARGN) |
| if(EXISTS "${filename}") |
| set("${varname}" 1 PARENT_SCOPE) |
| return() |
| endif() |
| endforeach() |
| set("${varname}" 0 PARENT_SCOPE) |
| endfunction() |
| |
| function(assert_any_file_exists) |
| any_file_exists(exists ${ARGN}) |
| if(NOT exists) |
| string(APPEND RunCMake_TEST_FAILED "Expected one of the following files to exist but they do not:\n") |
| foreach(filename IN LISTS ARGN) |
| string(APPEND RunCMake_TEST_FAILED " ${filename}\n") |
| endforeach() |
| set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE) |
| endif() |
| endfunction() |
| |
| function(assert_no_file_exists) |
| any_file_exists(exists ${ARGN}) |
| if(exists) |
| string(APPEND RunCMake_TEST_FAILED "Expected none of the following files to exist but one of them does:\n") |
| foreach(filename IN LISTS ARGN) |
| string(APPEND RunCMake_TEST_FAILED " ${filename}\n") |
| endforeach() |
| set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE) |
| endif() |
| endfunction() |
| |
| function(run_tidy_export_fixes) |
| # Use a single build tree for tests without cleaning. |
| set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/ExportFixesDir-build) |
| set(RunCMake_TEST_NO_CLEAN 1) |
| file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") |
| file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") |
| run_cmake(ExportFixesDir) |
| |
| set(RunCMake_TEST_OUTPUT_MERGE 1) |
| run_cmake_command(ExportFixesDir-Build ${CMAKE_COMMAND} --build . --config Debug) |
| unset(RunCMake_TEST_OUTPUT_MERGE) |
| |
| run_cmake(ExportFixesDir2) |
| |
| set(RunCMake_TEST_OUTPUT_MERGE 1) |
| run_cmake_command(ExportFixesDir2-Build ${CMAKE_COMMAND} --build . --config Debug) |
| unset(RunCMake_TEST_OUTPUT_MERGE) |
| endfunction() |
| run_tidy_export_fixes() |