[Cmake-commits] CMake branch, next, updated. v3.0.0-rc6-3378-gcd91e99

Ben Boeckel ben.boeckel at kitware.com
Tue May 27 14:32:25 EDT 2014


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  cd91e99eeb02ec15a65deb5b2d840895f1032fad (commit)
       via  88962807c25a928065cb92d0dd3ccfae84569689 (commit)
      from  70459c917e6cfbe265d58dba229aa49b22eac74f (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cd91e99eeb02ec15a65deb5b2d840895f1032fad
commit cd91e99eeb02ec15a65deb5b2d840895f1032fad
Merge: 70459c9 8896280
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Tue May 27 14:32:24 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue May 27 14:32:24 2014 -0400

    Merge topic 'revert/old-backtrace-performance' into next
    
    88962807 revert old backtrace-performance changes


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=88962807c25a928065cb92d0dd3ccfae84569689
commit 88962807c25a928065cb92d0dd3ccfae84569689
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Tue May 27 14:31:22 2014 -0400
Commit:     Ben Boeckel <ben.boeckel at kitware.com>
CommitDate: Tue May 27 14:31:29 2014 -0400

    revert old backtrace-performance changes

diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx
index 6f36940..eb62455 100644
--- a/Source/cmComputeTargetDepends.cxx
+++ b/Source/cmComputeTargetDepends.cxx
@@ -386,10 +386,15 @@ void cmComputeTargetDepends::AddTargetDepend(int depender_index,
       e << "The dependency target \"" <<  dependee_name
         << "\" of target \"" << depender->GetName() << "\" does not exist.";
 
-      cmListFileBacktrace backtrace =
+      cmListFileBacktrace nullBacktrace;
+      cmListFileBacktrace const* backtrace =
         depender->GetUtilityBacktrace(dependee_name);
+      if(!backtrace)
+        {
+        backtrace = &nullBacktrace;
+        }
 
-      cm->IssueMessage(messageType, e.str(), backtrace);
+      cm->IssueMessage(messageType, e.str(), *backtrace);
       }
     }
 
diff --git a/Source/cmExportBuildFileGenerator.cxx b/Source/cmExportBuildFileGenerator.cxx
index 647bbca..6c8ebb6 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -46,7 +46,6 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
       {
       cmOStringStream e;
       e << "given target \"" << te->GetName() << "\" more than once.";
-      this->Backtrace.MakeRelative();
       this->Makefile->GetCMakeInstance()
           ->IssueMessage(cmake::FATAL_ERROR, e.str(), this->Backtrace);
       return false;
@@ -318,7 +317,6 @@ cmExportBuildFileGenerator
   e << "If the required target is not easy to reference in this call, "
     << "consider using the APPEND option with multiple separate calls.";
 
-  this->Backtrace.MakeRelative();
   this->Makefile->GetCMakeInstance()
       ->IssueMessage(cmake::FATAL_ERROR, e.str(), this->Backtrace);
 }
diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx
index 8882d5f..7f8e694 100644
--- a/Source/cmGeneratorExpressionDAGChecker.cxx
+++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -91,11 +91,9 @@ void cmGeneratorExpressionDAGChecker::ReportError(
       << "  " << expr << "\n"
       << "Self reference on target \""
       << context->HeadTarget->GetName() << "\".\n";
-    cmListFileBacktrace backtrace = parent->Backtrace;
-    backtrace.MakeRelative();
     context->Makefile->GetCMakeInstance()
       ->IssueMessage(cmake::FATAL_ERROR, e.str(),
-                     backtrace);
+                      parent->Backtrace);
     return;
     }
 
@@ -104,7 +102,6 @@ void cmGeneratorExpressionDAGChecker::ReportError(
   e << "Error evaluating generator expression:\n"
     << "  " << expr << "\n"
     << "Dependency loop found.";
-  context->Backtrace.MakeRelative();
   context->Makefile->GetCMakeInstance()
     ->IssueMessage(cmake::FATAL_ERROR, e.str(),
                     context->Backtrace);
@@ -118,11 +115,9 @@ void cmGeneratorExpressionDAGChecker::ReportError(
       << "  "
       << (parent->Content ? parent->Content->GetOriginalExpression() : expr)
       << "\n";
-    cmListFileBacktrace backtrace = parent->Backtrace;
-    backtrace.MakeRelative();
     context->Makefile->GetCMakeInstance()
       ->IssueMessage(cmake::FATAL_ERROR, e.str(),
-                     backtrace);
+                      parent->Backtrace);
     parent = parent->Parent;
     ++loopStep;
     }
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 33315c6..0b357f6 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -40,7 +40,6 @@ void reportError(cmGeneratorExpressionContext *context,
   e << "Error evaluating generator expression:\n"
     << "  " << expr << "\n"
     << result;
-  context->Backtrace.MakeRelative();
   context->Makefile->GetCMakeInstance()
     ->IssueMessage(cmake::FATAL_ERROR, e.str(),
                     context->Backtrace);
@@ -429,7 +428,6 @@ struct CompilerIdNode : public cmGeneratorExpressionNode
           cmOStringStream e;
           e << context->Makefile->GetPolicies()
                       ->GetPolicyWarning(cmPolicies::CMP0044);
-          context->Backtrace.MakeRelative();
           context->Makefile->GetCMakeInstance()
                  ->IssueMessage(cmake::AUTHOR_WARNING,
                                 e.str(), context->Backtrace);
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index 705666d..34781d3 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -12,7 +12,6 @@
 #include "cmListFileCache.h"
 
 #include "cmListFileLexer.h"
-#include "cmLocalGenerator.h"
 #include "cmSystemTools.h"
 #include "cmMakefile.h"
 #include "cmVersion.h"
@@ -409,23 +408,6 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token,
 }
 
 //----------------------------------------------------------------------------
