|
|
@@ -16,6 +16,7 @@
|
|
|
#include "cmLocalGenerator.h"
|
|
|
#include "cmMakefile.h"
|
|
|
#include "cmake.h"
|
|
|
+#include "cmGeneratorTarget.h"
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
@@ -26,7 +27,8 @@ cmInstallTargetGenerator
|
|
|
std::vector<std::string> const& configurations,
|
|
|
const char* component, bool optional):
|
|
|
cmInstallGenerator(dest, configurations, component), Target(&t),
|
|
|
- ImportLibrary(implib), FilePermissions(file_permissions), Optional(optional)
|
|
|
+ ImportLibrary(implib), FilePermissions(file_permissions),
|
|
|
+ Optional(optional), GeneratorTarget(0)
|
|
|
{
|
|
|
this->ActionsPerConfig = true;
|
|
|
this->NamelinkMode = NamelinkModeNone;
|
|
|
@@ -484,6 +486,17 @@ void cmInstallTargetGenerator::PostReplacementTweaks(std::ostream& os,
|
|
|
this->AddStripRule(os, indent, file);
|
|
|
}
|
|
|
|
|
|
+void cmInstallTargetGenerator::CreateGeneratorTarget()
|
|
|
+{
|
|
|
+ if (!this->GeneratorTarget)
|
|
|
+ {
|
|
|
+ this->GeneratorTarget = this->Target->GetMakefile()
|
|
|
+ ->GetLocalGenerator()
|
|
|
+ ->GetGlobalGenerator()
|
|
|
+ ->GetGeneratorTarget(this->Target);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//----------------------------------------------------------------------------
|
|
|
void
|
|
|
cmInstallTargetGenerator
|
|
|
@@ -507,10 +520,13 @@ cmInstallTargetGenerator
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ this->CreateGeneratorTarget();
|
|
|
+
|
|
|
// Build a map of build-tree install_name to install-tree install_name for
|
|
|
// shared libraries linked to this target.
|
|
|
std::map<cmStdString, cmStdString> install_name_remap;
|
|
|
- if(cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config))
|
|
|
+ if(cmComputeLinkInformation* cli =
|
|
|
+ this->GeneratorTarget->GetLinkInformation(config))
|
|
|
{
|
|
|
std::set<cmTarget*> const& sharedLibs = cli->GetSharedLibrariesLinked();
|
|
|
for(std::set<cmTarget*>::const_iterator j = sharedLibs.begin();
|
|
|
@@ -608,9 +624,12 @@ cmInstallTargetGenerator
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ this->CreateGeneratorTarget();
|
|
|
+
|
|
|
// Get the link information for this target.
|
|
|
// It can provide the RPATH.
|
|
|
- cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config);
|
|
|
+ cmComputeLinkInformation* cli =
|
|
|
+ this->GeneratorTarget->GetLinkInformation(config);
|
|
|
if(!cli)
|
|
|
{
|
|
|
return;
|
|
|
@@ -639,9 +658,12 @@ cmInstallTargetGenerator
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ this->CreateGeneratorTarget();
|
|
|
+
|
|
|
// Get the link information for this target.
|
|
|
// It can provide the RPATH.
|
|
|
- cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config);
|
|
|
+ cmComputeLinkInformation* cli =
|
|
|
+ this->GeneratorTarget->GetLinkInformation(config);
|
|
|
if(!cli)
|
|
|
{
|
|
|
return;
|