diff options
Diffstat (limited to 'rules/CC/foreign/EXPRESSIONS')
-rw-r--r-- | rules/CC/foreign/EXPRESSIONS | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/rules/CC/foreign/EXPRESSIONS b/rules/CC/foreign/EXPRESSIONS new file mode 100644 index 0000000..2988b32 --- /dev/null +++ b/rules/CC/foreign/EXPRESSIONS @@ -0,0 +1,123 @@ +{ "default-MAKE": + { "vars": ["defaults-transition"] + , "imports": {"list_provider": ["./", "../..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "foreign-defaults"] + , ["provider", "MAKE"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} + } + } +, "default-CMAKE": + { "vars": ["defaults-transition"] + , "imports": {"list_provider": ["./", "../..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "foreign-defaults"] + , ["provider", "CMAKE"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} + } + } +, "default-ENV": + { "vars": ["defaults-transition"] + , "imports": {"map_provider": ["", "field_map_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "foreign-defaults"] + , ["provider", "ENV"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + , ["default", {"type": "empty_map"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"} + } + } +, "default-PATH": + { "vars": ["defaults-transition"] + , "imports": {"list_provider": ["./", "../..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "foreign-defaults"] + , ["provider", "PATH"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} + } + } +, "default-TOOLCHAIN": + { "vars": ["defaults-transition"] + , "imports": {"map_provider": ["", "field_map_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "foreign-defaults"] + , ["provider", "TOOLCHAIN"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + , ["default", {"type": "empty_map"}] + ] + , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"} + } + } +, "default-NON_SYSTEM_TOOLS": + { "vars": ["defaults-transition"] + , "expression": + { "type": "map_union" + , "$1": + { "type": "foreach" + , "var": "x" + , "range": {"type": "FIELD", "name": "foreign-defaults"} + , "body": + { "type": "DEP_PROVIDES" + , "dep": {"type": "var", "name": "x"} + , "provider": "NON_SYSTEM_TOOLS" + , "transition": + { "type": "var" + , "name": "defaults-transition" + , "default": {"type": "empty_map"} + } + , "default": {"type": "empty_map"} + } + } + } + } +, "strip-prefix": + { "doc": + [ "Returns list of artifact maps (each map contains a single artifact)" + , "with the given prefix being stripped from their path." + ] + , "vars": ["artifacts", "paths", "prefix"] + , "vars_doc": + { "artifacts": ["A single map containing all artifacts."] + , "paths": ["List of (unprefixed) artifacts paths to consider."] + , "prefix": ["Prefix to strip from the artifact's path."] + } + , "expression": + { "type": "foreach" + , "var": "path" + , "range": {"type": "var", "name": "paths"} + , "body": + { "type": "singleton_map" + , "key": {"type": "var", "name": "path"} + , "value": + { "type": "lookup" + , "key": + { "type": "join" + , "separator": "/" + , "$1": + [ {"type": "var", "name": "prefix"} + , {"type": "var", "name": "path"} + ] + } + , "map": {"type": "var", "name": "artifacts"} + } + } + } + } +} |