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.
This commit is contained in:
Ben Boeckel 2016-10-13 12:42:54 -04:00 committed by Brad King
parent b99bbfe88d
commit 9977899df2
1 changed files with 1 additions and 1 deletions

View File

@ -427,7 +427,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang)
: mf->GetSafeDefinition("CMAKE_CXX_COMPILER"); : mf->GetSafeDefinition("CMAKE_CXX_COMPILER");
cldeps = "\""; cldeps = "\"";
cldeps += cmSystemTools::GetCMClDepsCommand(); cldeps += cmSystemTools::GetCMClDepsCommand();
cldeps += "\" " + lang + " $in \"$DEP_FILE\" $out \""; cldeps += "\" " + lang + " " + vars.Source + " \"$DEP_FILE\" $out \"";
cldeps += mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDES_PREFIX"); cldeps += mf->GetSafeDefinition("CMAKE_CL_SHOWINCLUDES_PREFIX");
cldeps += "\" \"" + cl + "\" "; cldeps += "\" \"" + cl + "\" ";
} }