cmInstallGenerator: Move GetDestination to subclasses that need it
The method is used only for EXPORT and TARGET install destinations. While at it, make it return a std::string by reference instead of a "const char*".
This commit is contained in:
parent
f00829a938
commit
f99991db88
|
@ -73,8 +73,8 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
||||||
// to reference if they are relative to the install prefix.
|
// to reference if they are relative to the install prefix.
|
||||||
std::string installPrefix =
|
std::string installPrefix =
|
||||||
this->IEGen->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_PREFIX");
|
this->IEGen->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_PREFIX");
|
||||||
const char* installDest = this->IEGen->GetDestination();
|
std::string const& expDest = this->IEGen->GetDestination();
|
||||||
if(cmSystemTools::FileIsFullPath(installDest))
|
if(cmSystemTools::FileIsFullPath(expDest))
|
||||||
{
|
{
|
||||||
// The export file is being installed to an absolute path so the
|
// The export file is being installed to an absolute path so the
|
||||||
// package is not relocatable. Use the configured install prefix.
|
// package is not relocatable. Use the configured install prefix.
|
||||||
|
@ -87,7 +87,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
||||||
{
|
{
|
||||||
// Add code to compute the installation prefix relative to the
|
// Add code to compute the installation prefix relative to the
|
||||||
// import file location.
|
// import file location.
|
||||||
std::string absDest = installPrefix + "/" + installDest;
|
std::string absDest = installPrefix + "/" + expDest;
|
||||||
std::string absDestS = absDest + "/";
|
std::string absDestS = absDest + "/";
|
||||||
os << "# Compute the installation prefix relative to this file.\n"
|
os << "# Compute the installation prefix relative to this file.\n"
|
||||||
<< "get_filename_component(_IMPORT_PREFIX"
|
<< "get_filename_component(_IMPORT_PREFIX"
|
||||||
|
@ -109,7 +109,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
||||||
"unset(_realOrig)\n"
|
"unset(_realOrig)\n"
|
||||||
"unset(_realCurr)\n";
|
"unset(_realCurr)\n";
|
||||||
}
|
}
|
||||||
std::string dest = installDest;
|
std::string dest = expDest;
|
||||||
while(!dest.empty())
|
while(!dest.empty())
|
||||||
{
|
{
|
||||||
os <<
|
os <<
|
||||||
|
|
|
@ -41,6 +41,9 @@ public:
|
||||||
|
|
||||||
const std::string& GetNamespace() const { return this->Namespace; }
|
const std::string& GetNamespace() const { return this->Namespace; }
|
||||||
|
|
||||||
|
std::string const& GetDestination() const
|
||||||
|
{ return this->Destination; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void GenerateScript(std::ostream& os);
|
virtual void GenerateScript(std::ostream& os);
|
||||||
virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent);
|
virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent);
|
||||||
|
|
|
@ -50,9 +50,6 @@ public:
|
||||||
Indent const& indent = Indent()
|
Indent const& indent = Indent()
|
||||||
);
|
);
|
||||||
|
|
||||||
const char* GetDestination() const
|
|
||||||
{ return this->Destination.c_str(); }
|
|
||||||
|
|
||||||
/** Get the install destination as it should appear in the
|
/** Get the install destination as it should appear in the
|
||||||
installation script. */
|
installation script. */
|
||||||
std::string GetInstallDestination() const;
|
std::string GetInstallDestination() const;
|
||||||
|
|
|
@ -60,6 +60,9 @@ public:
|
||||||
cmTarget* GetTarget() const { return this->Target; }
|
cmTarget* GetTarget() const { return this->Target; }
|
||||||
bool IsImportLibrary() const { return this->ImportLibrary; }
|
bool IsImportLibrary() const { return this->ImportLibrary; }
|
||||||
|
|
||||||
|
std::string const& GetDestination() const
|
||||||
|
{ return this->Destination; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void GenerateScript(std::ostream& os);
|
virtual void GenerateScript(std::ostream& os);
|
||||||
virtual void GenerateScriptForConfig(std::ostream& os,
|
virtual void GenerateScriptForConfig(std::ostream& os,
|
||||||
|
|
Loading…
Reference in New Issue