diff options
author | Brad King <brad.king@kitware.com> | 2023-03-15 17:59:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-03-15 18:33:36 (GMT) |
commit | 4c866cac4021040d7a641978630c27f8969d4c46 (patch) | |
tree | 4d8b4cb396cf979932e02b9330d982b475f3409a /Tests/RunCMake | |
parent | 1ec4c6579117634ddb20962cdb63313dbf79887e (diff) | |
download | CMake-4c866cac4021040d7a641978630c27f8969d4c46.zip CMake-4c866cac4021040d7a641978630c27f8969d4c46.tar.gz CMake-4c866cac4021040d7a641978630c27f8969d4c46.tar.bz2 |
VS: Do not regenerate build system concurrently with CMP0147
The VS generators add a custom command to `CMakeLists.txt` to re-run
CMake when input files have changed. Mark this custom command as if it
were specified with `USES_TERMINAL`. We already do this for the
equivalent `rebuild_cache` target in Makefile and Ninja generators.
This matters since commit d6353e74b4 (VS: Add policy to build custom
commands concurrently, 2023-03-10) because with policy CMP0147 set to
NEW, we now add `BuildInParallel` in `.vcxproj` file entries for custom
commands that do not have `USES_TERMINAL` set, but we do not want to
re-run CMake concurrently with other custom commands.
Issue: #18405
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r-- | Tests/RunCMake/VS10Project/CustomCommandParallel-check.cmake | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/Tests/RunCMake/VS10Project/CustomCommandParallel-check.cmake b/Tests/RunCMake/VS10Project/CustomCommandParallel-check.cmake index 87e2f70..4c8ad00 100644 --- a/Tests/RunCMake/VS10Project/CustomCommandParallel-check.cmake +++ b/Tests/RunCMake/VS10Project/CustomCommandParallel-check.cmake @@ -6,24 +6,30 @@ endif() set(found_CustomBuild_cmp0147_new 0) set(found_CustomBuild_cmp0147_old 0) +set(found_CustomBuild_CMakeLists 0) set(found_BuildInParallel_cmp0147_new 0) set(found_BuildInParallel_cmp0147_old 0) -set(in_CustomBuild_cmp0147 "") +set(found_BuildInParallel_CMakeLists 0) +set(in_CustomBuild "") file(STRINGS "${vcProjectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES [[<CustomBuild Include=".*\\cmp0147-old\.txt\.rule">]]) set(found_CustomBuild_cmp0147_old 1) - set(in_CustomBuild_cmp0147 "old") + set(in_CustomBuild "cmp0147_old") endif() if(line MATCHES [[<CustomBuild Include=".*\\cmp0147-new\.txt\.rule">]]) set(found_CustomBuild_cmp0147_new 1) - set(in_CustomBuild_cmp0147 "new") + set(in_CustomBuild "cmp0147_new") + endif() + if(line MATCHES [[<CustomBuild Include=".*\\CMakeLists\.txt">]]) + set(found_CustomBuild_CMakeLists 1) + set(in_CustomBuild "CMakeLists") endif() if(line MATCHES [[</CustomBuild>]]) - set(in_CustomBuild_cmp0147 "") + set(in_CustomBuild "") endif() - if(line MATCHES [[<BuildInParallel .*>true</BuildInParallel>]] AND in_CustomBuild_cmp0147) - set(found_BuildInParallel_cmp0147_${in_CustomBuild_cmp0147} 1) + if(line MATCHES [[<BuildInParallel .*>true</BuildInParallel>]] AND in_CustomBuild) + set(found_BuildInParallel_${in_CustomBuild} 1) endif() endforeach() if(NOT found_CustomBuild_cmp0147_new) @@ -32,9 +38,15 @@ endif() if(NOT found_CustomBuild_cmp0147_old) string(APPEND RunCMake_TEST_FAILED "CustomBuild for cmp0147-old.txt.rule not found in\n ${vcProjectFile}\n") endif() +if(NOT found_CustomBuild_CMakeLists) + string(APPEND RunCMake_TEST_FAILED "CustomBuild for CMakeLists.txt not found in\n ${vcProjectFile}\n") +endif() if(NOT found_BuildInParallel_cmp0147_new) string(APPEND RunCMake_TEST_FAILED "BuildInParallel for cmp0147-new.txt.rule not found in\n ${vcProjectFile}\n") endif() if(found_BuildInParallel_cmp0147_old) string(APPEND RunCMake_TEST_FAILED "BuildInParallel for cmp0147-old.txt.rule incorrectly found in\n ${vcProjectFile}\n") endif() +if(found_BuildInParallel_CMakeLists) + string(APPEND RunCMake_TEST_FAILED "BuildInParallel for CMakeLists.txt incorrectly found in\n ${vcProjectFile}\n") +endif() |