소스 검색

cmTarget: Store only cmListFileContext for CMP0023 handling.

Only the top level execution context is shown, as appropriate, so
store only that.
Stephen Kelly 10 년 전
부모
커밋
52a8d19c9b
2개의 변경된 파일13개의 추가작업 그리고 16개의 파일을 삭제
  1. 12 15
      Source/cmTarget.cxx
  2. 1 1
      Source/cmTarget.h

+ 12 - 15
Source/cmTarget.cxx

@@ -1239,8 +1239,8 @@ bool cmTarget::PushTLLCommandTrace(TLLSignature signature)
       ret = false;
       }
     }
-  cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
-  this->TLLCommands.push_back(std::make_pair(signature, lfbt));
+  cmListFileContext lfc = this->Makefile->GetExecutionContext();
+  this->TLLCommands.push_back(std::make_pair(signature, lfc));
   return ret;
 }
 
@@ -1248,8 +1248,8 @@ bool cmTarget::PushTLLCommandTrace(TLLSignature signature)
 void cmTarget::GetTllSignatureTraces(std::ostringstream &s,
                                      TLLSignature sig) const
 {
-  std::vector<cmListFileBacktrace> sigs;
-  typedef std::vector<std::pair<TLLSignature, cmListFileBacktrace> > Container;
+  std::vector<cmListFileContext> sigs;
+  typedef std::vector<std::pair<TLLSignature, cmListFileContext> > Container;
   for(Container::const_iterator it = this->TLLCommands.begin();
       it != this->TLLCommands.end(); ++it)
     {
@@ -1258,6 +1258,7 @@ void cmTarget::GetTllSignatureTraces(std::ostringstream &s,
       sigs.push_back(it->second);
       }
     }
+  cmLocalGenerator* lg = this->GetMakefile()->GetLocalGenerator();
   if (!sigs.empty())
     {
     const char *sigString
@@ -1265,20 +1266,16 @@ void cmTarget::GetTllSignatureTraces(std::ostringstream &s,
                                                                 : "plain");
     s << "The uses of the " << sigString << " signature are here:\n";
     UNORDERED_SET<std::string> emitted;
-    for(std::vector<cmListFileBacktrace>::iterator it = sigs.begin();
+    for(std::vector<cmListFileContext>::iterator it = sigs.begin();
         it != sigs.end(); ++it)
       {
-      it->MakeRelative();
-      cmListFileBacktrace::const_iterator i = it->begin();
-      if(i != it->end())
+      cmListFileContext lfc = *it;
+      lfc.FilePath = lg->Convert(lfc.FilePath, cmLocalGenerator::HOME);
+      std::ostringstream line;
+      line << " * " << (lfc.Line? "": " in ") << lfc << std::endl;
+      if (emitted.insert(line.str()).second)
         {
-        cmListFileContext const& lfc = *i;
-        std::ostringstream line;
-        line << " * " << (lfc.Line? "": " in ") << lfc << std::endl;
-        if (emitted.insert(line.str()).second)
-          {
-          s << line.str();
-          }
+        s << line.str();
         }
       }
     }

+ 1 - 1
Source/cmTarget.h

@@ -641,7 +641,7 @@ private:
   // directories.
   std::set<std::string> SystemIncludeDirectories;
 
-  std::vector<std::pair<TLLSignature, cmListFileBacktrace> > TLLCommands;
+  std::vector<std::pair<TLLSignature, cmListFileContext> > TLLCommands;
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
   /**