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.
|
||||
std::string installPrefix =
|
||||
this->IEGen->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_PREFIX");
|
||||
const char* installDest = this->IEGen->GetDestination();
|
||||
if(cmSystemTools::FileIsFullPath(installDest))
|
||||
std::string const& expDest = this->IEGen->GetDestination();
|
||||
if(cmSystemTools::FileIsFullPath(expDest))
|
||||
{
|
||||
// The export file is being installed to an absolute path so the
|
||||
// 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
|
||||
// import file location.
|
||||
std::string absDest = installPrefix + "/" + installDest;
|
||||
std::string absDest = installPrefix + "/" + expDest;
|
||||
std::string absDestS = absDest + "/";
|
||||
os << "# Compute the installation prefix relative to this file.\n"
|
||||
<< "get_filename_component(_IMPORT_PREFIX"
|
||||
|
@ -109,7 +109,7 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
"unset(_realOrig)\n"
|
||||
"unset(_realCurr)\n";
|
||||
}
|
||||
std::string dest = installDest;
|
||||
std::string dest = expDest;
|
||||
while(!dest.empty())
|
||||
{
|
||||
os <<
|
||||
|
|
|
@ -41,6 +41,9 @@ public:
|
|||
|
||||
const std::string& GetNamespace() const { return this->Namespace; }
|
||||
|
||||
std::string const& GetDestination() const
|
||||
{ return this->Destination; }
|
||||
|
||||
protected:
|
||||
virtual void GenerateScript(std::ostream& os);
|
||||
virtual void GenerateScriptConfigs(std::ostream& os, Indent const& indent);
|
||||
|
|
|
@ -50,9 +50,6 @@ public:
|
|||
Indent const& indent = Indent()
|
||||
);
|
||||
|
||||
const char* GetDestination() const
|
||||
{ return this->Destination.c_str(); }
|
||||
|
||||
/** Get the install destination as it should appear in the
|
||||
installation script. */
|
||||
std::string GetInstallDestination() const;
|
||||
|
|
|
@ -60,6 +60,9 @@ public:
|
|||
cmTarget* GetTarget() const { return this->Target; }
|
||||
bool IsImportLibrary() const { return this->ImportLibrary; }
|
||||
|
||||
std::string const& GetDestination() const
|
||||
{ return this->Destination; }
|
||||
|
||||
protected:
|
||||
virtual void GenerateScript(std::ostream& os);
|
||||
virtual void GenerateScriptForConfig(std::ostream& os,
|
||||
|
|
Loading…
Reference in New Issue