cmTarget: Make GetProperty() const.
This has follow-on effects for other methods and classes. Further work on making the use of const cmTarget pointers common can be done, particularly with a view to generate-time methods.
This commit is contained in:
parent
cfb6661333
commit
c4373b33b2
|
@ -172,7 +172,8 @@ satisfy dependencies.
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmComputeLinkDepends
|
||||
::cmComputeLinkDepends(cmTarget* target, const char* config, cmTarget* head)
|
||||
::cmComputeLinkDepends(cmTarget const* target, const char* config,
|
||||
cmTarget const* head)
|
||||
{
|
||||
// Store context information.
|
||||
this->Target = target;
|
||||
|
|
|
@ -32,7 +32,8 @@ class cmake;
|
|||
class cmComputeLinkDepends
|
||||
{
|
||||
public:
|
||||
cmComputeLinkDepends(cmTarget* target, const char* config, cmTarget *head);
|
||||
cmComputeLinkDepends(cmTarget const* target, const char* config,
|
||||
cmTarget const* head);
|
||||
~cmComputeLinkDepends();
|
||||
|
||||
// Basic information about each link item.
|
||||
|
@ -58,8 +59,8 @@ public:
|
|||
private:
|
||||
|
||||
// Context information.
|
||||
cmTarget* Target;
|
||||
cmTarget* HeadTarget;
|
||||
cmTarget const* Target;
|
||||
cmTarget const* HeadTarget;
|
||||
cmMakefile* Makefile;
|
||||
cmLocalGenerator* LocalGenerator;
|
||||
cmGlobalGenerator* GlobalGenerator;
|
||||
|
|
|
@ -239,8 +239,8 @@ because this need be done only for shared libraries without soname-s.
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmComputeLinkInformation
|
||||
::cmComputeLinkInformation(cmTarget* target, const char* config,
|
||||
cmTarget *headTarget)
|
||||
::cmComputeLinkInformation(cmTarget const* target, const char* config,
|
||||
cmTarget const* headTarget)
|
||||
{
|
||||
// Store context information.
|
||||
this->Target = target;
|
||||
|
|
|
@ -29,8 +29,8 @@ class cmOrderDirectories;
|
|||
class cmComputeLinkInformation
|
||||
{
|
||||
public:
|
||||
cmComputeLinkInformation(cmTarget* target, const char* config,
|
||||
cmTarget* headTarget);
|
||||
cmComputeLinkInformation(cmTarget const* target, const char* config,
|
||||
cmTarget const* headTarget);
|
||||
~cmComputeLinkInformation();
|
||||
bool Compute();
|
||||
|
||||
|
@ -74,8 +74,8 @@ private:
|
|||
std::set<cmTarget*> SharedLibrariesLinked;
|
||||
|
||||
// Context information.
|
||||
cmTarget* Target;
|
||||
cmTarget* HeadTarget;
|
||||
cmTarget const* Target;
|
||||
cmTarget const* HeadTarget;
|
||||
cmMakefile* Makefile;
|
||||
cmLocalGenerator* LocalGenerator;
|
||||
cmGlobalGenerator* GlobalGenerator;
|
||||
|
|
|
@ -34,7 +34,7 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
|
|||
std::string outputVariable;
|
||||
std::string copyFile;
|
||||
std::string copyFileError;
|
||||
std::vector<cmTarget*> targets;
|
||||
std::vector<cmTarget const*> targets;
|
||||
std::string libsToLink = " ";
|
||||
bool useOldLinkLibs = true;
|
||||
char targetNameBuf[64];
|
||||
|
|
|
@ -463,7 +463,7 @@ void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmExportFileGenerator::GenerateInterfaceProperties(cmTarget *target,
|
||||
void cmExportFileGenerator::GenerateInterfaceProperties(cmTarget const* target,
|
||||
std::ostream& os,
|
||||
const ImportPropertyMap &properties)
|
||||
{
|
||||
|
@ -885,7 +885,7 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode(std::ostream& os,
|
|||
//----------------------------------------------------------------------------
|
||||
void
|
||||
cmExportFileGenerator
|
||||
::GenerateImportTargetCode(std::ostream& os, cmTarget* target)
|
||||
::GenerateImportTargetCode(std::ostream& os, cmTarget const* target)
|
||||
{
|
||||
// Construct the imported target name.
|
||||
std::string targetName = this->Namespace;
|
||||
|
@ -951,7 +951,7 @@ cmExportFileGenerator
|
|||
void
|
||||
cmExportFileGenerator
|
||||
::GenerateImportPropertyCode(std::ostream& os, const char* config,
|
||||
cmTarget* target,
|
||||
cmTarget const* target,
|
||||
ImportPropertyMap const& properties)
|
||||
{
|
||||
// Construct the imported target name.
|
||||
|
|
|
@ -60,9 +60,9 @@ protected:
|
|||
void GenerateImportHeaderCode(std::ostream& os, const char* config = 0);
|
||||
void GenerateImportFooterCode(std::ostream& os);
|
||||
void GenerateImportVersionCode(std::ostream& os);
|
||||
void GenerateImportTargetCode(std::ostream& os, cmTarget* target);
|
||||
void GenerateImportTargetCode(std::ostream& os, cmTarget const* target);
|
||||
void GenerateImportPropertyCode(std::ostream& os, const char* config,
|
||||
cmTarget* target,
|
||||
cmTarget const* target,
|
||||
ImportPropertyMap const& properties);
|
||||
void GenerateImportedFileChecksCode(std::ostream& os, cmTarget* target,
|
||||
ImportPropertyMap const& properties,
|
||||
|
@ -115,7 +115,7 @@ protected:
|
|||
ImportPropertyMap &properties);
|
||||
void PopulateCompatibleInterfaceProperties(cmTarget *target,
|
||||
ImportPropertyMap &properties);
|
||||
void GenerateInterfaceProperties(cmTarget *target, std::ostream& os,
|
||||
void GenerateInterfaceProperties(cmTarget const* target, std::ostream& os,
|
||||
const ImportPropertyMap &properties);
|
||||
void PopulateIncludeDirectoriesInterface(
|
||||
cmTargetExport *target,
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmExportTryCompileFileGenerator::GenerateMainFile(std::ostream& os)
|
||||
{
|
||||
std::set<cmTarget*> emitted;
|
||||
std::set<cmTarget*> emittedDeps;
|
||||
std::set<cmTarget const*> emitted;
|
||||
std::set<cmTarget const*> emittedDeps;
|
||||
while(!this->Exports.empty())
|
||||
{
|
||||
cmTarget* te = this->Exports.back();
|
||||
cmTarget const* te = this->Exports.back();
|
||||
this->Exports.pop_back();
|
||||
if (emitted.insert(te).second)
|
||||
{
|
||||
|
@ -45,8 +45,8 @@ bool cmExportTryCompileFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
}
|
||||
|
||||
std::string cmExportTryCompileFileGenerator::FindTargets(const char *propName,
|
||||
cmTarget *tgt,
|
||||
std::set<cmTarget*> &emitted)
|
||||
cmTarget const* tgt,
|
||||
std::set<cmTarget const*> &emitted)
|
||||
{
|
||||
const char *prop = tgt->GetProperty(propName);
|
||||
if(!prop)
|
||||
|
@ -70,8 +70,8 @@ std::string cmExportTryCompileFileGenerator::FindTargets(const char *propName,
|
|||
std::string result = cge->Evaluate(tgt->GetMakefile(), this->Config,
|
||||
false, &dummyHead, tgt, &dagChecker);
|
||||
|
||||
const std::set<cmTarget*> &allTargets = cge->GetAllTargetsSeen();
|
||||
for(std::set<cmTarget*>::const_iterator li = allTargets.begin();
|
||||
const std::set<cmTarget const*> &allTargets = cge->GetAllTargetsSeen();
|
||||
for(std::set<cmTarget const*>::const_iterator li = allTargets.begin();
|
||||
li != allTargets.end(); ++li)
|
||||
{
|
||||
if(emitted.insert(*li).second)
|
||||
|
@ -84,9 +84,9 @@ std::string cmExportTryCompileFileGenerator::FindTargets(const char *propName,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
cmExportTryCompileFileGenerator::PopulateProperties(cmTarget* target,
|
||||
cmExportTryCompileFileGenerator::PopulateProperties(cmTarget const* target,
|
||||
ImportPropertyMap& properties,
|
||||
std::set<cmTarget*> &emitted)
|
||||
std::set<cmTarget const*> &emitted)
|
||||
{
|
||||
cmPropertyMap props = target->GetProperties();
|
||||
for(cmPropertyMap::const_iterator i = props.begin(); i != props.end(); ++i)
|
||||
|
|
|
@ -21,7 +21,7 @@ class cmExportTryCompileFileGenerator: public cmExportFileGenerator
|
|||
{
|
||||
public:
|
||||
/** Set the list of targets to export. */
|
||||
void SetExports(const std::vector<cmTarget*> &exports)
|
||||
void SetExports(const std::vector<cmTarget const*> &exports)
|
||||
{ this->Exports = exports; }
|
||||
void SetConfig(const char *config) { this->Config = config; }
|
||||
protected:
|
||||
|
@ -39,18 +39,18 @@ protected:
|
|||
cmTarget*,
|
||||
cmTarget*) {}
|
||||
|
||||
void PopulateProperties(cmTarget* target,
|
||||
void PopulateProperties(cmTarget const* target,
|
||||
ImportPropertyMap& properties,
|
||||
std::set<cmTarget*> &emitted);
|
||||
std::set<cmTarget const*> &emitted);
|
||||
|
||||
std::string InstallNameDir(cmTarget* target,
|
||||
const std::string& config);
|
||||
private:
|
||||
std::string FindTargets(const char *prop, cmTarget *tgt,
|
||||
std::set<cmTarget*> &emitted);
|
||||
std::string FindTargets(const char *prop, cmTarget const* tgt,
|
||||
std::set<cmTarget const*> &emitted);
|
||||
|
||||
|
||||
std::vector<cmTarget*> Exports;
|
||||
std::vector<cmTarget const*> Exports;
|
||||
const char *Config;
|
||||
};
|
||||
|
||||
|
|
|
@ -140,14 +140,25 @@ void cmFindCommon::RerootPaths(std::vector<std::string>& paths)
|
|||
}
|
||||
const char* rootPath =
|
||||
this->Makefile->GetDefinition("CMAKE_FIND_ROOT_PATH");
|
||||
if((rootPath == 0) || (strlen(rootPath) == 0))
|
||||
const char* osxRootPath =
|
||||
this->Makefile->GetDefinition("_CMAKE_OSX_SYSROOT_PATH");
|
||||
const bool noRootPath = !rootPath || !*rootPath;
|
||||
const bool noOSXRootPath = !osxRootPath || !*osxRootPath;
|
||||
if(noRootPath && noOSXRootPath)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Construct the list of path roots with no trailing slashes.
|
||||
std::vector<std::string> roots;
|
||||
cmSystemTools::ExpandListArgument(rootPath, roots);
|
||||
if(rootPath)
|
||||
{
|
||||
cmSystemTools::ExpandListArgument(rootPath, roots);
|
||||
}
|
||||
if(osxRootPath)
|
||||
{
|
||||
roots.push_back(osxRootPath);
|
||||
}
|
||||
for(std::vector<std::string>::iterator ri = roots.begin();
|
||||
ri != roots.end(); ++ri)
|
||||
{
|
||||
|
|
|
@ -53,7 +53,7 @@ cmGeneratorExpression::~cmGeneratorExpression()
|
|||
//----------------------------------------------------------------------------
|
||||
const char *cmCompiledGeneratorExpression::Evaluate(
|
||||
cmMakefile* mf, const char* config, bool quiet,
|
||||
cmTarget *headTarget,
|
||||
cmTarget const* headTarget,
|
||||
cmGeneratorExpressionDAGChecker *dagChecker) const
|
||||
{
|
||||
return this->Evaluate(mf,
|
||||
|
@ -67,8 +67,8 @@ const char *cmCompiledGeneratorExpression::Evaluate(
|
|||
//----------------------------------------------------------------------------
|
||||
const char *cmCompiledGeneratorExpression::Evaluate(
|
||||
cmMakefile* mf, const char* config, bool quiet,
|
||||
cmTarget *headTarget,
|
||||
cmTarget *currentTarget,
|
||||
cmTarget const* headTarget,
|
||||
cmTarget const* currentTarget,
|
||||
cmGeneratorExpressionDAGChecker *dagChecker) const
|
||||
{
|
||||
if (!this->NeedsEvaluation)
|
||||
|
|
|
@ -80,12 +80,12 @@ class cmCompiledGeneratorExpression
|
|||
public:
|
||||
const char* Evaluate(cmMakefile* mf, const char* config,
|
||||
bool quiet = false,
|
||||
cmTarget *headTarget = 0,
|
||||
cmTarget *currentTarget = 0,
|
||||
cmTarget const* headTarget = 0,
|
||||
cmTarget const* currentTarget = 0,
|
||||
cmGeneratorExpressionDAGChecker *dagChecker = 0) const;
|
||||
const char* Evaluate(cmMakefile* mf, const char* config,
|
||||
bool quiet,
|
||||
cmTarget *headTarget,
|
||||
cmTarget const* headTarget,
|
||||
cmGeneratorExpressionDAGChecker *dagChecker) const;
|
||||
|
||||
/** Get set of targets found during evaluations. */
|
||||
|
@ -95,7 +95,7 @@ public:
|
|||
std::set<cmStdString> const& GetSeenTargetProperties() const
|
||||
{ return this->SeenTargetProperties; }
|
||||
|
||||
std::set<cmTarget*> const& GetAllTargetsSeen() const
|
||||
std::set<cmTarget const*> const& GetAllTargetsSeen() const
|
||||
{ return this->AllTargetsSeen; }
|
||||
|
||||
~cmCompiledGeneratorExpression();
|
||||
|
@ -129,7 +129,7 @@ private:
|
|||
bool NeedsEvaluation;
|
||||
|
||||
mutable std::set<cmTarget*> DependTargets;
|
||||
mutable std::set<cmTarget*> AllTargetsSeen;
|
||||
mutable std::set<cmTarget const*> AllTargetsSeen;
|
||||
mutable std::set<cmStdString> SeenTargetProperties;
|
||||
mutable std::string Output;
|
||||
mutable bool HadContextSensitiveCondition;
|
||||
|
|
|
@ -661,8 +661,8 @@ static const char* targetPropertyTransitiveWhitelist[] = {
|
|||
};
|
||||
|
||||
std::string getLinkedTargetsContent(const std::vector<std::string> &libraries,
|
||||
cmTarget *target,
|
||||
cmTarget *headTarget,
|
||||
cmTarget const* target,
|
||||
cmTarget const* headTarget,
|
||||
cmGeneratorExpressionContext *context,
|
||||
cmGeneratorExpressionDAGChecker *dagChecker,
|
||||
const std::string &interfacePropertyName)
|
||||
|
@ -726,7 +726,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|||
cmsys::RegularExpression propertyNameValidator;
|
||||
propertyNameValidator.compile("^[A-Za-z0-9_]+$");
|
||||
|
||||
cmTarget* target = context->HeadTarget;
|
||||
cmTarget const* target = context->HeadTarget;
|
||||
std::string propertyName = *parameters.begin();
|
||||
|
||||
if (!target && parameters.size() == 1)
|
||||
|
@ -914,7 +914,8 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|||
interfacePropertyName = "INTERFACE_COMPILE_OPTIONS";
|
||||
}
|
||||
|
||||
cmTarget *headTarget = context->HeadTarget ? context->HeadTarget : target;
|
||||
cmTarget const* headTarget = context->HeadTarget
|
||||
? context->HeadTarget : target;
|
||||
|
||||
const char * const *transBegin =
|
||||
cmArrayBegin(targetPropertyTransitiveWhitelist) + 1;
|
||||
|
@ -1091,7 +1092,8 @@ static const char* targetPolicyWhitelist[] = {
|
|||
#undef TARGET_POLICY_STRING
|
||||
};
|
||||
|
||||
cmPolicies::PolicyStatus statusForTarget(cmTarget *tgt, const char *policy)
|
||||
cmPolicies::PolicyStatus statusForTarget(cmTarget const* tgt,
|
||||
const char *policy)
|
||||
{
|
||||
#define RETURN_POLICY(POLICY) \
|
||||
if (strcmp(policy, #POLICY) == 0) \
|
||||
|
|
|
@ -24,13 +24,13 @@ struct cmGeneratorExpressionContext
|
|||
{
|
||||
cmListFileBacktrace Backtrace;
|
||||
std::set<cmTarget*> DependTargets;
|
||||
std::set<cmTarget*> AllTargets;
|
||||
std::set<cmTarget const*> AllTargets;
|
||||
std::set<cmStdString> SeenTargetProperties;
|
||||
cmMakefile *Makefile;
|
||||
const char *Config;
|
||||
cmTarget *HeadTarget; // The target whose property is being evaluated.
|
||||
cmTarget *CurrentTarget; // The dependent of HeadTarget which appears
|
||||
// directly or indirectly in the property.
|
||||
cmTarget const* HeadTarget; // The target whose property is being evaluated.
|
||||
cmTarget const* CurrentTarget; // The dependent of HeadTarget which appears
|
||||
// directly or indirectly in the property.
|
||||
bool Quiet;
|
||||
bool HadError;
|
||||
bool HadContextSensitiveCondition;
|
||||
|
|
|
@ -273,7 +273,7 @@ bool cmOrderDirectoriesConstraintLibrary::FindConflict(std::string const& dir)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmOrderDirectories::cmOrderDirectories(cmGlobalGenerator* gg,
|
||||
cmTarget* target,
|
||||
cmTarget const* target,
|
||||
const char* purpose)
|
||||
{
|
||||
this->GlobalGenerator = gg;
|
||||
|
|
|
@ -27,7 +27,7 @@ class cmTarget;
|
|||
class cmOrderDirectories
|
||||
{
|
||||
public:
|
||||
cmOrderDirectories(cmGlobalGenerator* gg, cmTarget* target,
|
||||
cmOrderDirectories(cmGlobalGenerator* gg, cmTarget const* target,
|
||||
const char* purpose);
|
||||
~cmOrderDirectories();
|
||||
void AddRuntimeLibrary(std::string const& fullPath, const char* soname = 0);
|
||||
|
@ -41,7 +41,7 @@ public:
|
|||
std::vector<std::string> const& GetOrderedDirectories();
|
||||
private:
|
||||
cmGlobalGenerator* GlobalGenerator;
|
||||
cmTarget* Target;
|
||||
cmTarget const* Target;
|
||||
std::string Purpose;
|
||||
|
||||
bool Computed;
|
||||
|
|
|
@ -71,9 +71,9 @@ struct cmTarget::ImportInfo
|
|||
cmTarget::LinkInterface LinkInterface;
|
||||
};
|
||||
|
||||
struct TargetConfigPair : public std::pair<cmTarget*, std::string> {
|
||||
TargetConfigPair(cmTarget* tgt, const std::string &config)
|
||||
: std::pair<cmTarget*, std::string>(tgt, config) {}
|
||||
struct TargetConfigPair : public std::pair<cmTarget const* , std::string> {
|
||||
TargetConfigPair(cmTarget const* tgt, const std::string &config)
|
||||
: std::pair<cmTarget const* , std::string>(tgt, config) {}
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -436,7 +436,7 @@ std::string cmTarget::GetSupportDirectory() const
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsExecutableWithExports()
|
||||
bool cmTarget::IsExecutableWithExports() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::EXECUTABLE &&
|
||||
this->GetPropertyAsBool("ENABLE_EXPORTS"));
|
||||
|
@ -454,7 +454,7 @@ bool cmTarget::IsLinkable()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HasImportLibrary()
|
||||
bool cmTarget::HasImportLibrary() const
|
||||
{
|
||||
return (this->DLLPlatform &&
|
||||
(this->GetType() == cmTarget::SHARED_LIBRARY ||
|
||||
|
@ -462,7 +462,7 @@ bool cmTarget::HasImportLibrary()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsFrameworkOnApple()
|
||||
bool cmTarget::IsFrameworkOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::SHARED_LIBRARY &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -470,7 +470,7 @@ bool cmTarget::IsFrameworkOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsAppBundleOnApple()
|
||||
bool cmTarget::IsAppBundleOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::EXECUTABLE &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -478,7 +478,7 @@ bool cmTarget::IsAppBundleOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsCFBundleOnApple()
|
||||
bool cmTarget::IsCFBundleOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::MODULE_LIBRARY &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -486,7 +486,7 @@ bool cmTarget::IsCFBundleOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsBundleOnApple()
|
||||
bool cmTarget::IsBundleOnApple() const
|
||||
{
|
||||
return this->IsFrameworkOnApple() || this->IsAppBundleOnApple() ||
|
||||
this->IsCFBundleOnApple();
|
||||
|
@ -1019,13 +1019,13 @@ void cmTarget::AddLinkDirectory(const char* d)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const std::vector<std::string>& cmTarget::GetLinkDirectories()
|
||||
const std::vector<std::string>& cmTarget::GetLinkDirectories() const
|
||||
{
|
||||
return this->LinkDirectories;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::LinkLibraryType cmTarget::ComputeLinkType(const char* config)
|
||||
cmTarget::LinkLibraryType cmTarget::ComputeLinkType(const char* config) const
|
||||
{
|
||||
// No configuration is always optimized.
|
||||
if(!(config && *config))
|
||||
|
@ -1089,7 +1089,8 @@ bool cmTarget::NameResolvesToFramework(const std::string& libname)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTarget::GetDirectLinkLibraries(const char *config,
|
||||
std::vector<std::string> &libs, cmTarget *head)
|
||||
std::vector<std::string> &libs,
|
||||
cmTarget const* head) const
|
||||
{
|
||||
const char *prop = this->GetProperty("LINK_LIBRARIES");
|
||||
if (prop)
|
||||
|
@ -1816,7 +1817,7 @@ void cmTarget::AppendProperty(const char* prop, const char* value,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetExportName()
|
||||
const char* cmTarget::GetExportName() const
|
||||
{
|
||||
const char *exportName = this->GetProperty("EXPORT_NAME");
|
||||
|
||||
|
@ -2626,7 +2627,7 @@ void cmTarget::MarkAsImported()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HaveWellDefinedOutputFiles()
|
||||
bool cmTarget::HaveWellDefinedOutputFiles() const
|
||||
{
|
||||
return
|
||||
this->GetType() == cmTarget::STATIC_LIBRARY ||
|
||||
|
@ -2636,7 +2637,7 @@ bool cmTarget::HaveWellDefinedOutputFiles()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::OutputInfo const* cmTarget::GetOutputInfo(const char* config)
|
||||
cmTarget::OutputInfo const* cmTarget::GetOutputInfo(const char* config) const
|
||||
{
|
||||
// There is no output information for imported targets.
|
||||
if(this->IsImported())
|
||||
|
@ -2681,7 +2682,7 @@ cmTarget::OutputInfo const* cmTarget::GetOutputInfo(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetDirectory(const char* config, bool implib)
|
||||
std::string cmTarget::GetDirectory(const char* config, bool implib) const
|
||||
{
|
||||
if (this->IsImported())
|
||||
{
|
||||
|
@ -2710,7 +2711,7 @@ std::string cmTarget::GetPDBDirectory(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetLocation(const char* config)
|
||||
const char* cmTarget::GetLocation(const char* config) const
|
||||
{
|
||||
if (this->IsImported())
|
||||
{
|
||||
|
@ -2723,7 +2724,7 @@ const char* cmTarget::GetLocation(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::ImportedGetLocation(const char* config)
|
||||
const char* cmTarget::ImportedGetLocation(const char* config) const
|
||||
{
|
||||
static std::string location;
|
||||
location = this->ImportedGetFullPath(config, false);
|
||||
|
@ -2731,7 +2732,7 @@ const char* cmTarget::ImportedGetLocation(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::NormalGetLocation(const char* config)
|
||||
const char* cmTarget::NormalGetLocation(const char* config) const
|
||||
{
|
||||
static std::string location;
|
||||
// Handle the configuration-specific case first.
|
||||
|
@ -2826,13 +2827,13 @@ const char* cmTarget::GetFeature(const char* feature, const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char *cmTarget::GetProperty(const char* prop)
|
||||
const char *cmTarget::GetProperty(const char* prop) const
|
||||
{
|
||||
return this->GetProperty(prop, cmProperty::TARGET);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HandleLocationPropertyPolicy()
|
||||
bool cmTarget::HandleLocationPropertyPolicy() const
|
||||
{
|
||||
if (this->IsImported())
|
||||
{
|
||||
|
@ -2870,7 +2871,7 @@ bool cmTarget::HandleLocationPropertyPolicy()
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
const char *cmTarget::GetProperty(const char* prop,
|
||||
cmProperty::ScopeType scope)
|
||||
cmProperty::ScopeType scope) const
|
||||
{
|
||||
if(!prop)
|
||||
{
|
||||
|
@ -3063,7 +3064,7 @@ const char *cmTarget::GetProperty(const char* prop,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::GetPropertyAsBool(const char* prop)
|
||||
bool cmTarget::GetPropertyAsBool(const char* prop) const
|
||||
{
|
||||
return cmSystemTools::IsOn(this->GetProperty(prop));
|
||||
}
|
||||
|
@ -3072,13 +3073,13 @@ bool cmTarget::GetPropertyAsBool(const char* prop)
|
|||
class cmTargetCollectLinkLanguages
|
||||
{
|
||||
public:
|
||||
cmTargetCollectLinkLanguages(cmTarget* target, const char* config,
|
||||
cmTargetCollectLinkLanguages(cmTarget const* target, const char* config,
|
||||
std::set<cmStdString>& languages,
|
||||
cmTarget* head):
|
||||
cmTarget const* head):
|
||||
Config(config), Languages(languages), HeadTarget(head)
|
||||
{ this->Visited.insert(target); }
|
||||
|
||||
void Visit(cmTarget* target)
|
||||
void Visit(cmTarget const* target)
|
||||
{
|
||||
if(!target || !this->Visited.insert(target).second)
|
||||
{
|
||||
|
@ -3105,14 +3106,15 @@ public:
|
|||
private:
|
||||
const char* Config;
|
||||
std::set<cmStdString>& Languages;
|
||||
cmTarget* HeadTarget;
|
||||
std::set<cmTarget*> Visited;
|
||||
cmTarget const* HeadTarget;
|
||||
std::set<cmTarget const*> Visited;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetLinkerLanguage(const char* config, cmTarget *head)
|
||||
const char* cmTarget::GetLinkerLanguage(const char* config,
|
||||
cmTarget const* head) const
|
||||
{
|
||||
cmTarget *headTarget = head ? head : this;
|
||||
cmTarget const* headTarget = head ? head : this;
|
||||
const char* lang = this->GetLinkClosure(config, headTarget)
|
||||
->LinkerLanguage.c_str();
|
||||
return *lang? lang : 0;
|
||||
|
@ -3120,7 +3122,7 @@ const char* cmTarget::GetLinkerLanguage(const char* config, cmTarget *head)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::LinkClosure const* cmTarget::GetLinkClosure(const char* config,
|
||||
cmTarget *head)
|
||||
cmTarget const* head) const
|
||||
{
|
||||
TargetConfigPair key(head, cmSystemTools::UpperCase(config ? config : ""));
|
||||
cmTargetInternals::LinkClosureMapType::iterator
|
||||
|
@ -3139,12 +3141,12 @@ cmTarget::LinkClosure const* cmTarget::GetLinkClosure(const char* config,
|
|||
class cmTargetSelectLinker
|
||||
{
|
||||
int Preference;
|
||||
cmTarget* Target;
|
||||
cmTarget const* Target;
|
||||
cmMakefile* Makefile;
|
||||
cmGlobalGenerator* GG;
|
||||
std::set<cmStdString> Preferred;
|
||||
public:
|
||||
cmTargetSelectLinker(cmTarget* target): Preference(0), Target(target)
|
||||
cmTargetSelectLinker(cmTarget const* target): Preference(0), Target(target)
|
||||
{
|
||||
this->Makefile = this->Target->GetMakefile();
|
||||
this->GG = this->Makefile->GetLocalGenerator()->GetGlobalGenerator();
|
||||
|
@ -3190,7 +3192,7 @@ public:
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTarget::ComputeLinkClosure(const char* config, LinkClosure& lc,
|
||||
cmTarget *head)
|
||||
cmTarget const* head) const
|
||||
{
|
||||
// Get languages built in this target.
|
||||
std::set<cmStdString> languages;
|
||||
|
@ -3253,7 +3255,7 @@ void cmTarget::ComputeLinkClosure(const char* config, LinkClosure& lc,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetSuffixVariableInternal(bool implib)
|
||||
const char* cmTarget::GetSuffixVariableInternal(bool implib) const
|
||||
{
|
||||
switch(this->GetType())
|
||||
{
|
||||
|
@ -3279,7 +3281,7 @@ const char* cmTarget::GetSuffixVariableInternal(bool implib)
|
|||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetPrefixVariableInternal(bool implib)
|
||||
const char* cmTarget::GetPrefixVariableInternal(bool implib) const
|
||||
{
|
||||
switch(this->GetType())
|
||||
{
|
||||
|
@ -3302,7 +3304,7 @@ const char* cmTarget::GetPrefixVariableInternal(bool implib)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetPDBName(const char* config)
|
||||
std::string cmTarget::GetPDBName(const char* config) const
|
||||
{
|
||||
std::string prefix;
|
||||
std::string base;
|
||||
|
@ -3334,7 +3336,7 @@ std::string cmTarget::GetPDBName(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HasSOName(const char* config)
|
||||
bool cmTarget::HasSOName(const char* config) const
|
||||
{
|
||||
// soname is supported only for shared libraries and modules,
|
||||
// and then only when the platform supports an soname flag.
|
||||
|
@ -3346,7 +3348,7 @@ bool cmTarget::HasSOName(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetSOName(const char* config)
|
||||
std::string cmTarget::GetSOName(const char* config) const
|
||||
{
|
||||
if(this->IsImported())
|
||||
{
|
||||
|
@ -3474,7 +3476,7 @@ bool cmTarget::IsImportedSharedLibWithoutSOName(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::NormalGetRealName(const char* config)
|
||||
std::string cmTarget::NormalGetRealName(const char* config) const
|
||||
{
|
||||
// This should not be called for imported targets.
|
||||
// TODO: Split cmTarget into a class hierarchy to get compile-time
|
||||
|
@ -3512,7 +3514,7 @@ std::string cmTarget::NormalGetRealName(const char* config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFullName(const char* config, bool implib)
|
||||
std::string cmTarget::GetFullName(const char* config, bool implib) const
|
||||
{
|
||||
if(this->IsImported())
|
||||
{
|
||||
|
@ -3525,7 +3527,8 @@ std::string cmTarget::GetFullName(const char* config, bool implib)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFullNameImported(const char* config, bool implib)
|
||||
std::string
|
||||
cmTarget::GetFullNameImported(const char* config, bool implib) const
|
||||
{
|
||||
return cmSystemTools::GetFilenameName(
|
||||
this->ImportedGetFullPath(config, implib));
|
||||
|
@ -3541,7 +3544,7 @@ void cmTarget::GetFullNameComponents(std::string& prefix, std::string& base,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFullPath(const char* config, bool implib,
|
||||
bool realname)
|
||||
bool realname) const
|
||||
{
|
||||
if(this->IsImported())
|
||||
{
|
||||
|
@ -3555,7 +3558,7 @@ std::string cmTarget::GetFullPath(const char* config, bool implib,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::NormalGetFullPath(const char* config, bool implib,
|
||||
bool realname)
|
||||
bool realname) const
|
||||
{
|
||||
std::string fpath = this->GetDirectory(config, implib);
|
||||
fpath += "/";
|
||||
|
@ -3582,7 +3585,8 @@ std::string cmTarget::NormalGetFullPath(const char* config, bool implib,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::ImportedGetFullPath(const char* config, bool implib)
|
||||
std::string
|
||||
cmTarget::ImportedGetFullPath(const char* config, bool implib) const
|
||||
{
|
||||
std::string result;
|
||||
if(cmTarget::ImportInfo const* info = this->GetImportInfo(config, this))
|
||||
|
@ -3598,7 +3602,8 @@ std::string cmTarget::ImportedGetFullPath(const char* config, bool implib)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFullNameInternal(const char* config, bool implib)
|
||||
std::string
|
||||
cmTarget::GetFullNameInternal(const char* config, bool implib) const
|
||||
{
|
||||
std::string prefix;
|
||||
std::string base;
|
||||
|
@ -3612,7 +3617,7 @@ void cmTarget::GetFullNameInternal(const char* config,
|
|||
bool implib,
|
||||
std::string& outPrefix,
|
||||
std::string& outBase,
|
||||
std::string& outSuffix)
|
||||
std::string& outSuffix) const
|
||||
{
|
||||
// Use just the target name for non-main target types.
|
||||
if(this->GetType() != cmTarget::STATIC_LIBRARY &&
|
||||
|
@ -3750,7 +3755,7 @@ void cmTarget::GetLibraryNames(std::string& name,
|
|||
std::string& realName,
|
||||
std::string& impName,
|
||||
std::string& pdbName,
|
||||
const char* config)
|
||||
const char* config) const
|
||||
{
|
||||
// This should not be called for imported targets.
|
||||
// TODO: Split cmTarget into a class hierarchy to get compile-time
|
||||
|
@ -3836,7 +3841,7 @@ void cmTarget::ComputeVersionedName(std::string& vName,
|
|||
std::string const& base,
|
||||
std::string const& suffix,
|
||||
std::string const& name,
|
||||
const char* version)
|
||||
const char* version) const
|
||||
{
|
||||
vName = this->IsApple? (prefix+base) : name;
|
||||
if(version)
|
||||
|
@ -3852,7 +3857,7 @@ void cmTarget::GetExecutableNames(std::string& name,
|
|||
std::string& realName,
|
||||
std::string& impName,
|
||||
std::string& pdbName,
|
||||
const char* config)
|
||||
const char* config) const
|
||||
{
|
||||
// This should not be called for imported targets.
|
||||
// TODO: Split cmTarget into a class hierarchy to get compile-time
|
||||
|
@ -3948,7 +3953,7 @@ void cmTarget::SetPropertyDefault(const char* property,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HaveBuildTreeRPATH(const char *config)
|
||||
bool cmTarget::HaveBuildTreeRPATH(const char *config) const
|
||||
{
|
||||
if (this->GetPropertyAsBool("SKIP_BUILD_RPATH"))
|
||||
{
|
||||
|
@ -3960,7 +3965,7 @@ bool cmTarget::HaveBuildTreeRPATH(const char *config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HaveInstallTreeRPATH()
|
||||
bool cmTarget::HaveInstallTreeRPATH() const
|
||||
{
|
||||
const char* install_rpath = this->GetProperty("INSTALL_RPATH");
|
||||
return (install_rpath && *install_rpath) &&
|
||||
|
@ -4093,7 +4098,7 @@ std::string cmTarget::GetInstallNameDirForInstallTree()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetOutputTargetType(bool implib)
|
||||
const char* cmTarget::GetOutputTargetType(bool implib) const
|
||||
{
|
||||
switch(this->GetType())
|
||||
{
|
||||
|
@ -4150,7 +4155,7 @@ const char* cmTarget::GetOutputTargetType(bool implib)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::ComputeOutputDir(const char* config,
|
||||
bool implib, std::string& out)
|
||||
bool implib, std::string& out) const
|
||||
{
|
||||
bool usesDefaultOutputDir = false;
|
||||
|
||||
|
@ -4230,7 +4235,7 @@ bool cmTarget::ComputeOutputDir(const char* config,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::ComputePDBOutputDir(const char* config, std::string& out)
|
||||
bool cmTarget::ComputePDBOutputDir(const char* config, std::string& out) const
|
||||
{
|
||||
// Look for a target property defining the target output directory
|
||||
// based on the target type.
|
||||
|
@ -4296,7 +4301,7 @@ bool cmTarget::UsesDefaultOutputDir(const char* config, bool implib)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetOutputName(const char* config, bool implib)
|
||||
std::string cmTarget::GetOutputName(const char* config, bool implib) const
|
||||
{
|
||||
std::vector<std::string> props;
|
||||
std::string type = this->GetOutputTargetType(implib);
|
||||
|
@ -4333,7 +4338,7 @@ std::string cmTarget::GetOutputName(const char* config, bool implib)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFrameworkVersion()
|
||||
std::string cmTarget::GetFrameworkVersion() const
|
||||
{
|
||||
if(const char* fversion = this->GetProperty("FRAMEWORK_VERSION"))
|
||||
{
|
||||
|
@ -4376,7 +4381,7 @@ const char* cmTarget::GetExportMacro()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsNullImpliedByLinkLibraries(const std::string &p)
|
||||
bool cmTarget::IsNullImpliedByLinkLibraries(const std::string &p) const
|
||||
{
|
||||
return this->LinkImplicitNullProperties.find(p)
|
||||
!= this->LinkImplicitNullProperties.end();
|
||||
|
@ -4384,20 +4389,21 @@ bool cmTarget::IsNullImpliedByLinkLibraries(const std::string &p)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
template<typename PropertyType>
|
||||
PropertyType getTypedProperty(cmTarget *tgt, const char *prop,
|
||||
PropertyType getTypedProperty(cmTarget const* tgt, const char *prop,
|
||||
PropertyType *);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
template<>
|
||||
bool getTypedProperty<bool>(cmTarget *tgt, const char *prop, bool *)
|
||||
bool getTypedProperty<bool>(cmTarget const* tgt, const char *prop, bool *)
|
||||
{
|
||||
return tgt->GetPropertyAsBool(prop);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
template<>
|
||||
const char *getTypedProperty<const char *>(cmTarget *tgt, const char *prop,
|
||||
const char **)
|
||||
const char *getTypedProperty<const char *>(cmTarget const* tgt,
|
||||
const char *prop,
|
||||
const char **)
|
||||
{
|
||||
return tgt->GetProperty(prop);
|
||||
}
|
||||
|
@ -4507,7 +4513,7 @@ const char* impliedValue<const char*>(const char*)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
template<typename PropertyType>
|
||||
PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt,
|
||||
PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
|
||||
const std::string &p,
|
||||
const char *config,
|
||||
const char *defaultValue,
|
||||
|
@ -4656,7 +4662,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::GetLinkInterfaceDependentBoolProperty(const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
return checkInterfacePropertyCompatibility<bool>(this, p, config, "FALSE",
|
||||
BoolType, 0);
|
||||
|
@ -4665,7 +4671,7 @@ bool cmTarget::GetLinkInterfaceDependentBoolProperty(const std::string &p,
|
|||
//----------------------------------------------------------------------------
|
||||
const char * cmTarget::GetLinkInterfaceDependentStringProperty(
|
||||
const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
return checkInterfacePropertyCompatibility<const char *>(this,
|
||||
p,
|
||||
|
@ -4677,7 +4683,7 @@ const char * cmTarget::GetLinkInterfaceDependentStringProperty(
|
|||
//----------------------------------------------------------------------------
|
||||
const char * cmTarget::GetLinkInterfaceDependentNumberMinProperty(
|
||||
const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
return checkInterfacePropertyCompatibility<const char *>(this,
|
||||
p,
|
||||
|
@ -4689,7 +4695,7 @@ const char * cmTarget::GetLinkInterfaceDependentNumberMinProperty(
|
|||
//----------------------------------------------------------------------------
|
||||
const char * cmTarget::GetLinkInterfaceDependentNumberMaxProperty(
|
||||
const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
return checkInterfacePropertyCompatibility<const char *>(this,
|
||||
p,
|
||||
|
@ -4699,7 +4705,7 @@ const char * cmTarget::GetLinkInterfaceDependentNumberMaxProperty(
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool isLinkDependentProperty(cmTarget *tgt, const std::string &p,
|
||||
bool isLinkDependentProperty(cmTarget const* tgt, const std::string &p,
|
||||
const char *interfaceProperty,
|
||||
const char *config)
|
||||
{
|
||||
|
@ -4743,7 +4749,7 @@ bool isLinkDependentProperty(cmTarget *tgt, const std::string &p,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsLinkInterfaceDependentBoolProperty(const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
if (this->TargetTypeValue == OBJECT_LIBRARY)
|
||||
{
|
||||
|
@ -4756,7 +4762,7 @@ bool cmTarget::IsLinkInterfaceDependentBoolProperty(const std::string &p,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsLinkInterfaceDependentStringProperty(const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
if (this->TargetTypeValue == OBJECT_LIBRARY)
|
||||
{
|
||||
|
@ -4768,7 +4774,7 @@ bool cmTarget::IsLinkInterfaceDependentStringProperty(const std::string &p,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsLinkInterfaceDependentNumberMinProperty(const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
if (this->TargetTypeValue == OBJECT_LIBRARY)
|
||||
{
|
||||
|
@ -4780,7 +4786,7 @@ bool cmTarget::IsLinkInterfaceDependentNumberMinProperty(const std::string &p,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsLinkInterfaceDependentNumberMaxProperty(const std::string &p,
|
||||
const char *config)
|
||||
const char *config) const
|
||||
{
|
||||
if (this->TargetTypeValue == OBJECT_LIBRARY)
|
||||
{
|
||||
|
@ -4804,7 +4810,7 @@ void cmTarget::GetLanguages(std::set<cmStdString>& languages) const
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsChrpathUsed(const char* config)
|
||||
bool cmTarget::IsChrpathUsed(const char* config) const
|
||||
{
|
||||
// Only certain target types have an rpath.
|
||||
if(!(this->GetType() == cmTarget::SHARED_LIBRARY ||
|
||||
|
@ -4871,7 +4877,7 @@ bool cmTarget::IsChrpathUsed(const char* config)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::ImportInfo const*
|
||||
cmTarget::GetImportInfo(const char* config, cmTarget *headTarget)
|
||||
cmTarget::GetImportInfo(const char* config, cmTarget const* headTarget) const
|
||||
{
|
||||
// There is no imported information for non-imported targets.
|
||||
if(!this->IsImported())
|
||||
|
@ -4921,7 +4927,7 @@ cmTarget::GetImportInfo(const char* config, cmTarget *headTarget)
|
|||
bool cmTarget::GetMappedConfig(std::string const& desired_config,
|
||||
const char** loc,
|
||||
const char** imp,
|
||||
std::string& suffix)
|
||||
std::string& suffix) const
|
||||
{
|
||||
// Track the configuration-specific property suffix.
|
||||
suffix = "_";
|
||||
|
@ -5043,7 +5049,7 @@ bool cmTarget::GetMappedConfig(std::string const& desired_config,
|
|||
//----------------------------------------------------------------------------
|
||||
void cmTarget::ComputeImportInfo(std::string const& desired_config,
|
||||
ImportInfo& info,
|
||||
cmTarget *headTarget)
|
||||
cmTarget const* headTarget) const
|
||||
{
|
||||
// This method finds information about an imported target from its
|
||||
// properties. The "IMPORTED_" namespace is reserved for properties
|
||||
|
@ -5229,7 +5235,7 @@ void cmTarget::ComputeImportInfo(std::string const& desired_config,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::LinkInterface const* cmTarget::GetLinkInterface(const char* config,
|
||||
cmTarget *head)
|
||||
cmTarget const* head) const
|
||||
{
|
||||
// Imported targets have their own link interface.
|
||||
if(this->IsImported())
|
||||
|
@ -5271,8 +5277,8 @@ cmTarget::LinkInterface const* cmTarget::GetLinkInterface(const char* config,
|
|||
//----------------------------------------------------------------------------
|
||||
void cmTarget::GetTransitivePropertyLinkLibraries(
|
||||
const char* config,
|
||||
cmTarget *headTarget,
|
||||
std::vector<std::string> &libs)
|
||||
cmTarget const* headTarget,
|
||||
std::vector<std::string> &libs) const
|
||||
{
|
||||
cmTarget::LinkInterface const* iface = this->GetLinkInterface(config,
|
||||
headTarget);
|
||||
|
@ -5312,7 +5318,7 @@ void cmTarget::GetTransitivePropertyLinkLibraries(
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
|
||||
cmTarget *headTarget)
|
||||
cmTarget const* headTarget) const
|
||||
{
|
||||
// Construct the property name suffix for this configuration.
|
||||
std::string suffix = "_";
|
||||
|
@ -5574,7 +5580,7 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmTarget::LinkImplementation const*
|
||||
cmTarget::GetLinkImplementation(const char* config, cmTarget *head)
|
||||
cmTarget::GetLinkImplementation(const char* config, cmTarget const* head) const
|
||||
{
|
||||
// There is no link implementation for imported targets.
|
||||
if(this->IsImported())
|
||||
|
@ -5604,7 +5610,7 @@ cmTarget::GetLinkImplementation(const char* config, cmTarget *head)
|
|||
//----------------------------------------------------------------------------
|
||||
void cmTarget::ComputeLinkImplementation(const char* config,
|
||||
LinkImplementation& impl,
|
||||
cmTarget *head)
|
||||
cmTarget const* head) const
|
||||
{
|
||||
// Compute which library configuration to link.
|
||||
cmTarget::LinkLibraryType linkType = this->ComputeLinkType(config);
|
||||
|
@ -5686,7 +5692,8 @@ void cmTarget::ComputeLinkImplementation(const char* config,
|
|||
// Get languages used in our source files.
|
||||
this->GetLanguages(languages);
|
||||
// Get languages used in object library sources.
|
||||
for(std::vector<std::string>::iterator i = this->ObjectLibraries.begin();
|
||||
for(std::vector<std::string>::const_iterator
|
||||
i = this->ObjectLibraries.begin();
|
||||
i != this->ObjectLibraries.end(); ++i)
|
||||
{
|
||||
if(cmTarget* objLib = this->Makefile->FindTargetToUse(i->c_str()))
|
||||
|
@ -5706,7 +5713,7 @@ void cmTarget::ComputeLinkImplementation(const char* config,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::CheckCMP0004(std::string const& item)
|
||||
std::string cmTarget::CheckCMP0004(std::string const& item) const
|
||||
{
|
||||
// Strip whitespace off the library names because we used to do this
|
||||
// in case variables were expanded at generate time. We no longer
|
||||
|
@ -5765,14 +5772,14 @@ std::string cmTarget::CheckCMP0004(std::string const& item)
|
|||
}
|
||||
|
||||
template<typename PropertyType>
|
||||
PropertyType getLinkInterfaceDependentProperty(cmTarget *tgt,
|
||||
PropertyType getLinkInterfaceDependentProperty(cmTarget const* tgt,
|
||||
const std::string prop,
|
||||
const char *config,
|
||||
CompatibleType,
|
||||
PropertyType *);
|
||||
|
||||
template<>
|
||||
bool getLinkInterfaceDependentProperty(cmTarget *tgt,
|
||||
bool getLinkInterfaceDependentProperty(cmTarget const* tgt,
|
||||
const std::string prop,
|
||||
const char *config,
|
||||
CompatibleType, bool *)
|
||||
|
@ -5781,7 +5788,7 @@ bool getLinkInterfaceDependentProperty(cmTarget *tgt,
|
|||
}
|
||||
|
||||
template<>
|
||||
const char * getLinkInterfaceDependentProperty(cmTarget *tgt,
|
||||
const char * getLinkInterfaceDependentProperty(cmTarget const* tgt,
|
||||
const std::string prop,
|
||||
const char *config,
|
||||
CompatibleType t,
|
||||
|
@ -5805,7 +5812,7 @@ const char * getLinkInterfaceDependentProperty(cmTarget *tgt,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
template<typename PropertyType>
|
||||
void checkPropertyConsistency(cmTarget *depender, cmTarget *dependee,
|
||||
void checkPropertyConsistency(cmTarget const* depender, cmTarget *dependee,
|
||||
const char *propName,
|
||||
std::set<cmStdString> &emitted,
|
||||
const char *config,
|
||||
|
@ -5897,7 +5904,7 @@ static cmStdString intersect(const std::set<cmStdString> &s1,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTarget::CheckPropertyCompatibility(cmComputeLinkInformation *info,
|
||||
const char* config)
|
||||
const char* config) const
|
||||
{
|
||||
const cmComputeLinkInformation::ItemVector &deps = info->GetItems();
|
||||
|
||||
|
@ -6000,9 +6007,9 @@ void cmTarget::CheckPropertyCompatibility(cmComputeLinkInformation *info,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmComputeLinkInformation*
|
||||
cmTarget::GetLinkInformation(const char* config, cmTarget *head)
|
||||
cmTarget::GetLinkInformation(const char* config, cmTarget const* head) const
|
||||
{
|
||||
cmTarget *headTarget = head ? head : this;
|
||||
cmTarget const* headTarget = head ? head : this;
|
||||
// Lookup any existing information for this configuration.
|
||||
TargetConfigPair key(headTarget,
|
||||
cmSystemTools::UpperCase(config?config:""));
|
||||
|
@ -6033,7 +6040,7 @@ cmTarget::GetLinkInformation(const char* config, cmTarget *head)
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetFrameworkDirectory(const char* config,
|
||||
bool rootDir)
|
||||
bool rootDir) const
|
||||
{
|
||||
std::string fpath;
|
||||
fpath += this->GetOutputName(config, false);
|
||||
|
@ -6048,7 +6055,7 @@ std::string cmTarget::GetFrameworkDirectory(const char* config,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetCFBundleDirectory(const char* config,
|
||||
bool contentOnly)
|
||||
bool contentOnly) const
|
||||
{
|
||||
std::string fpath;
|
||||
fpath += this->GetOutputName(config, false);
|
||||
|
@ -6067,7 +6074,7 @@ std::string cmTarget::GetCFBundleDirectory(const char* config,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::GetAppBundleDirectory(const char* config,
|
||||
bool contentOnly)
|
||||
bool contentOnly) const
|
||||
{
|
||||
std::string fpath = this->GetFullName(config, false);
|
||||
fpath += ".app/Contents";
|
||||
|
@ -6079,7 +6086,7 @@ std::string cmTarget::GetAppBundleDirectory(const char* config,
|
|||
//----------------------------------------------------------------------------
|
||||
std::string cmTarget::BuildMacContentDirectory(const std::string& base,
|
||||
const char* config,
|
||||
bool contentOnly)
|
||||
bool contentOnly) const
|
||||
{
|
||||
std::string fpath = base;
|
||||
if(this->IsAppBundleOnApple())
|
||||
|
|
|
@ -36,9 +36,10 @@ class cmListFileBacktrace;
|
|||
class cmTarget;
|
||||
|
||||
struct cmTargetLinkInformationMap:
|
||||
public std::map<std::pair<cmTarget*, std::string>, cmComputeLinkInformation*>
|
||||
public std::map<std::pair<cmTarget const* , std::string>,
|
||||
cmComputeLinkInformation*>
|
||||
{
|
||||
typedef std::map<std::pair<cmTarget*, std::string>,
|
||||
typedef std::map<std::pair<cmTarget const* , std::string>,
|
||||
cmComputeLinkInformation*> derived;
|
||||
cmTargetLinkInformationMap() {}
|
||||
cmTargetLinkInformationMap(cmTargetLinkInformationMap const& r);
|
||||
|
@ -94,7 +95,7 @@ public:
|
|||
|
||||
///! Set/Get the name of the target
|
||||
const char* GetName() const {return this->Name.c_str();}
|
||||
const char* GetExportName();
|
||||
const char* GetExportName() const;
|
||||
|
||||
///! Set the cmMakefile that owns this target
|
||||
void SetMakefile(cmMakefile *mf);
|
||||
|
@ -176,13 +177,13 @@ public:
|
|||
{return this->OriginalLinkLibraries;}
|
||||
void GetDirectLinkLibraries(const char *config,
|
||||
std::vector<std::string> &,
|
||||
cmTarget *head);
|
||||
cmTarget const* head) const;
|
||||
void GetInterfaceLinkLibraries(const char *config,
|
||||
std::vector<std::string> &,
|
||||
cmTarget *head);
|
||||
|
||||
/** Compute the link type to use for the given configuration. */
|
||||
LinkLibraryType ComputeLinkType(const char* config);
|
||||
LinkLibraryType ComputeLinkType(const char* config) const;
|
||||
|
||||
/**
|
||||
* Clear the dependency information recorded for this target, if any.
|
||||
|
@ -204,7 +205,7 @@ public:
|
|||
void MergeLinkLibraries( cmMakefile& mf, const char* selfname,
|
||||
const LinkLibraryVectorType& libs );
|
||||
|
||||
const std::vector<std::string>& GetLinkDirectories();
|
||||
const std::vector<std::string>& GetLinkDirectories() const;
|
||||
|
||||
void AddLinkDirectory(const char* d);
|
||||
|
||||
|
@ -226,7 +227,7 @@ public:
|
|||
/**
|
||||
* Get/Set whether there is an install rule for this target.
|
||||
*/
|
||||
bool GetHaveInstallRule() { return this->HaveInstallRule; }
|
||||
bool GetHaveInstallRule() const { return this->HaveInstallRule; }
|
||||
void SetHaveInstallRule(bool h) { this->HaveInstallRule = h; }
|
||||
|
||||
/** Add a utility on which this project depends. A utility is an executable
|
||||
|
@ -243,9 +244,9 @@ public:
|
|||
///! Set/Get a property of this target file
|
||||
void SetProperty(const char *prop, const char *value);
|
||||
void AppendProperty(const char* prop, const char* value,bool asString=false);
|
||||
const char *GetProperty(const char *prop);
|
||||
const char *GetProperty(const char *prop, cmProperty::ScopeType scope);
|
||||
bool GetPropertyAsBool(const char *prop);
|
||||
const char *GetProperty(const char *prop) const;
|
||||
const char *GetProperty(const char *prop, cmProperty::ScopeType scope) const;
|
||||
bool GetPropertyAsBool(const char *prop) const;
|
||||
void CheckProperty(const char* prop, cmMakefile* context);
|
||||
|
||||
const char* GetFeature(const char* feature, const char* config);
|
||||
|
@ -281,10 +282,10 @@ public:
|
|||
/** Get the link interface for the given configuration. Returns 0
|
||||
if the target cannot be linked. */
|
||||
LinkInterface const* GetLinkInterface(const char* config,
|
||||
cmTarget *headTarget);
|
||||
cmTarget const* headTarget) const;
|
||||
void GetTransitivePropertyLinkLibraries(const char* config,
|
||||
cmTarget *headTarget,
|
||||
std::vector<std::string> &libs);
|
||||
cmTarget const* headTarget,
|
||||
std::vector<std::string> &libs) const;
|
||||
|
||||
/** The link implementation specifies the direct library
|
||||
dependencies needed by the object files of the target. */
|
||||
|
@ -301,7 +302,7 @@ public:
|
|||
std::vector<std::string> WrongConfigLibraries;
|
||||
};
|
||||
LinkImplementation const* GetLinkImplementation(const char* config,
|
||||
cmTarget *head);
|
||||
cmTarget const* head) const;
|
||||
|
||||
/** Link information from the transitive closure of the link
|
||||
implementation and the interfaces of its dependencies. */
|
||||
|
@ -313,17 +314,18 @@ public:
|
|||
// Languages whose runtime libraries must be linked.
|
||||
std::vector<std::string> Languages;
|
||||
};
|
||||
LinkClosure const* GetLinkClosure(const char* config, cmTarget *head);
|
||||
LinkClosure const* GetLinkClosure(const char* config,
|
||||
cmTarget const* head) const;
|
||||
|
||||
/** Strip off leading and trailing whitespace from an item named in
|
||||
the link dependencies of this target. */
|
||||
std::string CheckCMP0004(std::string const& item);
|
||||
std::string CheckCMP0004(std::string const& item) const;
|
||||
|
||||
/** Get the directory in which this target will be built. If the
|
||||
configuration name is given then the generator will add its
|
||||
subdirectory for that configuration. Otherwise just the canonical
|
||||
output directory is given. */
|
||||
std::string GetDirectory(const char* config = 0, bool implib = false);
|
||||
std::string GetDirectory(const char* config = 0, bool implib = false) const;
|
||||
|
||||
/** Get the directory in which this targets .pdb files will be placed.
|
||||
If the configuration name is given then the generator will add its
|
||||
|
@ -334,7 +336,7 @@ public:
|
|||
/** Get the location of the target in the build tree for the given
|
||||
configuration. This location is suitable for use as the LOCATION
|
||||
target property. */
|
||||
const char* GetLocation(const char* config);
|
||||
const char* GetLocation(const char* config) const;
|
||||
|
||||
/** Get the target major and minor version numbers interpreted from
|
||||
the VERSION property. Version 0 is returned if the property is
|
||||
|
@ -358,23 +360,24 @@ public:
|
|||
bool FindSourceFiles();
|
||||
|
||||
///! Return the preferred linker language for this target
|
||||
const char* GetLinkerLanguage(const char* config = 0, cmTarget *head = 0);
|
||||
const char* GetLinkerLanguage(const char* config = 0,
|
||||
cmTarget const* head = 0) const;
|
||||
|
||||
/** Get the full name of the target according to the settings in its
|
||||
makefile. */
|
||||
std::string GetFullName(const char* config=0, bool implib = false);
|
||||
std::string GetFullName(const char* config=0, bool implib = false) const;
|
||||
void GetFullNameComponents(std::string& prefix,
|
||||
std::string& base, std::string& suffix,
|
||||
const char* config=0, bool implib = false);
|
||||
|
||||
/** Get the name of the pdb file for the target. */
|
||||
std::string GetPDBName(const char* config=0);
|
||||
std::string GetPDBName(const char* config=0) const;
|
||||
|
||||
/** Whether this library has soname enabled and platform supports it. */
|
||||
bool HasSOName(const char* config);
|
||||
bool HasSOName(const char* config) const;
|
||||
|
||||
/** Get the soname of the target. Allowed only for a shared library. */
|
||||
std::string GetSOName(const char* config);
|
||||
std::string GetSOName(const char* config) const;
|
||||
|
||||
/** Whether this library has \@rpath and platform supports it. */
|
||||
bool HasMacOSXRpath(const char* config);
|
||||
|
@ -386,21 +389,21 @@ public:
|
|||
/** Get the full path to the target according to the settings in its
|
||||
makefile and the configuration type. */
|
||||
std::string GetFullPath(const char* config=0, bool implib = false,
|
||||
bool realname = false);
|
||||
bool realname = false) const;
|
||||
|
||||
/** Get the names of the library needed to generate a build rule
|
||||
that takes into account shared library version numbers. This
|
||||
should be called only on a library target. */
|
||||
void GetLibraryNames(std::string& name, std::string& soName,
|
||||
std::string& realName, std::string& impName,
|
||||
std::string& pdbName, const char* config);
|
||||
std::string& pdbName, const char* config) const;
|
||||
|
||||
/** Get the names of the executable needed to generate a build rule
|
||||
that takes into account executable version numbers. This should
|
||||
be called only on an executable target. */
|
||||
void GetExecutableNames(std::string& name, std::string& realName,
|
||||
std::string& impName,
|
||||
std::string& pdbName, const char* config);
|
||||
std::string& pdbName, const char* config) const;
|
||||
|
||||
/** Does this target have a GNU implib to convert to MS format? */
|
||||
bool HasImplibGNUtoMS();
|
||||
|
@ -415,11 +418,11 @@ public:
|
|||
*/
|
||||
bool NeedRelinkBeforeInstall(const char* config);
|
||||
|
||||
bool HaveBuildTreeRPATH(const char *config);
|
||||
bool HaveInstallTreeRPATH();
|
||||
bool HaveBuildTreeRPATH(const char *config) const;
|
||||
bool HaveInstallTreeRPATH() const;
|
||||
|
||||
/** Return true if builtin chrpath will work for this target */
|
||||
bool IsChrpathUsed(const char* config);
|
||||
bool IsChrpathUsed(const char* config) const;
|
||||
|
||||
/** Return the install name directory for the target in the
|
||||
* build tree. For example: "\@rpath/", "\@loader_path/",
|
||||
|
@ -431,15 +434,15 @@ public:
|
|||
std::string GetInstallNameDirForInstallTree();
|
||||
|
||||
cmComputeLinkInformation* GetLinkInformation(const char* config,
|
||||
cmTarget *head = 0);
|
||||
cmTarget const* head = 0) const;
|
||||
|
||||
// Get the properties
|
||||
cmPropertyMap &GetProperties() { return this->Properties; };
|
||||
cmPropertyMap &GetProperties() const { return this->Properties; };
|
||||
|
||||
bool GetMappedConfig(std::string const& desired_config,
|
||||
const char** loc,
|
||||
const char** imp,
|
||||
std::string& suffix);
|
||||
std::string& suffix) const;
|
||||
|
||||
// Define the properties
|
||||
static void DefineProperties(cmake *cm);
|
||||
|
@ -460,7 +463,7 @@ public:
|
|||
|
||||
/** Return whether this target is an executable with symbol exports
|
||||
enabled. */
|
||||
bool IsExecutableWithExports();
|
||||
bool IsExecutableWithExports() const;
|
||||
|
||||
/** Return whether this target may be used to link another target. */
|
||||
bool IsLinkable();
|
||||
|
@ -469,25 +472,25 @@ public:
|
|||
bool IsDLLPlatform() { return this->DLLPlatform; }
|
||||
|
||||
/** Return whether or not the target has a DLL import library. */
|
||||
bool HasImportLibrary();
|
||||
bool HasImportLibrary() const;
|
||||
|
||||
/** Return whether this target is a shared library Framework on
|
||||
Apple. */
|
||||
bool IsFrameworkOnApple();
|
||||
bool IsFrameworkOnApple() const;
|
||||
|
||||
/** Return whether this target is a CFBundle (plugin) on Apple. */
|
||||
bool IsCFBundleOnApple();
|
||||
bool IsCFBundleOnApple() const;
|
||||
|
||||
/** Return whether this target is an executable Bundle on Apple. */
|
||||
bool IsAppBundleOnApple();
|
||||
bool IsAppBundleOnApple() const;
|
||||
|
||||
/** Return whether this target is an executable Bundle, a framework
|
||||
or CFBundle on Apple. */
|
||||
bool IsBundleOnApple();
|
||||
bool IsBundleOnApple() const;
|
||||
|
||||
/** Return the framework version string. Undefined if
|
||||
IsFrameworkOnApple returns false. */
|
||||
std::string GetFrameworkVersion();
|
||||
std::string GetFrameworkVersion() const;
|
||||
|
||||
/** Get a backtrace from the creation of the target. */
|
||||
cmListFileBacktrace const& GetBacktrace() const;
|
||||
|
@ -504,16 +507,17 @@ public:
|
|||
bool implib);
|
||||
|
||||
/** @return whether this target have a well defined output file name. */
|
||||
bool HaveWellDefinedOutputFiles();
|
||||
bool HaveWellDefinedOutputFiles() const;
|
||||
|
||||
/** @return the Mac framework directory without the base. */
|
||||
std::string GetFrameworkDirectory(const char* config, bool rootDir);
|
||||
std::string GetFrameworkDirectory(const char* config, bool rootDir) const;
|
||||
|
||||
/** @return the Mac CFBundle directory without the base */
|
||||
std::string GetCFBundleDirectory(const char* config, bool contentOnly);
|
||||
std::string GetCFBundleDirectory(const char* config, bool contentOnly) const;
|
||||
|
||||
/** @return the Mac App directory without the base */
|
||||
std::string GetAppBundleDirectory(const char* config, bool contentOnly);
|
||||
std::string GetAppBundleDirectory(const char* config,
|
||||
bool contentOnly) const;
|
||||
|
||||
std::vector<std::string> GetIncludeDirectories(const char *config);
|
||||
void InsertInclude(const cmValueWithOrigin &entry,
|
||||
|
@ -528,25 +532,25 @@ public:
|
|||
void GetCompileOptions(std::vector<std::string> &result,
|
||||
const char *config);
|
||||
|
||||
bool IsNullImpliedByLinkLibraries(const std::string &p);
|
||||
bool IsNullImpliedByLinkLibraries(const std::string &p) const;
|
||||
bool IsLinkInterfaceDependentBoolProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
bool IsLinkInterfaceDependentStringProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
bool IsLinkInterfaceDependentNumberMinProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
bool IsLinkInterfaceDependentNumberMaxProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
|
||||
bool GetLinkInterfaceDependentBoolProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
|
||||
const char *GetLinkInterfaceDependentStringProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
const char *GetLinkInterfaceDependentNumberMinProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
const char *GetLinkInterfaceDependentNumberMaxProperty(const std::string &p,
|
||||
const char *config);
|
||||
const char *config) const;
|
||||
|
||||
std::string GetDebugGeneratorExpressions(const std::string &value,
|
||||
cmTarget::LinkLibraryType llt);
|
||||
|
@ -562,7 +566,7 @@ public:
|
|||
{ return this->TargetTypeValue == STATIC_LIBRARY; }
|
||||
|
||||
private:
|
||||
bool HandleLocationPropertyPolicy();
|
||||
bool HandleLocationPropertyPolicy() const;
|
||||
|
||||
// The set of include directories that are marked as system include
|
||||
// directories.
|
||||
|
@ -621,42 +625,42 @@ private:
|
|||
|
||||
void AnalyzeLibDependencies( const cmMakefile& mf );
|
||||
|
||||
const char* GetSuffixVariableInternal(bool implib);
|
||||
const char* GetPrefixVariableInternal(bool implib);
|
||||
std::string GetFullNameInternal(const char* config, bool implib);
|
||||
const char* GetSuffixVariableInternal(bool implib) const;
|
||||
const char* GetPrefixVariableInternal(bool implib) const;
|
||||
std::string GetFullNameInternal(const char* config, bool implib) const;
|
||||
void GetFullNameInternal(const char* config, bool implib,
|
||||
std::string& outPrefix, std::string& outBase,
|
||||
std::string& outSuffix);
|
||||
std::string& outSuffix) const;
|
||||
|
||||
// Use a makefile variable to set a default for the given property.
|
||||
// If the variable is not defined use the given default instead.
|
||||
void SetPropertyDefault(const char* property, const char* default_value);
|
||||
|
||||
// Returns ARCHIVE, LIBRARY, or RUNTIME based on platform and type.
|
||||
const char* GetOutputTargetType(bool implib);
|
||||
const char* GetOutputTargetType(bool implib) const;
|
||||
|
||||
// Get the target base name.
|
||||
std::string GetOutputName(const char* config, bool implib);
|
||||
std::string GetOutputName(const char* config, bool implib) const;
|
||||
|
||||
const char* ImportedGetLocation(const char* config);
|
||||
const char* NormalGetLocation(const char* config);
|
||||
const char* ImportedGetLocation(const char* config) const;
|
||||
const char* NormalGetLocation(const char* config) const;
|
||||
|
||||
std::string GetFullNameImported(const char* config, bool implib);
|
||||
std::string GetFullNameImported(const char* config, bool implib) const;
|
||||
|
||||
std::string ImportedGetFullPath(const char* config, bool implib);
|
||||
std::string ImportedGetFullPath(const char* config, bool implib) const;
|
||||
std::string NormalGetFullPath(const char* config, bool implib,
|
||||
bool realname);
|
||||
bool realname) const;
|
||||
|
||||
/** Get the real name of the target. Allowed only for non-imported
|
||||
targets. When a library or executable file is versioned this is
|
||||
the full versioned name. If the target is not versioned this is
|
||||
the same as GetFullName. */
|
||||
std::string NormalGetRealName(const char* config);
|
||||
std::string NormalGetRealName(const char* config) const;
|
||||
|
||||
/** Append to @a base the mac content directory and return it. */
|
||||
std::string BuildMacContentDirectory(const std::string& base,
|
||||
const char* config,
|
||||
bool contentOnly);
|
||||
bool contentOnly) const;
|
||||
|
||||
private:
|
||||
std::string Name;
|
||||
|
@ -677,7 +681,7 @@ private:
|
|||
std::string ExportMacro;
|
||||
std::set<cmStdString> Utilities;
|
||||
bool RecordDependencies;
|
||||
cmPropertyMap Properties;
|
||||
mutable cmPropertyMap Properties;
|
||||
LinkLibraryVectorType OriginalLinkLibraries;
|
||||
bool DLLPlatform;
|
||||
bool IsApple;
|
||||
|
@ -690,27 +694,30 @@ private:
|
|||
|
||||
// Cache target output paths for each configuration.
|
||||
struct OutputInfo;
|
||||
OutputInfo const* GetOutputInfo(const char* config);
|
||||
bool ComputeOutputDir(const char* config, bool implib, std::string& out);
|
||||
bool ComputePDBOutputDir(const char* config, std::string& out);
|
||||
OutputInfo const* GetOutputInfo(const char* config) const;
|
||||
bool
|
||||
ComputeOutputDir(const char* config, bool implib, std::string& out) const;
|
||||
bool ComputePDBOutputDir(const char* config, std::string& out) const;
|
||||
|
||||
// Cache import information from properties for each configuration.
|
||||
struct ImportInfo;
|
||||
ImportInfo const* GetImportInfo(const char* config,
|
||||
cmTarget *workingTarget);
|
||||
cmTarget const* workingTarget) const;
|
||||
void ComputeImportInfo(std::string const& desired_config, ImportInfo& info,
|
||||
cmTarget *head);
|
||||
cmTarget const* head) const;
|
||||
|
||||
cmTargetLinkInformationMap LinkInformation;
|
||||
mutable cmTargetLinkInformationMap LinkInformation;
|
||||
void CheckPropertyCompatibility(cmComputeLinkInformation *info,
|
||||
const char* config);
|
||||
const char* config) const;
|
||||
|
||||
bool ComputeLinkInterface(const char* config, LinkInterface& iface,
|
||||
cmTarget *head);
|
||||
cmTarget const* head) const;
|
||||
|
||||
void ComputeLinkImplementation(const char* config,
|
||||
LinkImplementation& impl, cmTarget *head);
|
||||
void ComputeLinkClosure(const char* config, LinkClosure& lc, cmTarget *head);
|
||||
LinkImplementation& impl,
|
||||
cmTarget const* head) const;
|
||||
void ComputeLinkClosure(const char* config, LinkClosure& lc,
|
||||
cmTarget const* head) const;
|
||||
|
||||
void ClearLinkMaps();
|
||||
|
||||
|
@ -740,7 +747,7 @@ private:
|
|||
std::string const& base,
|
||||
std::string const& suffix,
|
||||
std::string const& name,
|
||||
const char* version);
|
||||
const char* version) const;
|
||||
};
|
||||
|
||||
typedef std::map<cmStdString,cmTarget> cmTargets;
|
||||
|
|
|
@ -384,8 +384,13 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
|
|||
}
|
||||
}
|
||||
|
||||
// Handle normal case first.
|
||||
if(this->CurrentProcessingState != ProcessingKeywordLinkInterface
|
||||
if(this->CurrentProcessingState == ProcessingLinkLibraries
|
||||
&& !this->Target->GetProperty("LINK_INTERFACE_LIBRARIES"))
|
||||
{
|
||||
this->Makefile
|
||||
->AddLinkLibraryForTarget(this->Target->GetName(), lib, llt);
|
||||
}
|
||||
else if(this->CurrentProcessingState != ProcessingKeywordLinkInterface
|
||||
&& this->CurrentProcessingState != ProcessingPlainLinkInterface)
|
||||
{
|
||||
this->Makefile
|
||||
|
|
Loading…
Reference in New Issue