From 9977899df2c6c7687353882eff01150546ef42a9 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 13 Oct 2016 12:42:54 -0400 Subject: [PATCH] Ninja: Fix RC language depfile generation with cmcldeps In commit v3.7.0-rc1~275^2 (Ninja: Use full path for all source files, 2016-08-05), the source path was changed to use an absolute path. Inside of `cmcldeps` for `.rc` file compilation, it uses a separate argument for the path to the source file. This ended up causing `cmcldeps` to transform the following call: cmcldeps.exe RC source.rc ... C:/full/path/to/source.rc into: ... C:/full/path/to//Tc source.rc which is invalid. Update the source filename to use the full path to the source file so that the path is replaced properly. --- Source/cmNinjaTargetGenerator.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index fb2581dfd..46a61613a 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -427,7 +427,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang) : mf->GetSafeDefinition("CMAKE_CXX_COMPILER"); cldeps = "\""; cldeps += cmSystemTools::GetCMClDepsCommand(); - cldeps += "\" " + lang + " $in \"$DEP_FILE\" $out \""; + cldeps += "\" " + lang + " " + vars.Source + " \"$DEP_FILE\" $out \""; cldeps += mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDES_PREFIX"); cldeps += "\" \"" + cl + "\" "; }