summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-11-18 09:10:51 -0500
committerBrad King <brad.king@kitware.com>2015-11-18 09:31:56 -0500
commitca263d1d71d953630e31daa7771dde3c6835b9a2 (patch)
tree59e1be952706fe8aea636aa409e825ccc107a9aa
parentb4a2ada297214119647b26df8abe394cd73ca53a (diff)
downloadcmake-ca263d1d71d953630e31daa7771dde3c6835b9a2.tar.gz
MSVC: Fix linking with /MANIFEST:NO option
Refactoring in commit v3.4.0-rc1~74^2~1 (MSVC: Rewrite manifest file handling with Makefile and Ninja, 2015-09-15) broke handling of this option. Fix it and add a test case.
-rw-r--r--Source/cmcmd.cxx4
-rw-r--r--Tests/MSManifest/Subdir/CMakeLists.txt2
2 files changed, 5 insertions, 1 deletions
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index f44c77d6ee..a074444589 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -1550,7 +1550,6 @@ bool cmVSLink::Parse(std::vector<std::string>::const_iterator argBeg,
// pass it to the link command.
this->ManifestFileRC = intDir + "/manifest.rc";
this->ManifestFileRes = intDir + "/manifest.res";
- this->LinkCommand.push_back(this->ManifestFileRes);
}
else if (this->UserManifests.empty())
{
@@ -1658,6 +1657,9 @@ int cmVSLink::LinkIncremental()
return -1;
}
+ // Tell the linker to use our manifest compiled into a resource.
+ this->LinkCommand.push_back(this->ManifestFileRes);
+
// Run the link command (possibly generates intermediate manifest).
if (!RunCommand("LINK Pass 1", this->LinkCommand, this->Verbose))
{
diff --git a/Tests/MSManifest/Subdir/CMakeLists.txt b/Tests/MSManifest/Subdir/CMakeLists.txt
index a47cf00309..11272bb9fa 100644
--- a/Tests/MSManifest/Subdir/CMakeLists.txt
+++ b/Tests/MSManifest/Subdir/CMakeLists.txt
@@ -6,4 +6,6 @@ if(MSVC AND NOT MSVC_VERSION LESS 1400)
COMMAND ${CMAKE_COMMAND} -Dexe=$<TARGET_FILE:MSManifest>
-P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
)
+ add_executable(MSManifestNone main.c)
+ set_property(TARGET MSManifestNone PROPERTY LINK_FLAGS "/MANIFEST:NO")
endif()