cmGeneratorTarget: Move CompileInfoMap from cmTarget.
This commit is contained in:
parent
b3f0e35308
commit
f83e84028a
|
@ -1356,6 +1356,46 @@ cmGeneratorTarget::GetMacContentDirectory(const std::string& config,
|
||||||
return fpath;
|
return fpath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo(
|
||||||
|
const std::string& config) const
|
||||||
|
{
|
||||||
|
// There is no compile information for imported targets.
|
||||||
|
if(this->IsImported())
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this->GetType() > cmTarget::OBJECT_LIBRARY)
|
||||||
|
{
|
||||||
|
std::string msg = "cmTarget::GetCompileInfo called for ";
|
||||||
|
msg += this->GetName();
|
||||||
|
msg += " which has type ";
|
||||||
|
msg += cmTarget::GetTargetTypeName(this->Target->GetType());
|
||||||
|
this->Makefile->IssueMessage(cmake::INTERNAL_ERROR, msg);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lookup/compute/cache the compile information for this configuration.
|
||||||
|
std::string config_upper;
|
||||||
|
if(!config.empty())
|
||||||
|
{
|
||||||
|
config_upper = cmSystemTools::UpperCase(config);
|
||||||
|
}
|
||||||
|
CompileInfoMapType::const_iterator i =
|
||||||
|
this->CompileInfoMap.find(config_upper);
|
||||||
|
if(i == this->CompileInfoMap.end())
|
||||||
|
{
|
||||||
|
CompileInfo info;
|
||||||
|
this->Target
|
||||||
|
->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
|
||||||
|
CompileInfoMapType::value_type entry(config_upper, info);
|
||||||
|
i = this->CompileInfoMap.insert(entry).first;
|
||||||
|
}
|
||||||
|
return &i->second;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
std::string
|
std::string
|
||||||
cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const
|
cmGeneratorTarget::GetModuleDefinitionFile(const std::string& config) const
|
||||||
|
@ -1827,7 +1867,7 @@ void cmGeneratorTarget::TraceDependencies()
|
||||||
std::string
|
std::string
|
||||||
cmGeneratorTarget::GetCompilePDBDirectory(const std::string& config) const
|
cmGeneratorTarget::GetCompilePDBDirectory(const std::string& config) const
|
||||||
{
|
{
|
||||||
if(cmTarget::CompileInfo const* info = this->Target->GetCompileInfo(config))
|
if(CompileInfo const* info = this->GetCompileInfo(config))
|
||||||
{
|
{
|
||||||
return info->CompilePdbDir;
|
return info->CompilePdbDir;
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,6 +230,16 @@ 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;
|
||||||
|
|
||||||
|
struct CompileInfo
|
||||||
|
{
|
||||||
|
std::string CompilePdbDir;
|
||||||
|
};
|
||||||
|
|
||||||
|
CompileInfo const* GetCompileInfo(const std::string& config) const;
|
||||||
|
|
||||||
|
typedef std::map<std::string, CompileInfo> CompileInfoMapType;
|
||||||
|
mutable CompileInfoMapType CompileInfoMap;
|
||||||
|
|
||||||
/** Get the name of the compiler pdb file for the target. */
|
/** Get the name of the compiler pdb file for the target. */
|
||||||
std::string GetCompilePDBName(const std::string& config="") const;
|
std::string GetCompilePDBName(const std::string& config="") const;
|
||||||
|
|
||||||
|
|
|
@ -126,9 +126,6 @@ public:
|
||||||
typedef std::map<std::string, cmTarget::ImportInfo> ImportInfoMapType;
|
typedef std::map<std::string, cmTarget::ImportInfo> ImportInfoMapType;
|
||||||
ImportInfoMapType ImportInfoMap;
|
ImportInfoMapType ImportInfoMap;
|
||||||
|
|
||||||
typedef std::map<std::string, cmTarget::CompileInfo> CompileInfoMapType;
|
|
||||||
CompileInfoMapType CompileInfoMap;
|
|
||||||
|
|
||||||
// Cache link implementation computation from each configuration.
|
// Cache link implementation computation from each configuration.
|
||||||
struct OptionalLinkImplementation: public cmTarget::LinkImplementation
|
struct OptionalLinkImplementation: public cmTarget::LinkImplementation
|
||||||
{
|
{
|
||||||
|
@ -2597,45 +2594,6 @@ cmTarget::OutputInfo const* cmTarget::GetOutputInfo(
|
||||||
return &i->second;
|
return &i->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
cmTarget::CompileInfo const* cmTarget::GetCompileInfo(
|
|
||||||
const std::string& config) const
|
|
||||||
{
|
|
||||||
// There is no compile information for imported targets.
|
|
||||||
if(this->IsImported())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this->GetType() > cmTarget::OBJECT_LIBRARY)
|
|
||||||
{
|
|
||||||
std::string msg = "cmTarget::GetCompileInfo called for ";
|
|
||||||
msg += this->GetName();
|
|
||||||
msg += " which has type ";
|
|
||||||
msg += cmTarget::GetTargetTypeName(this->GetType());
|
|
||||||
this->GetMakefile()->IssueMessage(cmake::INTERNAL_ERROR, msg);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lookup/compute/cache the compile information for this configuration.
|
|
||||||
std::string config_upper;
|
|
||||||
if(!config.empty())
|
|
||||||
{
|
|
||||||
config_upper = cmSystemTools::UpperCase(config);
|
|
||||||
}
|
|
||||||
typedef cmTargetInternals::CompileInfoMapType CompileInfoMapType;
|
|
||||||
CompileInfoMapType::const_iterator i =
|
|
||||||
this->Internal->CompileInfoMap.find(config_upper);
|
|
||||||
if(i == this->Internal->CompileInfoMap.end())
|
|
||||||
{
|
|
||||||
CompileInfo info;
|
|
||||||
this->ComputePDBOutputDir("COMPILE_PDB", config, info.CompilePdbDir);
|
|
||||||
CompileInfoMapType::value_type entry(config_upper, info);
|
|
||||||
i = this->Internal->CompileInfoMap.insert(entry).first;
|
|
||||||
}
|
|
||||||
return &i->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
std::string cmTarget::GetDirectory(const std::string& config,
|
std::string cmTarget::GetDirectory(const std::string& config,
|
||||||
bool implib) const
|
bool implib) const
|
||||||
|
|
|
@ -626,13 +626,6 @@ private:
|
||||||
void ComputeImportInfo(std::string const& desired_config,
|
void ComputeImportInfo(std::string const& desired_config,
|
||||||
ImportInfo& info) const;
|
ImportInfo& info) const;
|
||||||
|
|
||||||
// Cache target compile paths for each configuration.
|
|
||||||
struct CompileInfo
|
|
||||||
{
|
|
||||||
std::string CompilePdbDir;
|
|
||||||
};
|
|
||||||
|
|
||||||
CompileInfo const* GetCompileInfo(const std::string& config) const;
|
|
||||||
|
|
||||||
LinkInterface const*
|
LinkInterface const*
|
||||||
GetImportLinkInterface(const std::string& config, cmTarget const* head,
|
GetImportLinkInterface(const std::string& config, cmTarget const* head,
|
||||||
|
|
Loading…
Reference in New Issue