summaryrefslogtreecommitdiff
path: root/CC/EXPRESSIONS
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-11-16 16:41:38 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2023-11-20 16:01:56 +0100
commit7f72f33c498ba39f5f4900642b63ec6e89c471e6 (patch)
tree5e54e249640337422fc4b87d0213ee72a427320c /CC/EXPRESSIONS
parent16d5cf721477348c77b7735160d257fbd522323f (diff)
downloadrules-cc-7f72f33c498ba39f5f4900642b63ec6e89c471e6.tar.gz
defaults: Fix flag inheritance
... which should accumulate values from all base targets unless the flag type (CFLAGS, CXXFLAGS, or LDFLAGS) is explicity overwritten by the inheritor.
Diffstat (limited to 'CC/EXPRESSIONS')
-rw-r--r--CC/EXPRESSIONS13
1 files changed, 13 insertions, 0 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS
index 1f57fcd..c4a3e34 100644
--- a/CC/EXPRESSIONS
+++ b/CC/EXPRESSIONS
@@ -153,6 +153,19 @@
, "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
}
}
+, "defaults-base-provides-++":
+ { "doc": ["Query flattend list of providers from 'base' targets"]
+ , "vars": ["provider", "default"]
+ , "vars_doc":
+ { "provider": ["The name of the provider in the provides map."]
+ , "default": ["The default if provider is missing (default: [])."]
+ }
+ , "imports": {"base-provides-list": "defaults-base-provides-list"}
+ , "expression":
+ { "type": "++"
+ , "$1": {"type": "CALL_EXPRESSION", "name": "base-provides-list"}
+ }
+ }
, "defaults-base-provides":
{ "doc": ["Query provider from 'base' targets (last wins)"]
, "vars": ["provider", "default"]