cmGeneratorTarget: Move ComputePDBOutputDir from cmTarget.
This commit is contained in:
parent
49017cddab
commit
bf5eb4a3f3
|
@ -1780,8 +1780,7 @@ cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo(
|
|||
if(i == this->CompileInfoMap.end())
|
||||
{
|
||||
CompileInfo info;
|
||||
this->Target
|
||||
->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
|
||||
this->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
|
||||
CompileInfoMapType::value_type entry(config_upper, info);
|
||||
i = this->CompileInfoMap.insert(entry).first;
|
||||
}
|
||||
|
@ -4519,7 +4518,7 @@ cmGeneratorTarget::OutputInfo const* cmGeneratorTarget::GetOutputInfo(
|
|||
// Compute output directories.
|
||||
this->ComputeOutputDir(config, false, info.OutDir);
|
||||
this->ComputeOutputDir(config, true, info.ImpDir);
|
||||
if(!this->Target->ComputePDBOutputDir("PDB", config, info.PdbDir))
|
||||
if(!this->ComputePDBOutputDir("PDB", config, info.PdbDir))
|
||||
{
|
||||
info.PdbDir = info.OutDir;
|
||||
}
|
||||
|
@ -4634,6 +4633,67 @@ bool cmGeneratorTarget::ComputeOutputDir(const std::string& config,
|
|||
return usesDefaultOutputDir;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmGeneratorTarget::ComputePDBOutputDir(const std::string& kind,
|
||||
const std::string& config,
|
||||
std::string& out) const
|
||||
{
|
||||
// Look for a target property defining the target output directory
|
||||
// based on the target type.
|
||||
const char* propertyName = 0;
|
||||
std::string propertyNameStr = kind;
|
||||
if(!propertyNameStr.empty())
|
||||
{
|
||||
propertyNameStr += "_OUTPUT_DIRECTORY";
|
||||
propertyName = propertyNameStr.c_str();
|
||||
}
|
||||
std::string conf = config;
|
||||
|
||||
// Check for a per-configuration output directory target property.
|
||||
std::string configUpper = cmSystemTools::UpperCase(conf);
|
||||
const char* configProp = 0;
|
||||
std::string configPropStr = kind;
|
||||
if(!configPropStr.empty())
|
||||
{
|
||||
configPropStr += "_OUTPUT_DIRECTORY_";
|
||||
configPropStr += configUpper;
|
||||
configProp = configPropStr.c_str();
|
||||
}
|
||||
|
||||
// Select an output directory.
|
||||
if(const char* config_outdir = this->GetProperty(configProp))
|
||||
{
|
||||
// Use the user-specified per-configuration output directory.
|
||||
out = config_outdir;
|
||||
|
||||
// Skip per-configuration subdirectory.
|
||||
conf = "";
|
||||
}
|
||||
else if(const char* outdir = this->GetProperty(propertyName))
|
||||
{
|
||||
// Use the user-specified output directory.
|
||||
out = outdir;
|
||||
}
|
||||
if(out.empty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Convert the output path to a full path in case it is
|
||||
// specified as a relative path. Treat a relative path as
|
||||
// relative to the current output directory for this makefile.
|
||||
out = (cmSystemTools::CollapseFullPath
|
||||
(out, this->Makefile->GetCurrentBinaryDirectory()));
|
||||
|
||||
// The generator may add the configuration's subdirectory.
|
||||
if(!conf.empty())
|
||||
{
|
||||
this->LocalGenerator->GetGlobalGenerator()->
|
||||
AppendDirectoryForConfig("/", conf, "", out);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
cmGeneratorTarget::ComputeLinkInterfaceLibraries(
|
||||
|
|
|
@ -528,6 +528,9 @@ private:
|
|||
mutable bool DebugSourcesDone;
|
||||
mutable bool LinkImplementationLanguageIsContextDependent;
|
||||
|
||||
bool ComputePDBOutputDir(const std::string& kind, const std::string& config,
|
||||
std::string& out) const;
|
||||
|
||||
public:
|
||||
std::vector<cmTarget const*> const&
|
||||
GetLinkImplementationClosure(const std::string& config) const;
|
||||
|
|
|
@ -2447,67 +2447,6 @@ const char* cmTarget::GetOutputTargetType(bool implib) const
|
|||
return "";
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::ComputePDBOutputDir(const std::string& kind,
|
||||
const std::string& config,
|
||||
std::string& out) const
|
||||
{
|
||||
// Look for a target property defining the target output directory
|
||||
// based on the target type.
|
||||
const char* propertyName = 0;
|
||||
std::string propertyNameStr = kind;
|
||||
if(!propertyNameStr.empty())
|
||||
{
|
||||
propertyNameStr += "_OUTPUT_DIRECTORY";
|
||||
propertyName = propertyNameStr.c_str();
|
||||
}
|
||||
std::string conf = config;
|
||||
|
||||
// Check for a per-configuration output directory target property.
|
||||
std::string configUpper = cmSystemTools::UpperCase(conf);
|
||||
const char* configProp = 0;
|
||||
std::string configPropStr = kind;
|
||||
if(!configPropStr.empty())
|
||||
{
|
||||
configPropStr += "_OUTPUT_DIRECTORY_";
|
||||
configPropStr += configUpper;
|
||||
configProp = configPropStr.c_str();
|
||||
}
|
||||
|
||||
// Select an output directory.
|
||||
if(const char* config_outdir = this->GetProperty(configProp))
|
||||
{
|
||||
// Use the user-specified per-configuration output directory.
|
||||
out = config_outdir;
|
||||
|
||||
// Skip per-configuration subdirectory.
|
||||
conf = "";
|
||||
}
|
||||
else if(const char* outdir = this->GetProperty(propertyName))
|
||||
{
|
||||
// Use the user-specified output directory.
|
||||
out = outdir;
|
||||
}
|
||||
if(out.empty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Convert the output path to a full path in case it is
|
||||
// specified as a relative path. Treat a relative path as
|
||||
// relative to the current output directory for this makefile.
|
||||
out = (cmSystemTools::CollapseFullPath
|
||||
(out, this->Makefile->GetCurrentBinaryDirectory()));
|
||||
|
||||
// The generator may add the configuration's subdirectory.
|
||||
if(!conf.empty())
|
||||
{
|
||||
this->Makefile->GetGlobalGenerator()->
|
||||
AppendDirectoryForConfig("/", conf, "", out);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFrameworkVersion() const
|
||||
{
|
||||
|
|
|
@ -467,9 +467,6 @@ private:
|
|||
bool LinkLibrariesForVS6Analyzed;
|
||||
#endif
|
||||
|
||||
bool ComputePDBOutputDir(const std::string& kind, const std::string& config,
|
||||
std::string& out) const;
|
||||
|
||||
// Cache import information from properties for each configuration.
|
||||
struct ImportInfo
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue