summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-03-15 17:59:44 (GMT)
committerBrad King <brad.king@kitware.com>2023-03-15 18:33:36 (GMT)
commit4c866cac4021040d7a641978630c27f8969d4c46 (patch)
tree4d8b4cb396cf979932e02b9330d982b475f3409a /Tests/RunCMake
parent1ec4c6579117634ddb20962cdb63313dbf79887e (diff)
downloadCMake-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.cmake24
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()