[Cmake-commits] CMake branch, next, updated. v2.8.12.1-7066-g216002c

Stephen Kelly steveire at gmail.com
Mon Jan 13 10:13:03 EST 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  216002c858720a4ba7557bd13e0230c26dd86fe2 (commit)
       via  a7f393dc49e1b5f57d90075e0a9f7709d4a4ce90 (commit)
      from  e193e89870b0225740902fc0ccda2e15ce02e27d (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=216002c858720a4ba7557bd13e0230c26dd86fe2
commit 216002c858720a4ba7557bd13e0230c26dd86fe2
Merge: e193e89 a7f393d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jan 13 10:13:01 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 13 10:13:01 2014 -0500

    Merge topic 'fix-find-package-mode' into next
    
    a7f393dc cmake: Future-proof --find-package mode.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a7f393dc49e1b5f57d90075e0a9f7709d4a4ce90
commit a7f393dc49e1b5f57d90075e0a9f7709d4a4ce90
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 11 14:17:03 2014 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Mon Jan 13 16:09:15 2014 +0100

    cmake: Future-proof --find-package mode.
    
    Create cmGeneratorTargets before generating generate-time information.
    C++ interfaces for querying build information is increasingly only
    available at generate time through the cmGeneratorTarget class.  Ensure
    that the required cmGeneratorTarget instances are created.  Use the
    cmGlobalGenerator access API to access the relevant cmGeneratorTarget
    instead of creating a temporary one on the stack.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index f883fbe..5a6b9b0 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1375,35 +1375,37 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
 }
 
 //----------------------------------------------------------------------------
+void cmGlobalGenerator::CreateGeneratorTargets(cmMakefile *mf)
+{
+  cmGeneratorTargetsType generatorTargets;
+  cmTargets& targets = mf->GetTargets();
+  for(cmTargets::iterator ti = targets.begin();
+      ti != targets.end(); ++ti)
+    {
+    cmTarget* t = &ti->second;
+    cmGeneratorTarget* gt = new cmGeneratorTarget(t);
+    this->GeneratorTargets[t] = gt;
+    generatorTargets[t] = gt;
+    }
+
+  for(std::vector<cmTarget*>::const_iterator
+        j = mf->GetOwnedImportedTargets().begin();
+      j != mf->GetOwnedImportedTargets().end(); ++j)
+    {
+    cmGeneratorTarget* gt = new cmGeneratorTarget(*j);
+    this->GeneratorTargets[*j] = gt;
+    generatorTargets[*j] = gt;
+    }
+  mf->SetGeneratorTargets(generatorTargets);
+}
+
+//----------------------------------------------------------------------------
 void cmGlobalGenerator::CreateGeneratorTargets()
 {
   // Construct per-target generator information.
   for(unsigned int i=0; i < this->LocalGenerators.size(); ++i)
     {
-    cmGeneratorTargetsType generatorTargets;
-
-    cmMakefile *mf = this->LocalGenerators[i]->GetMakefile();
-
-    cmTargets& targets = mf->GetTargets();
-    for(cmTargets::iterator ti = targets.begin();
-        ti != targets.end(); ++ti)
-      {
-      cmTarget* t = &ti->second;
-      cmGeneratorTarget* gt = new cmGeneratorTarget(t);
-      this->GeneratorTargets[t] = gt;
-      generatorTargets[t] = gt;
-      }
-
-    for(std::vector<cmTarget*>::const_iterator
-          j = mf->GetOwnedImportedTargets().begin();
-        j != mf->GetOwnedImportedTargets().end(); ++j)
-      {
-      cmGeneratorTarget* gt = new cmGeneratorTarget(*j);
-      this->GeneratorTargets[*j] = gt;
-      generatorTargets[*j] = gt;
-      }
-
-    mf->SetGeneratorTargets(generatorTargets);
+    this->CreateGeneratorTargets(this->LocalGenerators[i]->GetMakefile());
     }
 }
 
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index fc5cab9..bbfe442 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -432,6 +432,8 @@ private:
 
   // Per-target generator information.
   cmGeneratorTargetsType GeneratorTargets;
+  friend class cmake;
+  void CreateGeneratorTargets(cmMakefile* mf);
   void CreateGeneratorTargets();
   void ComputeGeneratorTargetObjects();
   virtual void ComputeTargetObjects(cmGeneratorTarget* gt) const;
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 1dd8a66..cf4b9c3 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -593,9 +593,10 @@ bool cmake::FindPackage(const std::vector<std::string>& args)
     std::string linkPath;
     std::string flags;
     std::string linkFlags;
-    cmGeneratorTarget gtgt(tgt);
+    gg->CreateGeneratorTargets(mf);
+    cmGeneratorTarget *gtgt = gg->GetGeneratorTarget(tgt);
     lg->GetTargetFlags(linkLibs, frameworkPath, linkPath, flags, linkFlags,
-                       &gtgt);
+                       gtgt);
     linkLibs = frameworkPath + linkPath + linkLibs;
 
     printf("%s\n", linkLibs.c_str() );

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list