summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-06-19 17:10:21 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-06-19 17:10:21 (GMT)
commitc0d000d234525c709b8f6226d1c78c3cc0b632b3 (patch)
treefce16d3de49d612d0c545e2b385eed04b736a945 /Source/cmGlobalGenerator.cxx
parent617602e9e9e0ff57a3ef35e62e17d4a764edf920 (diff)
downloadCMake-c0d000d234525c709b8f6226d1c78c3cc0b632b3.zip
CMake-c0d000d234525c709b8f6226d1c78c3cc0b632b3.tar.gz
CMake-c0d000d234525c709b8f6226d1c78c3cc0b632b3.tar.bz2
ENH: add INSTALL(EXPORT ...) mode and INSTALL( TARGETS ... EXPORT <set> ) ,
tests still have to be added Alex
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r--Source/cmGlobalGenerator.cxx42
1 files changed, 40 insertions, 2 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 189f5e4..1835f6d 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -21,6 +21,7 @@
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmVersion.h"
+#include "cmInstallExportGenerator.h"
#include <stdlib.h> // required for atof
@@ -56,8 +57,7 @@ cmGlobalGenerator::cmGlobalGenerator()
cmGlobalGenerator::~cmGlobalGenerator()
{
// Delete any existing cmLocalGenerators
- unsigned int i;
- for (i = 0; i < this->LocalGenerators.size(); ++i)
+ for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
{
delete this->LocalGenerators[i];
}
@@ -67,6 +67,17 @@ cmGlobalGenerator::~cmGlobalGenerator()
{
delete this->ExtraGenerator;
}
+
+ for (std::map<cmStdString, std::vector<cmTargetExport*> >::iterator
+ setIt = this->ExportSets.begin();
+ setIt != this->ExportSets.end();
+ ++setIt)
+ {
+ for (unsigned int i = 0; i < setIt->second.size(); ++i)
+ {
+ delete setIt->second[i];
+ }
+ }
}
// Find the make program for the generator, required for try compiles
@@ -1014,6 +1025,33 @@ void cmGlobalGenerator::AddInstallComponent(const char* component)
}
}
+void cmGlobalGenerator::AddTargetToExports(const char* exportSetName,
+ cmTarget* target,
+ cmInstallTargetGenerator* archive,
+ cmInstallTargetGenerator* runTime,
+ cmInstallTargetGenerator* library)
+{
+ if ((exportSetName) && (*exportSetName) && (target))
+ {
+ cmTargetExport* te = new cmTargetExport(target, archive, runTime, library);
+ this->ExportSets[exportSetName].push_back(te);
+ }
+}
+
+const std::vector<cmTargetExport*>* cmGlobalGenerator::GetExportSet(
+ const char* name) const
+{
+ std::map<cmStdString, std::vector<cmTargetExport*> >::const_iterator
+ exportSetIt = this->ExportSets.find(name);
+ if (exportSetIt != this->ExportSets.end())
+ {
+ return &exportSetIt->second;
+ }
+
+ return 0;
+}
+
+
void cmGlobalGenerator::EnableInstallTarget()
{
this->InstallTargetEnabled = true;