[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,
- >gt);
+ 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