cmGeneratorTarget: Move GetCompilePDBPath from cmTarget.
This commit is contained in:
parent
f0aa660772
commit
a45fed81e5
|
@ -656,6 +656,51 @@ void cmGeneratorTarget::GetSourceFiles(std::vector<cmSourceFile*> &files,
|
||||||
this->Target->GetSourceFiles(files, config);
|
this->Target->GetSourceFiles(files, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
std::string
|
||||||
|
cmGeneratorTarget::GetCompilePDBName(const std::string& config) const
|
||||||
|
{
|
||||||
|
std::string prefix;
|
||||||
|
std::string base;
|
||||||
|
std::string suffix;
|
||||||
|
this->Target->GetFullNameInternal(config, false, prefix, base, suffix);
|
||||||
|
|
||||||
|
// Check for a per-configuration output directory target property.
|
||||||
|
std::string configUpper = cmSystemTools::UpperCase(config);
|
||||||
|
std::string configProp = "COMPILE_PDB_NAME_";
|
||||||
|
configProp += configUpper;
|
||||||
|
const char* config_name = this->Target->GetProperty(configProp);
|
||||||
|
if(config_name && *config_name)
|
||||||
|
{
|
||||||
|
return prefix + config_name + ".pdb";
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* name = this->Target->GetProperty("COMPILE_PDB_NAME");
|
||||||
|
if(name && *name)
|
||||||
|
{
|
||||||
|
return prefix + name + ".pdb";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
std::string
|
||||||
|
cmGeneratorTarget::GetCompilePDBPath(const std::string& config) const
|
||||||
|
{
|
||||||
|
std::string dir = this->Target->GetCompilePDBDirectory(config);
|
||||||
|
std::string name = this->GetCompilePDBName(config);
|
||||||
|
if(dir.empty() && !name.empty())
|
||||||
|
{
|
||||||
|
dir = this->Target->GetPDBDirectory(config);
|
||||||
|
}
|
||||||
|
if(!dir.empty())
|
||||||
|
{
|
||||||
|
dir += "/";
|
||||||
|
}
|
||||||
|
return dir + name;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool cmGeneratorTarget::HasSOName(const std::string& config) const
|
bool cmGeneratorTarget::HasSOName(const std::string& config) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -163,6 +163,12 @@ public:
|
||||||
/** Whether this library has soname enabled and platform supports it. */
|
/** Whether this library has soname enabled and platform supports it. */
|
||||||
bool HasSOName(const std::string& config) const;
|
bool HasSOName(const std::string& config) const;
|
||||||
|
|
||||||
|
/** Get the name of the compiler pdb file for the target. */
|
||||||
|
std::string GetCompilePDBName(const std::string& config="") const;
|
||||||
|
|
||||||
|
/** Get the path for the MSVC /Fd option for this target. */
|
||||||
|
std::string GetCompilePDBPath(const std::string& config="") const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flags for a given source file as used in this target. Typically assigned
|
* Flags for a given source file as used in this target. Typically assigned
|
||||||
* via SET_TARGET_PROPERTIES when the property is a list of source files.
|
* via SET_TARGET_PROPERTIES when the property is a list of source files.
|
||||||
|
|
|
@ -881,7 +881,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
|
||||||
if(target.GetType() <= cmTarget::OBJECT_LIBRARY)
|
if(target.GetType() <= cmTarget::OBJECT_LIBRARY)
|
||||||
{
|
{
|
||||||
// Specify the compiler program database file if configured.
|
// Specify the compiler program database file if configured.
|
||||||
std::string pdb = target.GetCompilePDBPath(configName);
|
std::string pdb = gt->GetCompilePDBPath(configName);
|
||||||
if(!pdb.empty())
|
if(!pdb.empty())
|
||||||
{
|
{
|
||||||
fout << "\t\t\t\tProgramDataBaseFileName=\""
|
fout << "\t\t\t\tProgramDataBaseFileName=\""
|
||||||
|
|
|
@ -553,7 +553,7 @@ cmMakefileTargetGenerator
|
||||||
if(this->Target->GetType() <= cmTarget::OBJECT_LIBRARY)
|
if(this->Target->GetType() <= cmTarget::OBJECT_LIBRARY)
|
||||||
{
|
{
|
||||||
targetFullPathCompilePDB =
|
targetFullPathCompilePDB =
|
||||||
this->Target->GetCompilePDBPath(this->ConfigName);
|
this->GeneratorTarget->GetCompilePDBPath(this->ConfigName);
|
||||||
if(targetFullPathCompilePDB.empty())
|
if(targetFullPathCompilePDB.empty())
|
||||||
{
|
{
|
||||||
targetFullPathCompilePDB = this->Target->GetSupportDirectory() + "/";
|
targetFullPathCompilePDB = this->Target->GetSupportDirectory() + "/";
|
||||||
|
|
|
@ -277,7 +277,8 @@ bool cmNinjaTargetGenerator::SetMsvcTargetPdbVariable(cmNinjaVars& vars) const
|
||||||
}
|
}
|
||||||
if(this->Target->GetType() <= cmTarget::OBJECT_LIBRARY)
|
if(this->Target->GetType() <= cmTarget::OBJECT_LIBRARY)
|
||||||
{
|
{
|
||||||
compilePdbPath = this->Target->GetCompilePDBPath(this->GetConfigName());
|
compilePdbPath =
|
||||||
|
this->GeneratorTarget->GetCompilePDBPath(this->GetConfigName());
|
||||||
if(compilePdbPath.empty())
|
if(compilePdbPath.empty())
|
||||||
{
|
{
|
||||||
compilePdbPath = this->Target->GetSupportDirectory() + "/";
|
compilePdbPath = this->Target->GetSupportDirectory() + "/";
|
||||||
|
|
|
@ -3491,49 +3491,6 @@ std::string cmTarget::GetPDBName(const std::string& config) const
|
||||||
return prefix+base+".pdb";
|
return prefix+base+".pdb";
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
std::string cmTarget::GetCompilePDBName(const std::string& config) const
|
|
||||||
{
|
|
||||||
std::string prefix;
|
|
||||||
std::string base;
|
|
||||||
std::string suffix;
|
|
||||||
this->GetFullNameInternal(config, false, prefix, base, suffix);
|
|
||||||
|
|
||||||
// Check for a per-configuration output directory target property.
|
|
||||||
std::string configUpper = cmSystemTools::UpperCase(config);
|
|
||||||
std::string configProp = "COMPILE_PDB_NAME_";
|
|
||||||
configProp += configUpper;
|
|
||||||
const char* config_name = this->GetProperty(configProp);
|
|
||||||
if(config_name && *config_name)
|
|
||||||
{
|
|
||||||
return prefix + config_name + ".pdb";
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* name = this->GetProperty("COMPILE_PDB_NAME");
|
|
||||||
if(name && *name)
|
|
||||||
{
|
|
||||||
return prefix + name + ".pdb";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
std::string cmTarget::GetCompilePDBPath(const std::string& config) const
|
|
||||||
{
|
|
||||||
std::string dir = this->GetCompilePDBDirectory(config);
|
|
||||||
std::string name = this->GetCompilePDBName(config);
|
|
||||||
if(dir.empty() && !name.empty())
|
|
||||||
{
|
|
||||||
dir = this->GetPDBDirectory(config);
|
|
||||||
}
|
|
||||||
if(!dir.empty())
|
|
||||||
{
|
|
||||||
dir += "/";
|
|
||||||
}
|
|
||||||
return dir + name;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool cmTarget::HasMacOSXRpathInstallNameDir(const std::string& config) const
|
bool cmTarget::HasMacOSXRpathInstallNameDir(const std::string& config) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -380,12 +380,6 @@ public:
|
||||||
/** Get the name of the pdb file for the target. */
|
/** Get the name of the pdb file for the target. */
|
||||||
std::string GetPDBName(const std::string& config) const;
|
std::string GetPDBName(const std::string& config) const;
|
||||||
|
|
||||||
/** Get the name of the compiler pdb file for the target. */
|
|
||||||
std::string GetCompilePDBName(const std::string& config="") const;
|
|
||||||
|
|
||||||
/** Get the path for the MSVC /Fd option for this target. */
|
|
||||||
std::string GetCompilePDBPath(const std::string& config="") const;
|
|
||||||
|
|
||||||
/** Whether this library has \@rpath and platform supports it. */
|
/** Whether this library has \@rpath and platform supports it. */
|
||||||
bool HasMacOSXRpathInstallNameDir(const std::string& config) const;
|
bool HasMacOSXRpathInstallNameDir(const std::string& config) const;
|
||||||
|
|
||||||
|
|
|
@ -2026,7 +2026,8 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Specify the compiler program database file if configured.
|
// Specify the compiler program database file if configured.
|
||||||
std::string pdb = this->Target->GetCompilePDBPath(configName.c_str());
|
std::string pdb =
|
||||||
|
this->GeneratorTarget->GetCompilePDBPath(configName.c_str());
|
||||||
if(!pdb.empty())
|
if(!pdb.empty())
|
||||||
{
|
{
|
||||||
this->ConvertToWindowsSlash(pdb);
|
this->ConvertToWindowsSlash(pdb);
|
||||||
|
|
Loading…
Reference in New Issue