summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-09-20 06:32:58 (GMT)
committerStephen Kelly <steveire@gmail.com>2012-09-20 06:34:30 (GMT)
commit879fd354c1db7da04ab244ab8262ec1391ff30e6 (patch)
tree27d05a0b00e18290b309d5f03231182a5e1027d3 /Source
parent6674583caa20244d90aa14a67d059e7228a9f169 (diff)
downloadCMake-879fd354c1db7da04ab244ab8262ec1391ff30e6.zip
CMake-879fd354c1db7da04ab244ab8262ec1391ff30e6.tar.gz
CMake-879fd354c1db7da04ab244ab8262ec1391ff30e6.tar.bz2
Revert "Move GenerateTargetManifest to cmGeneratorTarget."
This reverts commit 987e12e2f962b6e9ed9f15f8ff486512911b744e. GenerateTargetManifest is called by the global generator before it creates the generator targets, so we can't move it to cmGeneratorTarget yet.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx72
-rw-r--r--Source/cmGeneratorTarget.h3
-rw-r--r--Source/cmLocalGenerator.cxx7
-rw-r--r--Source/cmTarget.cxx70
-rw-r--r--Source/cmTarget.h3
5 files changed, 76 insertions, 79 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index db88834..91f16d1 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -219,78 +219,6 @@ void cmGeneratorTarget::UseObjectLibraries(std::vector<std::string>& objs)
}
//----------------------------------------------------------------------------
-void cmGeneratorTarget::GenerateTargetManifest(const char* config)
-{
- cmMakefile* mf = this->Target->GetMakefile();
- cmLocalGenerator* lg = mf->GetLocalGenerator();
- cmGlobalGenerator* gg = lg->GetGlobalGenerator();
-
- // Get the names.
- std::string name;
- std::string soName;
- std::string realName;
- std::string impName;
- std::string pdbName;
- if(this->GetType() == cmTarget::EXECUTABLE)
- {
- this->Target->GetExecutableNames(name, realName, impName, pdbName,
- config);
- }
- else if(this->GetType() == cmTarget::STATIC_LIBRARY ||
- this->GetType() == cmTarget::SHARED_LIBRARY ||
- this->GetType() == cmTarget::MODULE_LIBRARY)
- {
- this->Target->GetLibraryNames(name, soName, realName, impName, pdbName,
- config);
- }
- else
- {
- return;
- }
-
- // Get the directory.
- std::string dir = this->Target->GetDirectory(config, false);
-
- // Add each name.
- std::string f;
- if(!name.empty())
- {
- f = dir;
- f += "/";
- f += name;
- gg->AddToManifest(config? config:"", f);
- }
- if(!soName.empty())
- {
- f = dir;
- f += "/";
- f += soName;
- gg->AddToManifest(config? config:"", f);
- }
- if(!realName.empty())
- {
- f = dir;
- f += "/";
- f += realName;
- gg->AddToManifest(config? config:"", f);
- }
- if(!pdbName.empty())
- {
- f = dir;
- f += "/";
- f += pdbName;
- gg->AddToManifest(config? config:"", f);
- }
- if(!impName.empty())
- {
- f = this->Target->GetDirectory(config, true);
- f += "/";
- f += impName;
- gg->AddToManifest(config? config:"", f);
- }
-}
-
-//----------------------------------------------------------------------------
cmComputeLinkInformation*
cmGeneratorTarget::GetLinkInformation(const char* config)
{
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 060e25a..4487c11 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -60,9 +60,6 @@ public:
void UseObjectLibraries(std::vector<std::string>& objs);
- /** Add the target output files to the global generator manifest. */
- void GenerateTargetManifest(const char* config);
-
std::map<cmStdString, cmComputeLinkInformation*> LinkInformation;
cmComputeLinkInformation* GetLinkInformation(const char* config);
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 662f876..62b6ce7 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -533,11 +533,10 @@ void cmLocalGenerator::GenerateTargetManifest()
this->Makefile->GetConfigurations(configNames);
// Add our targets to the manifest for each configuration.
- cmGeneratorTargetsType targets = this->Makefile->GetGeneratorTargets();
- for(cmGeneratorTargetsType::iterator t = targets.begin();
- t != targets.end(); ++t)
+ cmTargets& targets = this->Makefile->GetTargets();
+ for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t)
{
- cmGeneratorTarget& target = *t->second;
+ cmTarget& target = t->second;
if(configNames.empty())
{
target.GenerateTargetManifest(0);
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 5a47d17..532d482 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3495,6 +3495,76 @@ bool cmTarget::GetImplibGNUtoMS(std::string const& gnuName,
}
//----------------------------------------------------------------------------
+void cmTarget::GenerateTargetManifest(const char* config)
+{
+ cmMakefile* mf = this->Makefile;
+ cmLocalGenerator* lg = mf->GetLocalGenerator();
+ cmGlobalGenerator* gg = lg->GetGlobalGenerator();
+
+ // Get the names.
+ std::string name;
+ std::string soName;
+ std::string realName;
+ std::string impName;
+ std::string pdbName;
+ if(this->GetType() == cmTarget::EXECUTABLE)
+ {
+ this->GetExecutableNames(name, realName, impName, pdbName, config);
+ }
+ else if(this->GetType() == cmTarget::STATIC_LIBRARY ||
+ this->GetType() == cmTarget::SHARED_LIBRARY ||
+ this->GetType() == cmTarget::MODULE_LIBRARY)
+ {
+ this->GetLibraryNames(name, soName, realName, impName, pdbName, config);
+ }
+ else
+ {
+ return;
+ }
+
+ // Get the directory.
+ std::string dir = this->GetDirectory(config, false);
+
+ // Add each name.
+ std::string f;
+ if(!name.empty())
+ {
+ f = dir;
+ f += "/";
+ f += name;
+ gg->AddToManifest(config? config:"", f);
+ }
+ if(!soName.empty())
+ {
+ f = dir;
+ f += "/";
+ f += soName;
+ gg->AddToManifest(config? config:"", f);
+ }
+ if(!realName.empty())
+ {
+ f = dir;
+ f += "/";
+ f += realName;
+ gg->AddToManifest(config? config:"", f);
+ }
+ if(!pdbName.empty())
+ {
+ f = dir;
+ f += "/";
+ f += pdbName;
+ gg->AddToManifest(config? config:"", f);
+ }
+ if(!impName.empty())
+ {
+ f = this->GetDirectory(config, true);
+ f += "/";
+ f += impName;
+ gg->AddToManifest(config? config:"", f);
+ }
+}
+
+//----------------------------------------------------------------------------
void cmTarget::SetPropertyDefault(const char* property,
const char* default_value)
{
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index a025eea..1f6bb46 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -367,6 +367,9 @@ public:
bool GetImplibGNUtoMS(std::string const& gnuName, std::string& out,
const char* newExt = 0);
+ /** Add the target output files to the global generator manifest. */
+ void GenerateTargetManifest(const char* config);
+
/**
* Compute whether this target must be relinked before installing.
*/