|
@@ -877,7 +877,7 @@ std::string cmGeneratorTarget::GetLinkerTypeProperty(
|
|
|
auto linkerType = this->GetProperty(propName);
|
|
|
if (!linkerType.IsEmpty()) {
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, propName, nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
auto ltype =
|
|
|
cmGeneratorExpression::Evaluate(*linkerType, this->GetLocalGenerator(),
|
|
|
config, this, &dagChecker, this, lang);
|
|
@@ -1342,7 +1342,8 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(
|
|
|
|
|
|
if (iter == this->SystemIncludesCache.end()) {
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(
|
|
|
- this, "SYSTEM_INCLUDE_DIRECTORIES", nullptr, nullptr);
|
|
|
+ this, "SYSTEM_INCLUDE_DIRECTORIES", nullptr, nullptr,
|
|
|
+ this->LocalGenerator);
|
|
|
|
|
|
bool excludeImported = this->GetPropertyAsBool("NO_SYSTEM_FROM_IMPORTED");
|
|
|
|
|
@@ -1450,7 +1451,8 @@ std::string cmGeneratorTarget::EvaluateInterfaceProperty(
|
|
|
// a subset of TargetPropertyNode::Evaluate without stringify/parse steps
|
|
|
// but sufficient for transitive interface properties.
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(context->Backtrace, this, prop,
|
|
|
- nullptr, dagCheckerParent);
|
|
|
+ nullptr, dagCheckerParent,
|
|
|
+ this->LocalGenerator);
|
|
|
switch (dagChecker.Check()) {
|
|
|
case cmGeneratorExpressionDAGChecker::SELF_REFERENCE:
|
|
|
dagChecker.ReportError(
|
|
@@ -1529,8 +1531,10 @@ std::string AddLangSpecificInterfaceIncludeDirectories(
|
|
|
const std::string& propertyName, IncludeDirectoryFallBack mode,
|
|
|
cmGeneratorExpressionDAGChecker* context)
|
|
|
{
|
|
|
- cmGeneratorExpressionDAGChecker dag{ target->GetBacktrace(), target,
|
|
|
- propertyName, nullptr, context };
|
|
|
+ cmGeneratorExpressionDAGChecker dag{
|
|
|
+ target->GetBacktrace(), target, propertyName, nullptr, context,
|
|
|
+ target->GetLocalGenerator()
|
|
|
+ };
|
|
|
switch (dag.Check()) {
|
|
|
case cmGeneratorExpressionDAGChecker::SELF_REFERENCE:
|
|
|
dag.ReportError(
|
|
@@ -1580,8 +1584,10 @@ void AddLangSpecificImplicitIncludeDirectories(
|
|
|
{
|
|
|
if (const auto* libraries = target->GetLinkImplementationLibraries(
|
|
|
config, LinkInterfaceFor::Usage)) {
|
|
|
- cmGeneratorExpressionDAGChecker dag{ target->GetBacktrace(), target,
|
|
|
- propertyName, nullptr, nullptr };
|
|
|
+ cmGeneratorExpressionDAGChecker dag{
|
|
|
+ target->GetBacktrace(), target, propertyName, nullptr, nullptr,
|
|
|
+ target->GetLocalGenerator()
|
|
|
+ };
|
|
|
|
|
|
for (const cmLinkImplItem& library : libraries->Libraries) {
|
|
|
if (const cmGeneratorTarget* dependency = library.Target) {
|
|
@@ -1833,8 +1839,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetSourceFilePaths(
|
|
|
this->DebugSourcesDone = true;
|
|
|
}
|
|
|
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, "SOURCES", nullptr,
|
|
|
- nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(this, "SOURCES", nullptr, nullptr,
|
|
|
+ this->LocalGenerator);
|
|
|
|
|
|
EvaluatedTargetPropertyEntries entries = EvaluateTargetPropertyEntries(
|
|
|
this, config, std::string(), &dagChecker, this->SourceEntries);
|
|
@@ -3048,7 +3054,7 @@ void cmGeneratorTarget::GetAutoUicOptions(std::vector<std::string>& result,
|
|
|
}
|
|
|
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "AUTOUIC_OPTIONS", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
cmExpandList(cmGeneratorExpression::Evaluate(prop, this->LocalGenerator,
|
|
|
config, this, &dagChecker),
|
|
|
result);
|
|
@@ -3848,8 +3854,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetIncludeDirectories(
|
|
|
std::vector<BT<std::string>> includes;
|
|
|
std::unordered_set<std::string> uniqueIncludes;
|
|
|
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, "INCLUDE_DIRECTORIES",
|
|
|
- nullptr, nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(
|
|
|
+ this, "INCLUDE_DIRECTORIES", nullptr, nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4113,7 +4119,7 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetCompileOptions(
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "COMPILE_OPTIONS", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4154,7 +4160,7 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetCompileFeatures(
|
|
|
std::unordered_set<std::string> uniqueFeatures;
|
|
|
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "COMPILE_FEATURES", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4203,8 +4209,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetCompileDefinitions(
|
|
|
std::vector<BT<std::string>> list;
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, "COMPILE_DEFINITIONS",
|
|
|
- nullptr, nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(
|
|
|
+ this, "COMPILE_DEFINITIONS", nullptr, nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4267,8 +4273,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetPrecompileHeaders(
|
|
|
}
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, "PRECOMPILE_HEADERS",
|
|
|
- nullptr, nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(
|
|
|
+ this, "PRECOMPILE_HEADERS", nullptr, nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4657,7 +4663,7 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetLinkOptions(
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "LINK_OPTIONS", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4825,8 +4831,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetStaticLibraryLinkOptions(
|
|
|
std::vector<BT<std::string>> result;
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, "STATIC_LIBRARY_OPTIONS",
|
|
|
- nullptr, nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(
|
|
|
+ this, "STATIC_LIBRARY_OPTIONS", nullptr, nullptr, this->LocalGenerator);
|
|
|
|
|
|
EvaluatedTargetPropertyEntries entries;
|
|
|
if (cmValue linkOptions = this->GetProperty("STATIC_LIBRARY_OPTIONS")) {
|
|
@@ -4939,7 +4945,7 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetLinkDirectories(
|
|
|
std::unordered_set<std::string> uniqueDirectories;
|
|
|
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "LINK_DIRECTORIES", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
|
|
|
cmList debugProperties{ this->Makefile->GetDefinition(
|
|
|
"CMAKE_DEBUG_TARGET_PROPERTIES") };
|
|
@@ -4983,7 +4989,7 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetLinkDepends(
|
|
|
std::vector<BT<std::string>> result;
|
|
|
std::unordered_set<std::string> uniqueOptions;
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "LINK_DEPENDS", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
|
|
|
EvaluatedTargetPropertyEntries entries;
|
|
|
if (cmValue linkDepends = this->GetProperty("LINK_DEPENDS")) {
|
|
@@ -6969,7 +6975,8 @@ void cmGeneratorTarget::ExpandLinkItems(
|
|
|
return;
|
|
|
}
|
|
|
// Keep this logic in sync with ComputeLinkImplementationLibraries.
|
|
|
- cmGeneratorExpressionDAGChecker dagChecker(this, prop, nullptr, nullptr);
|
|
|
+ cmGeneratorExpressionDAGChecker dagChecker(this, prop, nullptr, nullptr,
|
|
|
+ this->LocalGenerator);
|
|
|
// The $<LINK_ONLY> expression may be in a link interface to specify
|
|
|
// private link dependencies that are otherwise excluded from usage
|
|
|
// requirements.
|
|
@@ -8640,7 +8647,7 @@ void cmGeneratorTarget::ComputeLinkImplementationLibraries(
|
|
|
for (auto const& entry : entryRange) {
|
|
|
// Keep this logic in sync with ExpandLinkItems.
|
|
|
cmGeneratorExpressionDAGChecker dagChecker(this, "LINK_LIBRARIES", nullptr,
|
|
|
- nullptr);
|
|
|
+ nullptr, this->LocalGenerator);
|
|
|
// The $<LINK_ONLY> expression may be used to specify link dependencies
|
|
|
// that are otherwise excluded from usage requirements.
|
|
|
if (implFor == LinkInterfaceFor::Usage) {
|