summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-04-27 12:52:07 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2022-04-28 14:36:06 +0200
commit124d53937a088813a95317fcd535acc0cf69024a (patch)
treeda0791ff614c444f21e27cc272d06c525c7dc311
parentd2fa5912a44a30602e6a4b14cdb99402a4e72a42 (diff)
downloadrules-cc-124d53937a088813a95317fcd535acc0cf69024a.tar.gz
rules: Consistently use new provider expressions
-rw-r--r--CC/EXPRESSIONS140
-rw-r--r--CC/proto/EXPRESSIONS19
-rw-r--r--proto/RULES19
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"