Commit 8dd00d5b authored by Brad King's avatar Brad King
Browse files

BUG: Fixed relink with new install framework.

parent b6e4bc05
...@@ -26,6 +26,7 @@ cmInstallTargetGenerator ...@@ -26,6 +26,7 @@ cmInstallTargetGenerator
::cmInstallTargetGenerator(cmTarget& t, const char* dest, bool implib): ::cmInstallTargetGenerator(cmTarget& t, const char* dest, bool implib):
Target(&t), Destination(dest), ImportLibrary(implib) Target(&t), Destination(dest), ImportLibrary(implib)
{ {
this->Target->SetHaveInstallRule(true);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
......
...@@ -46,6 +46,7 @@ bool cmInstallTargetsCommand::InitialPass(std::vector<std::string> const& args) ...@@ -46,6 +46,7 @@ bool cmInstallTargetsCommand::InitialPass(std::vector<std::string> const& args)
{ {
tgts[*s].SetInstallPath(args[0].c_str()); tgts[*s].SetInstallPath(args[0].c_str());
tgts[*s].SetRuntimeInstallPath(runtime_dir.c_str()); tgts[*s].SetRuntimeInstallPath(runtime_dir.c_str());
tgts[*s].SetHaveInstallRule(true);
} }
else else
{ {
......
...@@ -30,6 +30,7 @@ cmTarget::cmTarget() ...@@ -30,6 +30,7 @@ cmTarget::cmTarget()
m_Makefile = 0; m_Makefile = 0;
m_LinkLibrariesAnalyzed = false; m_LinkLibrariesAnalyzed = false;
m_LinkDirectoriesComputed = false; m_LinkDirectoriesComputed = false;
m_HaveInstallRule = false;
} }
void cmTarget::SetType(TargetType type, const char* name) void cmTarget::SetType(TargetType type, const char* name)
...@@ -1390,7 +1391,7 @@ bool cmTarget::NeedRelinkBeforeInstall() ...@@ -1390,7 +1391,7 @@ bool cmTarget::NeedRelinkBeforeInstall()
// If there is no install location this target will not be installed // If there is no install location this target will not be installed
// and therefore does not need relinking. // and therefore does not need relinking.
if(this->GetInstallPath().empty()) if(!this->GetHaveInstallRule())
{ {
return false; return false;
} }
......
...@@ -129,7 +129,13 @@ public: ...@@ -129,7 +129,13 @@ public:
*/ */
std::string GetRuntimeInstallPath() {return m_RuntimeInstallPath;} std::string GetRuntimeInstallPath() {return m_RuntimeInstallPath;}
void SetRuntimeInstallPath(const char *name) {m_RuntimeInstallPath = name;} void SetRuntimeInstallPath(const char *name) {m_RuntimeInstallPath = name;}
/**
* Get/Set whether there is an install rule for this target.
*/
bool GetHaveInstallRule() { return m_HaveInstallRule; }
void SetHaveInstallRule(bool h) { m_HaveInstallRule = h; }
/** /**
* Generate the SourceFilesList from the SourceLists. This should only be * Generate the SourceFilesList from the SourceLists. This should only be
* done once to be safe. * done once to be safe.
...@@ -309,6 +315,7 @@ private: ...@@ -309,6 +315,7 @@ private:
std::vector<std::string> m_Frameworks; std::vector<std::string> m_Frameworks;
std::vector<std::string> m_LinkDirectories; std::vector<std::string> m_LinkDirectories;
std::vector<std::string> m_ExplicitLinkDirectories; std::vector<std::string> m_ExplicitLinkDirectories;
bool m_HaveInstallRule;
std::string m_InstallPath; std::string m_InstallPath;
std::string m_RuntimeInstallPath; std::string m_RuntimeInstallPath;
std::string m_Directory; std::string m_Directory;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment