[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