summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorAndrew Ng <andrew.ng@sony.com>2023-02-20 18:00:44 (GMT)
committerBrad King <brad.king@kitware.com>2023-02-23 19:35:08 (GMT)
commit0b552eb877b887638e8130bb6c982106a76827d8 (patch)
treea130f217a7239e77376007c1d928f2fd0a672abb /Tests
parentdf5adfd5ab1f2ab30acf33031a75fc2c69dfd599 (diff)
downloadCMake-0b552eb877b887638e8130bb6c982106a76827d8.zip
CMake-0b552eb877b887638e8130bb6c982106a76827d8.tar.gz
CMake-0b552eb877b887638e8130bb6c982106a76827d8.tar.bz2
MSVC: Embed manifests directly for non-incremental vs_link_exe links
This avoids the need to separately execute `mt.exe` to perform the embedding of manifests into the output for non-incremental links. The primary motivation for this change is that this separate execution of `mt.exe` to embed manifests is known to cause intermittent failures due to AV/security scanning. The only change in behavior is that any linker generated manifest will no longer be output as a separate manifest file alongside the output file. Fixes: #24531
Diffstat (limited to 'Tests')
-rw-r--r--Tests/MSManifest/Subdir/CMakeLists.txt5
-rw-r--r--Tests/MSManifest/Subdir2/CMakeLists.txt10
2 files changed, 15 insertions, 0 deletions
diff --git a/Tests/MSManifest/Subdir/CMakeLists.txt b/Tests/MSManifest/Subdir/CMakeLists.txt
index 3b4fccc..68c66fe 100644
--- a/Tests/MSManifest/Subdir/CMakeLists.txt
+++ b/Tests/MSManifest/Subdir/CMakeLists.txt
@@ -5,6 +5,11 @@ if(MSVC AND NOT MSVC_VERSION LESS 1400)
add_test(NAME MSManifest.Single COMMAND
${CMAKE_COMMAND} -Dexe=$<TARGET_FILE:MSManifest>
-P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake)
+ add_executable(MSManifestNonIncremental main.c ${CMAKE_CURRENT_BINARY_DIR}/test.manifest)
+ set_property(TARGET MSManifestNonIncremental PROPERTY LINK_FLAGS "/INCREMENTAL:NO")
+ add_test(NAME MSManifest.Single.NonIncremental COMMAND
+ ${CMAKE_COMMAND} -Dexe=$<TARGET_FILE:MSManifestNonIncremental>
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake)
add_executable(MSManifestNone main.c)
set_property(TARGET MSManifestNone PROPERTY LINK_FLAGS "/MANIFEST:NO")
elseif(WIN32 AND CMAKE_C_COMPILER_ID MATCHES "Clang")
diff --git a/Tests/MSManifest/Subdir2/CMakeLists.txt b/Tests/MSManifest/Subdir2/CMakeLists.txt
index 0d960ad..bbc70dc 100644
--- a/Tests/MSManifest/Subdir2/CMakeLists.txt
+++ b/Tests/MSManifest/Subdir2/CMakeLists.txt
@@ -10,4 +10,14 @@ if((MSVC AND NOT MSVC_VERSION LESS 1400) OR (WIN32 AND CMAKE_C_COMPILER_ID MATCH
add_test(NAME MSManifest.Multiple COMMAND
${CMAKE_COMMAND} -Dexe=$<TARGET_FILE:MSMultipleManifest>
-P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake)
+ if(MSVC AND NOT MSVC_VERSION LESS 1400)
+ add_executable(MSMultipleManifestNonIncremental main.c
+ ${CMAKE_CURRENT_BINARY_DIR}/test_manifest1.manifest
+ ${CMAKE_CURRENT_BINARY_DIR}/test_manifest2.manifest
+ ${CMAKE_CURRENT_BINARY_DIR}/test_manifest3.manifest)
+ set_property(TARGET MSMultipleManifestNonIncremental PROPERTY LINK_FLAGS "/INCREMENTAL:NO")
+ add_test(NAME MSManifest.Multiple.NonIncremental COMMAND
+ ${CMAKE_COMMAND} -Dexe=$<TARGET_FILE:MSMultipleManifestNonIncremental>
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake)
+ endif()
endif()