mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 21:59:54 -06:00
Merge topic 'getfeature-prop'
18726ad634 GetFeature(): return cmProp
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5004
This commit is contained in:
@@ -41,7 +41,7 @@ std::vector<std::string> const& cmCommonTargetGenerator::GetConfigNames() const
|
||||
const char* cmCommonTargetGenerator::GetFeature(const std::string& feature,
|
||||
const std::string& config)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeature(feature, config);
|
||||
return this->GeneratorTarget->GetFeature(feature, config)->c_str();
|
||||
}
|
||||
|
||||
void cmCommonTargetGenerator::AddModuleDefinitionFlag(
|
||||
|
||||
@@ -815,18 +815,18 @@ void cmGeneratorTarget::ComputeObjectMapping()
|
||||
}
|
||||
}
|
||||
|
||||
const char* cmGeneratorTarget::GetFeature(const std::string& feature,
|
||||
const std::string& config) const
|
||||
cmProp cmGeneratorTarget::GetFeature(const std::string& feature,
|
||||
const std::string& config) const
|
||||
{
|
||||
if (!config.empty()) {
|
||||
std::string featureConfig =
|
||||
cmStrCat(feature, '_', cmSystemTools::UpperCase(config));
|
||||
if (cmProp value = this->GetProperty(featureConfig)) {
|
||||
return value->c_str();
|
||||
return value;
|
||||
}
|
||||
}
|
||||
if (cmProp value = this->GetProperty(feature)) {
|
||||
return value->c_str();
|
||||
return value;
|
||||
}
|
||||
return this->LocalGenerator->GetFeature(feature, config);
|
||||
}
|
||||
@@ -853,8 +853,8 @@ const char* cmGeneratorTarget::GetLinkPIEProperty(
|
||||
bool cmGeneratorTarget::IsIPOEnabled(std::string const& lang,
|
||||
std::string const& config) const
|
||||
{
|
||||
const char* feature = "INTERPROCEDURAL_OPTIMIZATION";
|
||||
const bool result = cmIsOn(this->GetFeature(feature, config));
|
||||
cmProp feature = this->GetFeature("INTERPROCEDURAL_OPTIMIZATION", config);
|
||||
const bool result = feature && cmIsOn(*feature);
|
||||
|
||||
if (!result) {
|
||||
// 'INTERPROCEDURAL_OPTIMIZATION' is off, no need to check policies
|
||||
|
||||
@@ -175,8 +175,8 @@ public:
|
||||
|
||||
void ComputeObjectMapping();
|
||||
|
||||
const char* GetFeature(const std::string& feature,
|
||||
const std::string& config) const;
|
||||
cmProp GetFeature(const std::string& feature,
|
||||
const std::string& config) const;
|
||||
|
||||
const char* GetLinkPIEProperty(const std::string& config) const;
|
||||
|
||||
|
||||
@@ -694,9 +694,8 @@ std::set<std::string> cmGlobalVisualStudio7Generator::IsPartOfDefaultBuild(
|
||||
}
|
||||
// inspect EXCLUDE_FROM_DEFAULT_BUILD[_<CONFIG>] properties
|
||||
for (std::string const& i : configs) {
|
||||
const char* propertyValue =
|
||||
target->GetFeature("EXCLUDE_FROM_DEFAULT_BUILD", i);
|
||||
if (cmIsOff(propertyValue)) {
|
||||
cmProp propertyValue = target->GetFeature("EXCLUDE_FROM_DEFAULT_BUILD", i);
|
||||
if (!propertyValue || cmIsOff(*propertyValue)) {
|
||||
activeConfigs.insert(i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3253,8 +3253,8 @@ void cmLocalGenerator::AppendFeatureOptions(std::string& flags,
|
||||
}
|
||||
}
|
||||
|
||||
const char* cmLocalGenerator::GetFeature(const std::string& feature,
|
||||
const std::string& config)
|
||||
cmProp cmLocalGenerator::GetFeature(const std::string& feature,
|
||||
const std::string& config)
|
||||
{
|
||||
std::string featureName = feature;
|
||||
// TODO: Define accumulation policy for features (prepend, append,
|
||||
@@ -3266,7 +3266,7 @@ const char* cmLocalGenerator::GetFeature(const std::string& feature,
|
||||
cmStateSnapshot snp = this->StateSnapshot;
|
||||
while (snp.IsValid()) {
|
||||
if (cmProp value = snp.GetDirectory().GetProperty(featureName)) {
|
||||
return value->c_str();
|
||||
return value;
|
||||
}
|
||||
snp = snp.GetBuildsystemDirectoryParent();
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "cmMessageType.h"
|
||||
#include "cmOutputConverter.h"
|
||||
#include "cmPolicies.h"
|
||||
#include "cmProperty.h"
|
||||
#include "cmStateSnapshot.h"
|
||||
|
||||
class cmComputeLinkInformation;
|
||||
@@ -209,8 +210,7 @@ public:
|
||||
void AppendFeatureOptions(std::string& flags, const std::string& lang,
|
||||
const char* feature);
|
||||
|
||||
const char* GetFeature(const std::string& feature,
|
||||
const std::string& config);
|
||||
cmProp GetFeature(const std::string& feature, const std::string& config);
|
||||
|
||||
/** \brief Get absolute path to dependency \a name
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user