[Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-546-g813afd6
Brad King
brad.king at kitware.com
Fri Feb 24 10:26:50 EST 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 813afd66c2017ab3ef7385beb5d476ea16e0d0d0 (commit)
via 666ad1df2dc5b181a40d831c125529fe7e9bf0b4 (commit)
from 69d7feb40cd3bc891e6ad029921a26c7e8347547 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=813afd66c2017ab3ef7385beb5d476ea16e0d0d0
commit 813afd66c2017ab3ef7385beb5d476ea16e0d0d0
Merge: 69d7feb 666ad1d
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 24 10:26:50 2017 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Feb 24 10:26:50 2017 -0500
Merge topic 'ninja-no-full-path' into next
666ad1df Revert "Ninja: Use full path for all source files"
diff --cc Source/cmNinjaTargetGenerator.cxx
index f096416,5c85dfa..b1f26e4
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@@ -380,12 -373,11 +380,12 @@@ void cmNinjaTargetGenerator::WriteLangu
void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang)
{
- cmLocalGenerator::RuleVariables vars;
- vars.RuleLauncher = "RULE_LAUNCH_COMPILE";
- vars.CMTarget = this->GetGeneratorTarget();
+ cmRulePlaceholderExpander::RuleVariables vars;
+ vars.CMTargetName = this->GetGeneratorTarget()->GetName().c_str();
+ vars.CMTargetType =
+ cmState::GetTargetTypeName(this->GetGeneratorTarget()->GetType());
vars.Language = lang.c_str();
- vars.Source = "$IN_ABS";
+ vars.Source = "$in";
vars.Object = "$out";
vars.Defines = "$DEFINES";
vars.Includes = "$INCLUDES";
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=666ad1df2dc5b181a40d831c125529fe7e9bf0b4
commit 666ad1df2dc5b181a40d831c125529fe7e9bf0b4
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 24 10:07:18 2017 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Fri Feb 24 10:15:50 2017 -0500
Revert "Ninja: Use full path for all source files"
This reverts commit v3.7.0-rc1~275^2 (Ninja: Use full path for all
source files, 2016-08-05). Unfortunately using absolute paths can
cause incorrect rebuilds due to ninja limitations. The ninja
manual [1] explains:
> ... using absolute paths, your depfile may result in a mixture of
> relative and absolute paths. Paths used by other build rules need
> to match exactly.
Passing an absolute path to a source file to the compiler while using a
relative path in the ninja build manifest can cause such mixture and
lead to incorrect rebuilds. Simply revert the change for now.
Note that there was a follow-up to the original change in commit
v3.7.0-rc2~10^2 (Ninja: Fix RC language depfile generation with
cmcldeps, 2016-10-13). We don't need to revert that because that
change made the relevant code cleverly adapt to whatever variable
we use to reference the source file.
[1] https://ninja-build.org/manual.html#_deps
Fixes: #16675
Issue: #13894
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 46a6161..5c85dfa 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -377,7 +377,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang)
vars.RuleLauncher = "RULE_LAUNCH_COMPILE";
vars.CMTarget = this->GetGeneratorTarget();
vars.Language = lang.c_str();
- vars.Source = "$IN_ABS";
+ vars.Source = "$in";
vars.Object = "$out";
vars.Defines = "$DEFINES";
vars.Includes = "$INCLUDES";
@@ -729,7 +729,8 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
cmSourceFile const* source, bool writeOrderDependsTargetForTarget)
{
std::string const language = source->GetLanguage();
- std::string const sourceFileName = this->GetSourceFilePath(source);
+ std::string const sourceFileName =
+ language == "RC" ? source->GetFullPath() : this->GetSourceFilePath(source);
std::string const objectDir =
this->ConvertToNinjaPath(this->GeneratorTarget->GetSupportDirectory());
std::string const objectFileName =
@@ -738,8 +739,6 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
cmSystemTools::GetFilenamePath(objectFileName);
cmNinjaVars vars;
- vars["IN_ABS"] = this->GetLocalGenerator()->ConvertToOutputFormat(
- source->GetFullPath(), cmOutputConverter::SHELL);
vars["FLAGS"] = this->ComputeFlagsForObject(source, language);
vars["DEFINES"] = this->ComputeDefines(source, language);
vars["INCLUDES"] = this->GetIncludes(language);
-----------------------------------------------------------------------
Summary of changes:
Source/cmNinjaTargetGenerator.cxx | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list