diff options
author | Brad King <brad.king@kitware.com> | 2016-06-28 13:06:34 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-06-28 13:06:34 (GMT) |
commit | 1b021a64f8bf4d9544acb18628e3821f61f49e10 (patch) | |
tree | a6a50b9f9614b5f2c93c5e14ef8059a3539cd1ac | |
parent | 7287893d411dde3b9afc6a4c8896dd9d15db9e04 (diff) | |
parent | 15b3f6f0f187ab12c29e437f737356bed13d977b (diff) | |
download | CMake-1b021a64f8bf4d9544acb18628e3821f61f49e10.zip CMake-1b021a64f8bf4d9544acb18628e3821f61f49e10.tar.gz CMake-1b021a64f8bf4d9544acb18628e3821f61f49e10.tar.bz2 |
Merge topic 'ninja-no-rsp-for-rc'
15b3f6f0 ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files
-rw-r--r-- | Source/cmNinjaTargetGenerator.cxx | 6 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/VSResourceNinjaForceRSP/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Tests/VSResourceNinjaForceRSP/lib.cpp | 4 | ||||
-rw-r--r-- | Tests/VSResourceNinjaForceRSP/main.cpp | 6 | ||||
-rw-r--r-- | Tests/VSResourceNinjaForceRSP/test.rc | 4 |
6 files changed, 28 insertions, 2 deletions
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 954c73e..4d469b2 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -321,7 +321,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang) std::string rspcontent; std::string responseFlag; - if (this->ForceResponseFile()) { + if (lang != "RC" && this->ForceResponseFile()) { rspfile = "$RSP_FILE"; responseFlag = "@" + rspfile; rspcontent = " $DEFINES $INCLUDES $FLAGS"; @@ -603,7 +603,9 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement( this->SetMsvcTargetPdbVariable(vars); - int const commandLineLengthLimit = this->ForceResponseFile() ? -1 : 0; + bool const isRC = (language == "RC"); + int const commandLineLengthLimit = + ((!isRC && this->ForceResponseFile())) ? -1 : 0; std::string const rspfile = objectFileName + ".rsp"; this->GetGlobalGenerator()->WriteBuild( diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 5911682..b3d61bd 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -274,6 +274,9 @@ if(BUILD_TESTING) endif() if(TEST_RESOURCES) ADD_TEST_MACRO(VSResource VSResource) + if (CMAKE_GENERATOR MATCHES "Ninja") + add_test_macro(VSResourceNinjaForceRSP VSResourceNinjaForceRSP) + endif () endif() ADD_TEST_MACRO(MSManifest MSManifest) ADD_TEST_MACRO(Simple Simple) diff --git a/Tests/VSResourceNinjaForceRSP/CMakeLists.txt b/Tests/VSResourceNinjaForceRSP/CMakeLists.txt new file mode 100644 index 0000000..29ba0ce --- /dev/null +++ b/Tests/VSResourceNinjaForceRSP/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 2.8.4) +project(VSResourceNinjaForceRSP) + +set(CMAKE_NINJA_FORCE_RESPONSE_FILE TRUE) + +add_library(ResourceLib lib.cpp test.rc) +add_executable(VSResourceNinjaForceRSP main.cpp test.rc) diff --git a/Tests/VSResourceNinjaForceRSP/lib.cpp b/Tests/VSResourceNinjaForceRSP/lib.cpp new file mode 100644 index 0000000..c912397 --- /dev/null +++ b/Tests/VSResourceNinjaForceRSP/lib.cpp @@ -0,0 +1,4 @@ +int lib() +{ + return 0; +} diff --git a/Tests/VSResourceNinjaForceRSP/main.cpp b/Tests/VSResourceNinjaForceRSP/main.cpp new file mode 100644 index 0000000..247411d --- /dev/null +++ b/Tests/VSResourceNinjaForceRSP/main.cpp @@ -0,0 +1,6 @@ +int main(int argc, char** argv) +{ + (void)argc; + (void)argv; + return 0; +} diff --git a/Tests/VSResourceNinjaForceRSP/test.rc b/Tests/VSResourceNinjaForceRSP/test.rc new file mode 100644 index 0000000..1ffade6 --- /dev/null +++ b/Tests/VSResourceNinjaForceRSP/test.rc @@ -0,0 +1,4 @@ +STRINGTABLE +BEGIN + 1234 "5" +END |