From df965cb9638d589be55daa520c13df32e1afd91d Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 25 Sep 2017 09:52:13 -0400 Subject: Ninja: Fix quoting of RC language depfile in cmcldeps call Since commit v3.0.0-rc1~448^2 (Ninja: use deps = gcc/msvc feature, 2013-10-18) the value of the `DEP_FILE` binding already includes the needed quoting to refer to the file. However, that commit forgot to update one of the `$DEP_FILE` references to not be quoted anymore. The offending code path currently only affects cmcldeps for RC. Remove the extra quoting now. Fixes: #17298 --- Source/cmNinjaTargetGenerator.cxx | 2 +- Tests/VSResource/CMakeLists.txt | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index a464d6e..5fb4097 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -438,7 +438,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang) : mf->GetSafeDefinition("CMAKE_CXX_COMPILER"); cldeps = "\""; cldeps += cmSystemTools::GetCMClDepsCommand(); - cldeps += "\" " + lang + " " + vars.Source + " \"$DEP_FILE\" $out \""; + cldeps += "\" " + lang + " " + vars.Source + " $DEP_FILE $out \""; cldeps += mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDES_PREFIX"); cldeps += "\" \"" + cl + "\" "; } diff --git a/Tests/VSResource/CMakeLists.txt b/Tests/VSResource/CMakeLists.txt index 718e624..fb47c7e 100644 --- a/Tests/VSResource/CMakeLists.txt +++ b/Tests/VSResource/CMakeLists.txt @@ -56,3 +56,10 @@ endif() set_property(TARGET VSResource PROPERTY VS_GLOBAL_CMakeTestVsGlobalVariable "test val") + +if(CMAKE_GENERATOR MATCHES "Ninja|Visual Studio") + cmake_policy(PUSH) + cmake_policy(SET CMP0037 OLD) + add_library("My ResourceLib" lib.cpp lib.rc) + cmake_policy(POP) +endif() -- cgit v0.12