summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-02-09 13:59:39 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-02-09 13:59:45 (GMT)
commit25003baf50fa31f331fd2abef74dcb41b9db2c06 (patch)
tree774c278aa6fc5455faad255b19c8c00b371fa1ef /Tests
parent2c553c56b4d9b063179115d7c2ef980c0af33c51 (diff)
parentb764c7c2731614147c3e4e6379c47df7a92bc3e3 (diff)
downloadCMake-25003baf50fa31f331fd2abef74dcb41b9db2c06.zip
CMake-25003baf50fa31f331fd2abef74dcb41b9db2c06.tar.gz
CMake-25003baf50fa31f331fd2abef74dcb41b9db2c06.tar.bz2
Merge topic 'vs_buildcache_support'
b764c7c273 VS: Add property to turn off Visual Studio compile batching Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6957
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/VS10Project/RunCMakeTest.cmake1
-rw-r--r--Tests/RunCMake/VS10Project/VsNoCompileBatching-check.cmake31
-rw-r--r--Tests/RunCMake/VS10Project/VsNoCompileBatching.cmake9
3 files changed, 41 insertions, 0 deletions
diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
index 139dcc7..b19c1a8 100644
--- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
+++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
@@ -84,3 +84,4 @@ endif()
run_cmake(VsDotnetTargetFramework)
run_cmake(VsDotnetTargetFrameworkVersion)
+run_cmake(VsNoCompileBatching)
diff --git a/Tests/RunCMake/VS10Project/VsNoCompileBatching-check.cmake b/Tests/RunCMake/VS10Project/VsNoCompileBatching-check.cmake
new file mode 100644
index 0000000..4002c3f
--- /dev/null
+++ b/Tests/RunCMake/VS10Project/VsNoCompileBatching-check.cmake
@@ -0,0 +1,31 @@
+macro(VsNoCompileBatching_check tgt ofn_expect)
+ set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/${tgt}.vcxproj")
+ if(NOT EXISTS "${vcProjectFile}")
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not exist.")
+ return()
+ endif()
+
+ set(HAVE_OFN 0)
+
+ file(STRINGS "${vcProjectFile}" lines)
+ foreach(line IN LISTS lines)
+ if(line MATCHES "^ *<ObjectFileName>([^<>]+)</ObjectFileName>")
+ set(ofn_actual "${CMAKE_MATCH_1}")
+ if(NOT "${ofn_actual}" STREQUAL "${ofn_expect}")
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj has <ObjectFileName> '${ofn_actual}', not '${ofn_expect}'.")
+ return()
+ endif()
+ set(HAVE_OFN 1)
+ break()
+ endif()
+ endforeach()
+
+ if(NOT HAVE_OFN)
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a <ObjectFileName> property.")
+ return()
+ endif()
+endmacro()
+
+VsNoCompileBatching_check(foo "$(IntDir)")
+VsNoCompileBatching_check(foo_NB "$(IntDir)%(filename).obj")
+VsNoCompileBatching_check(foo_NB_OFF "$(IntDir)")
diff --git a/Tests/RunCMake/VS10Project/VsNoCompileBatching.cmake b/Tests/RunCMake/VS10Project/VsNoCompileBatching.cmake
new file mode 100644
index 0000000..c96edce
--- /dev/null
+++ b/Tests/RunCMake/VS10Project/VsNoCompileBatching.cmake
@@ -0,0 +1,9 @@
+enable_language(CXX)
+
+add_library(foo foo.cpp)
+
+add_library(foo_NB foo.cpp)
+set_property(TARGET foo_NB PROPERTY VS_NO_COMPILE_BATCHING ON)
+
+add_library(foo_NB_OFF foo.cpp)
+set_property(TARGET foo_NB_OFF PROPERTY VS_NO_COMPILE_BATCHING OFF)