summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-08-10 10:59:20 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2023-08-16 15:30:32 +0200
commitf9ae3b52d5ea07b5f360c338671595808aae9231 (patch)
treed963ebfcef2be169fcab86184e9bda77ad2410f7
parent5e71dca741099d9587fa4b705242673d45316162 (diff)
downloadjustbuild-f9ae3b52d5ea07b5f360c338671595808aae9231.tar.gz
rules: Expression to get base providers as list
-rw-r--r--rules/CC/EXPRESSIONS38
1 files changed, 24 insertions, 14 deletions
diff --git a/rules/CC/EXPRESSIONS b/rules/CC/EXPRESSIONS
index 0ac44d27..2ebe7c17 100644
--- a/rules/CC/EXPRESSIONS
+++ b/rules/CC/EXPRESSIONS
@@ -126,29 +126,39 @@
}
}
}
-, "defaults-base-provides":
- { "doc": ["Query list-provider from 'base' targets (last wins)"]
+, "defaults-base-provides-list":
+ { "doc": ["Query list of providers from 'base' targets"]
, "vars": ["provider", "default"]
, "vars_doc":
- { "provider": ["The name of the list-provider in the provides map."]
+ { "provider": ["The name of the provider in the provides map."]
, "default": ["The default if provider is missing (default: [])."]
}
, "imports": {"provider_list": ["./", "..", "field_provider_list"]}
, "expression":
{ "type": "let*"
, "bindings": [["fieldname", "base"]]
+ , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
+ }
+ }
+, "defaults-base-provides":
+ { "doc": ["Query provider from 'base' targets (last wins)"]
+ , "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": "foldl"
+ , "var": "next"
+ , "start": {"type": "var", "name": "default", "default": []}
+ , "accum_var": "curr"
+ , "range": {"type": "CALL_EXPRESSION", "name": "base-provides-list"}
, "body":
- { "type": "foldl"
- , "var": "next"
- , "start": {"type": "var", "name": "default", "default": []}
- , "accum_var": "curr"
- , "range": {"type": "CALL_EXPRESSION", "name": "provider_list"}
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "next"}
- , "then": {"type": "var", "name": "next"}
- , "else": {"type": "var", "name": "curr"}
- }
+ { "type": "if"
+ , "cond": {"type": "var", "name": "next"}
+ , "then": {"type": "var", "name": "next"}
+ , "else": {"type": "var", "name": "curr"}
}
}
}