diff options
author | Brad King <brad.king@kitware.com> | 2015-11-18 14:10:51 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-11-18 14:31:56 (GMT) |
commit | ca263d1d71d953630e31daa7771dde3c6835b9a2 (patch) | |
tree | 59e1be952706fe8aea636aa409e825ccc107a9aa | |
parent | b4a2ada297214119647b26df8abe394cd73ca53a (diff) | |
download | CMake-ca263d1d71d953630e31daa7771dde3c6835b9a2.zip CMake-ca263d1d71d953630e31daa7771dde3c6835b9a2.tar.gz CMake-ca263d1d71d953630e31daa7771dde3c6835b9a2.tar.bz2 |
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.cxx | 4 | ||||
-rw-r--r-- | Tests/MSManifest/Subdir/CMakeLists.txt | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index f44c77d..a074444 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 a47cf00..11272bb 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() |