diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2022-04-27 12:52:07 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2022-04-28 14:36:06 +0200 |
commit | 124d53937a088813a95317fcd535acc0cf69024a (patch) | |
tree | da0791ff614c444f21e27cc272d06c525c7dc311 | |
parent | d2fa5912a44a30602e6a4b14cdb99402a4e72a42 (diff) | |
download | rules-cc-124d53937a088813a95317fcd535acc0cf69024a.tar.gz |
rules: Consistently use new provider expressions
-rw-r--r-- | CC/EXPRESSIONS | 140 | ||||
-rw-r--r-- | CC/proto/EXPRESSIONS | 19 | ||||
-rw-r--r-- | proto/RULES | 19 |
3 files changed, 71 insertions, 107 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index 6fa222b..5025339 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -1,79 +1,51 @@ { "default-CC": - { "expression": + { "imports": {"list_provider": ["./", "..", "field_list_provider"]} + , "expression": { "type": "join" , "$1": - { "type": "++" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "provider": "CC" - , "dep": {"type": "var", "name": "x"} - } - } + { "type": "let*" + , "bindings": [["fieldname", "defaults"], ["provider", "CC"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} } } } , "default-CXX": - { "expression": + { "imports": {"list_provider": ["./", "..", "field_list_provider"]} + , "expression": { "type": "join" , "$1": - { "type": "++" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "provider": "CXX" - , "dep": {"type": "var", "name": "x"} - } - } + { "type": "let*" + , "bindings": [["fieldname", "defaults"], ["provider", "CXX"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} } } } , "default-CFLAGS": - { "expression": - { "type": "++" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "provider": "CFLAGS" - , "dep": {"type": "var", "name": "x"} - } - } + { "imports": {"list_provider": ["./", "..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": [["fieldname", "defaults"], ["provider", "CFLAGS"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} } } , "default-CXXFLAGS": - { "expression": - { "type": "++" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "provider": "CXXFLAGS" - , "dep": {"type": "var", "name": "x"} - } - } + { "imports": {"list_provider": ["./", "..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": [["fieldname", "defaults"], ["provider", "CXXFLAGS"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} } } , "default-ENV": - { "expression": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "defaults"} - , "body": - { "type": "DEP_PROVIDES" - , "provider": "ENV" - , "dep": {"type": "var", "name": "x"} - } + { "imports": {"provider_list": ["./", "..", "field_provider_list"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "defaults"] + , ["provider", "ENV"] + , ["default", {"type": "empty_map"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"} } } , "configure transition": @@ -135,7 +107,10 @@ ["List of target_field names to collect dependencies from."] , "transition": ["The optional configuration transition for the targets."] } - , "imports": {"runfiles_list": ["./", "..", "field_runfiles_list"]} + , "imports": + { "runfiles_list": ["./", "..", "field_runfiles_list"] + , "provider_list": ["./", "..", "field_provider_list"] + } , "expression": { "type": "disjoint_map_union" , "$1": @@ -147,19 +122,16 @@ , "body": { "type": "++" , "$1": - [ { "type": "foreach" - , "var": "target" - , "range": - {"type": "FIELD", "name": {"type": "var", "name": "fieldname"}} - , "body": - { "type": "DEP_PROVIDES" - , "dep": {"type": "var", "name": "target"} - , "provider": "compile-deps" - , "default": {"type": "empty_map"} - } - } - , {"type": "CALL_EXPRESSION", "name": "runfiles_list"} - ] + { "type": "let*" + , "bindings": + [ ["provider", "compile-deps"] + , ["default", {"type": "empty_map"}] + ] + , "body": + [ {"type": "CALL_EXPRESSION", "name": "provider_list"} + , {"type": "CALL_EXPRESSION", "name": "runfiles_list"} + ] + } } } } @@ -173,7 +145,10 @@ ["List of target_field names to collect dependencies from."] , "transition": ["The optional configuration transition for the targets."] } - , "imports": {"artifacts_list": ["./", "..", "field_artifacts_list"]} + , "imports": + { "artifacts_list": ["./", "..", "field_artifacts_list"] + , "provider_list": ["./", "..", "field_provider_list"] + } , "expression": { "type": "disjoint_map_union" , "$1": @@ -185,19 +160,14 @@ , "body": { "type": "++" , "$1": - [ { "type": "foreach" - , "var": "target" - , "range": - {"type": "FIELD", "name": {"type": "var", "name": "fieldname"}} - , "body": - { "type": "DEP_PROVIDES" - , "dep": {"type": "var", "name": "target"} - , "provider": "link-deps" - , "default": {"type": "empty_map"} - } - } - , {"type": "CALL_EXPRESSION", "name": "artifacts_list"} - ] + { "type": "let*" + , "bindings": + [["provider", "link-deps"], ["default", {"type": "empty_map"}]] + , "body": + [ {"type": "CALL_EXPRESSION", "name": "provider_list"} + , {"type": "CALL_EXPRESSION", "name": "artifacts_list"} + ] + } } } } diff --git a/CC/proto/EXPRESSIONS b/CC/proto/EXPRESSIONS index 4b08a2c..cb7d8a2 100644 --- a/CC/proto/EXPRESSIONS +++ b/CC/proto/EXPRESSIONS @@ -1,16 +1,15 @@ { "protoc-deps": - { "expression": + { "imports": {"provider_list": ["./", "../..", "field_provider_list"]} + , "expression": { "type": "disjoint_map_union" , "$1": - { "type": "foreach" - , "var": "dep" - , "range": {"type": "FIELD", "name": "deps"} - , "body": - { "type": "DEP_PROVIDES" - , "dep": {"type": "var", "name": "dep"} - , "provider": "protoc-deps" - , "default": {"type": "empty_map"} - } + { "type": "let*" + , "bindings": + [ ["fieldname", "deps"] + , ["provider", "protoc-deps"] + , ["default", {"type": "empty_map"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"} } } } diff --git a/proto/RULES b/proto/RULES index 5d1b853..9c7c1a2 100644 --- a/proto/RULES +++ b/proto/RULES @@ -29,7 +29,10 @@ , "\"service library\"." ] } - , "imports": {"artifacts_list": ["./", "..", "field_artifacts_list"]} + , "imports": + { "artifacts_list": ["./", "..", "field_artifacts_list"] + , "list_provider": ["./", "..", "field_list_provider"] + } , "expression": { "type": "let*" , "bindings": @@ -68,17 +71,9 @@ ] ] , [ "deps" - , { "type": "++" - , "$1": - { "type": "foreach" - , "var": "x" - , "range": {"type": "FIELD", "name": "deps"} - , "body": - { "type": "DEP_PROVIDES" - , "dep": {"type": "var", "name": "x"} - , "provider": "proto" - } - } + , { "type": "let*" + , "bindings": [["fieldname", "deps"], ["provider", "proto"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} } ] , [ "node" |