-void cmListFileBacktrace::MakeRelative()
-{
-  if (this->Relative)
-    {
-    return;
-    }
-  for (cmListFileBacktrace::iterator i = this->begin();
-       i != this->end(); ++i)
-    {
-    i->FilePath = this->LocalGenerator->Convert(i->FilePath,
-                                                cmLocalGenerator::HOME);
-    }
-  this->Relative = true;
-}
-
-
-//----------------------------------------------------------------------------
 std::ostream& operator<<(std::ostream& os, cmListFileContext const& lfc)
 {
   os << lfc.FilePath;
diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h
index 5807364..bede25e 100644
--- a/Source/cmListFileCache.h
+++ b/Source/cmListFileCache.h
@@ -14,8 +14,6 @@
 
 #include "cmStandardIncludes.h"
 
-class cmLocalGenerator;
-
 /** \class cmListFileCache
  * \brief A class to cache list file contents.
  *
@@ -68,27 +66,7 @@ struct cmListFileFunction: public cmListFileContext
   std::vector<cmListFileArgument> Arguments;
 };
 
-class cmListFileBacktrace: public std::vector<cmListFileContext>
-{
-  public:
-    cmListFileBacktrace()
-      : LocalGenerator(NULL)
-      , Relative(true)
-    {
-    }
-
-    void MakeRelative();
-  private:
-    friend class cmMakefile;
-    void SetLocalGenerator(cmLocalGenerator* generator)
-    {
-      this->LocalGenerator = generator;
-      this->Relative = false;
-    }
-
-    cmLocalGenerator* LocalGenerator;
-    bool Relative;
-};
+class cmListFileBacktrace: public std::vector<cmListFileContext> {};
 
 struct cmListFile
 {
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 2abe34c..9f33b92 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -316,7 +316,6 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
       this->CallStack.back().Status->SetNestedError(true);
       }
     this->GetBacktrace(backtrace);
-    backtrace.MakeRelative();
     }
   else
     {
@@ -334,12 +333,12 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
       lfc.FilePath = this->ListFileStack.back();
       }
     lfc.Line = 0;
-    backtrace.push_back(lfc);
     if(!this->GetCMakeInstance()->GetIsInTryCompile())
       {
-      backtrace.SetLocalGenerator(this->LocalGenerator);
-      backtrace.MakeRelative();
+      lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath,
+                                                   cmLocalGenerator::HOME);
       }
+    backtrace.push_back(lfc);
     }
 
   // Issue the message.
@@ -353,11 +352,13 @@ bool cmMakefile::GetBacktrace(cmListFileBacktrace& backtrace) const
     {
     return false;
     }
-  backtrace.SetLocalGenerator(this->LocalGenerator);
   for(CallStackType::const_reverse_iterator i = this->CallStack.rbegin();
       i != this->CallStack.rend(); ++i)
     {
-    backtrace.push_back(*i->Context);
+    cmListFileContext lfc = *(*i).Context;
+    lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath,
+                                                 cmLocalGenerator::HOME);
+    backtrace.push_back(lfc);
     }
   return true;
 }
@@ -1946,7 +1947,6 @@ void cmMakefile::CheckForUnused(const char* reason,
       {
       cmOStringStream msg;
       msg << "unused variable (" << reason << ") \'" << name << "\'";
-      bt.MakeRelative();
       this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
                                              msg.str(),
                                              bt);
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 922b70d..15acfdd 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -448,16 +448,14 @@ void cmTarget::AddUtility(const std::string& u, cmMakefile *makefile)
 }
 
 //----------------------------------------------------------------------------
-cmListFileBacktrace cmTarget::GetUtilityBacktrace(
+cmListFileBacktrace const* cmTarget::GetUtilityBacktrace(
     const std::string& u) const
 {
   std::map<std::string, cmListFileBacktrace>::const_iterator i =
     this->UtilityBacktraces.find(u);
-  if(i == this->UtilityBacktraces.end()) return cmListFileBacktrace();
+  if(i == this->UtilityBacktraces.end()) return 0;
 
-  cmListFileBacktrace bt = i->second;
-  bt.MakeRelative();
-  return bt;
+  return &i->second;
 }
 
 //----------------------------------------------------------------------------
@@ -492,7 +490,6 @@ void cmTarget::ClearLinkMaps()
 //----------------------------------------------------------------------------
 cmListFileBacktrace const& cmTarget::GetBacktrace() const
 {
-  this->Internal->Backtrace.MakeRelative();
   return this->Internal->Backtrace;
 }
 
@@ -646,12 +643,10 @@ static bool processSources(cmTarget const* tgt,
       }
     if (!usedSources.empty())
       {
-      cmListFileBacktrace bt = (*it)->ge->GetBacktrace();
-      bt.MakeRelative();
       mf->GetCMakeInstance()->IssueMessage(cmake::LOG,
                             std::string("Used sources for target ")
                             + tgt->GetName() + ":\n"
-                            + usedSources, bt);
+                            + usedSources, (*it)->ge->GetBacktrace());
       }
     }
   return contextDependent;
@@ -1338,10 +1333,9 @@ void cmTarget::GetTllSignatureTraces(cmOStringStream &s,
                                                                 : "plain");
     s << "The uses of the " << sigString << " signature are here:\n";
     std::set<std::string> emitted;
-    for(std::vector<cmListFileBacktrace>::iterator it = sigs.begin();
+    for(std::vector<cmListFileBacktrace>::const_iterator it = sigs.begin();
         it != sigs.end(); ++it)
       {
-      it->MakeRelative();
       cmListFileBacktrace::const_iterator i = it->begin();
       if(i != it->end())
         {
@@ -2230,12 +2224,10 @@ static void processIncludeDirectories(cmTarget const* tgt,
       }
     if (!usedIncludes.empty())
       {
-      cmListFileBacktrace bt = (*it)->ge->GetBacktrace();
-      bt.MakeRelative();
       mf->GetCMakeInstance()->IssueMessage(cmake::LOG,
                             std::string("Used includes for target ")
                             + tgt->GetName() + ":\n"
-                            + usedIncludes, bt);
+                            + usedIncludes, (*it)->ge->GetBacktrace());
       }
     }
 }
@@ -2422,13 +2414,11 @@ static void processCompileOptionsInternal(cmTarget const* tgt,
       }
     if (!usedOptions.empty())
       {
-      cmListFileBacktrace bt = (*it)->ge->GetBacktrace();
-      bt.MakeRelative();
       mf->GetCMakeInstance()->IssueMessage(cmake::LOG,
                             std::string("Used compile ") + logName
                             + std::string(" for target ")
                             + tgt->GetName() + ":\n"
-                            + usedOptions, bt);
+                            + usedOptions, (*it)->ge->GetBacktrace());
       }
     }
 }
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 45f16ec..2d51835 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -221,7 +221,7 @@ public:
   void AddUtility(const std::string& u, cmMakefile *makefile = 0);
   ///! Get the utilities used by this target
   std::set<std::string>const& GetUtilities() const { return this->Utilities; }
-  cmListFileBacktrace GetUtilityBacktrace(const std::string& u) const;
+  cmListFileBacktrace const* GetUtilityBacktrace(const std::string& u) const;
 
   /** Finalize the target at the end of the Configure step.  */
   void FinishConfigure();
diff --git a/Source/cmTest.cxx b/Source/cmTest.cxx
index 38c8e99..28a7bb1 100644
--- a/Source/cmTest.cxx
+++ b/Source/cmTest.cxx
@@ -34,7 +34,6 @@ cmTest::~cmTest()
 //----------------------------------------------------------------------------
 cmListFileBacktrace const& cmTest::GetBacktrace() const
 {
-  this->Backtrace->MakeRelative();
   return *this->Backtrace;
 }
 

-----------------------------------------------------------------------

Summary of changes:
 Source/cmComputeTargetDepends.cxx          |    9 +++++++--
 Source/cmExportBuildFileGenerator.cxx      |    2 --
 Source/cmGeneratorExpressionDAGChecker.cxx |    9 ++-------
 Source/cmGeneratorExpressionEvaluator.cxx  |    2 --
 Source/cmListFileCache.cxx                 |   18 ------------------
 Source/cmListFileCache.h                   |   24 +-----------------------
 Source/cmMakefile.cxx                      |   14 +++++++-------
 Source/cmTarget.cxx                        |   24 +++++++-----------------
 Source/cmTarget.h                          |    2 +-
 Source/cmTest.cxx                          |    1 -
 10 files changed, 25 insertions(+), 80 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list