Merge topic 'constify'
c4373b3
cmTarget: Make GetProperty() const.cfb6661
Don't call SetProperty from GetProperty.
This commit is contained in:
commit
de5c29890f
|
@ -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;
|
||||
|
|
|
@ -70,9 +70,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) {}
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -428,7 +428,7 @@ std::string cmTarget::GetSupportDirectory() const
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsExecutableWithExports()
|
||||
bool cmTarget::IsExecutableWithExports() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::EXECUTABLE &&
|
||||
this->GetPropertyAsBool("ENABLE_EXPORTS"));
|
||||
|
@ -446,7 +446,7 @@ bool cmTarget::IsLinkable()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HasImportLibrary()
|
||||
bool cmTarget::HasImportLibrary() const
|
||||
{
|
||||
return (this->DLLPlatform &&
|
||||
(this->GetType() == cmTarget::SHARED_LIBRARY ||
|
||||
|
@ -454,7 +454,7 @@ bool cmTarget::HasImportLibrary()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsFrameworkOnApple()
|
||||
bool cmTarget::IsFrameworkOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::SHARED_LIBRARY &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -462,7 +462,7 @@ bool cmTarget::IsFrameworkOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsAppBundleOnApple()
|
||||
bool cmTarget::IsAppBundleOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::EXECUTABLE &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -470,7 +470,7 @@ bool cmTarget::IsAppBundleOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsCFBundleOnApple()
|
||||
bool cmTarget::IsCFBundleOnApple() const
|
||||
{
|
||||
return (this->GetType() == cmTarget::MODULE_LIBRARY &&
|
||||
this->Makefile->IsOn("APPLE") &&
|
||||
|
@ -478,7 +478,7 @@ bool cmTarget::IsCFBundleOnApple()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::IsBundleOnApple()
|
||||
bool cmTarget::IsBundleOnApple() const
|
||||
{
|
||||
return this->IsFrameworkOnApple() || this->IsAppBundleOnApple() ||
|
||||
this->IsCFBundleOnApple();
|
||||
|
@ -715,13 +715,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))
|
||||
|
@ -785,7 +785,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)
|
||||
|
@ -1512,7 +1513,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");
|
||||
|
||||
|
@ -2322,7 +2323,7 @@ void cmTarget::MarkAsImported()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmTarget::HaveWellDefinedOutputFiles()
|
||||
bool cmTarget::HaveWellDefinedOutputFiles() const
|
||||
{
|
||||
return
|
||||
this->GetType() == cmTarget::STATIC_LIBRARY ||
|
||||
|
@ -2332,7 +2333,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())
|
||||
|
@ -2377,7 +2378,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())
|
||||
{
|
||||
|
@ -2406,7 +2407,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())
|
||||
{
|
||||
|
@ -2419,7 +2420,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);
|
||||
|
@ -2427,7 +2428,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.
|
||||
|
@ -2522,13 +2523,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())
|
||||
{
|
||||
|
@ -2566,7 +2567,7 @@ bool cmTarget::HandleLocationPropertyPolicy()
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
const char *cmTarget::GetProperty(const char* prop,
|
||||
cmProperty::ScopeType scope)
|
||||
cmProperty::ScopeType scope) const
|
||||
{
|
||||
if(!prop)
|
||||
{
|
||||
|
@ -2603,7 +2604,8 @@ const char *cmTarget::GetProperty(const char* prop,
|
|||
// cannot take into account the per-configuration name of the
|
||||
// target because the configuration type may not be known at
|
||||
// CMake time.
|
||||
this->SetProperty("LOCATION", this->GetLocation(0));
|
||||
this->Properties.SetProperty("LOCATION", this->GetLocation(0),
|
||||
cmProperty::TARGET);
|
||||
}
|
||||
|
||||
// Support "LOCATION_<CONFIG>".
|
||||
|
@ -2614,7 +2616,9 @@ const char *cmTarget::GetProperty(const char* prop,
|
|||
return 0;
|
||||
}
|
||||
std::string configName = prop+9;
|
||||
this->SetProperty(prop, this->GetLocation(configName.c_str()));
|
||||
this->Properties.SetProperty(prop,
|
||||
this->GetLocation(configName.c_str()),
|
||||
cmProperty::TARGET);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2629,7 +2633,9 @@ const char *cmTarget::GetProperty(const char* prop,
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
this->SetProperty(prop, this->GetLocation(configName.c_str()));
|
||||
this->Properties.SetProperty(prop,
|
||||
this->GetLocation(configName.c_str()),
|
||||
cmProperty::TARGET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2734,7 +2740,8 @@ const char *cmTarget::GetProperty(const char* prop,
|
|||
// Append this list entry.
|
||||
ss << sname;
|
||||
}
|
||||
this->SetProperty("SOURCES", ss.str().c_str());
|
||||
this->Properties.SetProperty("SOURCES", ss.str().c_str(),
|
||||
cmProperty::TARGET);
|
||||
}
|
||||
|
||||
// the type property returns what type the target is
|
||||
|
@ -2753,7 +2760,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));
|
||||
}
|
||||
|
@ -2762,13 +2769,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)
|
||||
{
|
||||
|
@ -2795,14 +2802,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;
|
||||
|
@ -2810,7 +2818,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
|
||||
|
@ -2829,12 +2837,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();
|
||||
|
@ -2880,7 +2888,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;
|
||||
|
@ -2943,7 +2951,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())
|
||||
{
|
||||
|
@ -2969,7 +2977,7 @@ const char* cmTarget::GetSuffixVariableInternal(bool implib)
|
|||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetPrefixVariableInternal(bool implib)
|
||||
const char* cmTarget::GetPrefixVariableInternal(bool implib) const
|
||||
{
|
||||
switch(this->GetType())
|
||||
{
|
||||
|
@ -2992,7 +3000,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;
|
||||
|
@ -3024,7 +3032,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.
|
||||
|
@ -3036,7 +3044,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())
|
||||
{
|
||||
|
@ -3164,7 +3172,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
|
||||
|
@ -3202,7 +3210,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())
|
||||
{
|
||||
|
@ -3215,7 +3223,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));
|
||||
|
@ -3231,7 +3240,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())
|
||||
{
|
||||
|
@ -3245,7 +3254,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 += "/";
|
||||
|
@ -3272,7 +3281,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))
|
||||
|
@ -3288,7 +3298,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;
|
||||
|
@ -3302,7 +3313,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 &&
|
||||
|
@ -3440,7 +3451,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
|
||||
|
@ -3526,7 +3537,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)
|
||||
|
@ -3542,7 +3553,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
|
||||
|
@ -3638,7 +3649,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"))
|
||||
{
|
||||
|
@ -3650,7 +3661,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) &&
|
||||
|
@ -3783,7 +3794,7 @@ std::string cmTarget::GetInstallNameDirForInstallTree()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmTarget::GetOutputTargetType(bool implib)
|
||||
const char* cmTarget::GetOutputTargetType(bool implib) const
|
||||
{
|
||||
switch(this->GetType())
|
||||
{
|
||||
|
@ -3840,7 +3851,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;
|
||||
|
||||
|
@ -3920,7 +3931,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.
|
||||
|
@ -3986,7 +3997,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);
|
||||
|
@ -4023,7 +4034,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"))
|
||||
{
|
||||
|
@ -4066,7 +4077,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();
|
||||
|
@ -4074,20 +4085,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);
|
||||
}
|
||||
|
@ -4197,7 +4209,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,
|
||||
|
@ -4346,7 +4358,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);
|
||||
|
@ -4355,7 +4367,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,
|
||||
|
@ -4367,7 +4379,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,
|
||||
|
@ -4379,7 +4391,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,
|
||||
|
@ -4389,7 +4401,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)
|
||||
{
|
||||
|
@ -4433,7 +4445,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)
|
||||
{
|
||||
|
@ -4446,7 +4458,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)
|
||||
{
|
||||
|
@ -4458,7 +4470,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)
|
||||
{
|
||||
|
@ -4470,7 +4482,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)
|
||||
{
|
||||
|
@ -4494,7 +4506,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 ||
|
||||
|
@ -4561,7 +4573,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())
|
||||
|
@ -4611,7 +4623,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 = "_";
|
||||
|
@ -4733,7 +4745,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
|
||||
|
@ -4919,7 +4931,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())
|
||||
|
@ -4961,8 +4973,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);
|
||||
|
@ -5002,7 +5014,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 = "_";
|
||||
|
@ -5264,7 +5276,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())
|
||||
|
@ -5294,7 +5306,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);
|
||||
|
@ -5376,7 +5388,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()))
|
||||
|
@ -5396,7 +5409,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
|
||||
|
@ -5455,14 +5468,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 *)
|
||||
|
@ -5471,7 +5484,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,
|
||||
|
@ -5495,7 +5508,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,
|
||||
|
@ -5587,7 +5600,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();
|
||||
|
||||
|
@ -5690,9 +5703,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:""));
|
||||
|
@ -5723,7 +5736,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);
|
||||
|
@ -5738,7 +5751,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);
|
||||
|
@ -5757,7 +5770,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";
|
||||
|
@ -5769,7 +5782,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())
|
||||
|
|
|
@ -38,9 +38,10 @@ class cmGeneratorTarget;
|
|||
class cmTargetTraceDependencies;
|
||||
|
||||
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);
|
||||
|
@ -96,7 +97,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);
|
||||
|
@ -175,13 +176,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.
|
||||
|
@ -203,7 +204,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);
|
||||
|
||||
|
@ -225,7 +226,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
|
||||
|
@ -242,9 +243,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);
|
||||
|
@ -280,10 +281,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. */
|
||||
|
@ -300,7 +301,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. */
|
||||
|
@ -312,17 +313,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
|
||||
|
@ -333,7 +335,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
|
||||
|
@ -351,23 +353,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);
|
||||
|
@ -379,21 +382,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();
|
||||
|
@ -408,11 +411,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/",
|
||||
|
@ -424,15 +427,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);
|
||||
|
@ -453,7 +456,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();
|
||||
|
@ -462,25 +465,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;
|
||||
|
@ -497,16 +500,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,
|
||||
|
@ -521,25 +525,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);
|
||||
|
@ -555,7 +559,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.
|
||||
|
@ -614,42 +618,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;
|
||||
|
@ -670,7 +674,7 @@ private:
|
|||
std::string ExportMacro;
|
||||
std::set<cmStdString> Utilities;
|
||||
bool RecordDependencies;
|
||||
cmPropertyMap Properties;
|
||||
mutable cmPropertyMap Properties;
|
||||
LinkLibraryVectorType OriginalLinkLibraries;
|
||||
bool DLLPlatform;
|
||||
bool IsApple;
|
||||
|
@ -683,27 +687,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();
|
||||
|
||||
|
@ -735,7 +742,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