diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-04-01 11:39:23 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-04-23 15:26:15 +0200 |
commit | 8859f56f490d4a21a3ac7000e913ed5a730b2327 (patch) | |
tree | 32febc78f0326cc15b5aef13cbecf3523fd40859 | |
parent | 6634c6cc70f74696761c2306f2ce353359359b2e (diff) | |
download | rules-cc-8859f56f490d4a21a3ac7000e913ed5a730b2327.tar.gz |
expressions CC: Add expression generating DWARF packages
-rw-r--r-- | CC/EXPRESSIONS | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index 476bc11..a085f6e 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -61,6 +61,27 @@ , "body": {"type": "var", "name": "AR"} } } +, "default-DWP": + { "vars": ["defaults-transition"] + , "imports": {"list_provider": ["./", "..", "field_list_provider"]} + , "expression": + { "type": "let*" + , "bindings": + [ ["fieldname", "defaults"] + , ["provider", "DWP"] + , ["transition", {"type": "var", "name": "defaults-transition"}] + , ["DWP", {"type": "CALL_EXPRESSION", "name": "list_provider"}] + , [ "DWP" + , { "type": "if" + , "cond": {"type": "var", "name": "DWP"} + , "then": {"type": "var", "name": "DWP"} + , "else": ["dwp"] + } + ] + ] + , "body": {"type": "var", "name": "DWP"} + } + } , "default-ARFLAGS": { "vars": ["defaults-transition"] , "imports": {"list_provider": ["./", "..", "field_list_provider"]} @@ -817,6 +838,142 @@ , "body": {"type": "var", "name": "flags"} } } +, "dwarf package": + { "vars": + [ "DWP" + , "TOOLCHAIN" + , "TOOLCHAIN_DIR" + , "NON_SYSTEM_TOOLS" + , "ENV" + , "name" + , "dwarf objects" + , "dwarf deps" + , "stage" + ] + , "imports": {"default-DWP": "default-DWP"} + , "expression": + { "type": "let*" + , "bindings": + [ [ "DWP" + , { "type": "var" + , "name": "DWP" + , "default": + { "type": "join" + , "$1": + { "type": "++" + , "$1": + [ { "type": "if" + , "cond": + { "type": "lookup" + , "key": "DWP" + , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"} + } + , "then": + ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"] + } + , {"type": "CALL_EXPRESSION", "name": "default-DWP"} + ] + } + } + } + ] + , [ "pkgname" + , {"type": "join", "$1": [{"type": "var", "name": "name"}, ".dwp"]} + ] + , [ "pkgpath" + , { "type": "if" + , "cond": {"type": "var", "name": "stage"} + , "then": + { "type": "join" + , "separator": "/" + , "$1": + [ {"type": "var", "name": "stage"} + , {"type": "var", "name": "pkgname"} + ] + } + , "else": {"type": "var", "name": "pkgname"} + } + ] + , [ "objects" + , { "type": "var" + , "name": "dwarf objects" + , "default": {"type": "empty_map"} + } + ] + , [ "objects" + , { "type": "disjoint_map_union" + , "$1": + [ {"type": "var", "name": "objects"} + , {"type": "var", "name": "dwarf deps"} + ] + } + ] + , [ "dwarf pkg" + , { "type": "if" + , "cond": {"type": "var", "name": "objects"} + , "else": {"type": "empty_map"} + , "then": + { "type": "let*" + , "bindings": + [ [ "staged objects" + , { "type": "to_subdir" + , "subdir": "work" + , "$1": {"type": "var", "name": "objects"} + } + ] + , [ "staged pkgpath" + , { "type": "join" + , "$1": ["work/", {"type": "var", "name": "pkgpath"}] + } + ] + , [ "staged pkg" + , { "type": "ACTION" + , "outs": [{"type": "var", "name": "staged pkgpath"}] + , "inputs": + { "type": "map_union" + , "$1": + [ {"type": "var", "name": "TOOLCHAIN"} + , {"type": "var", "name": "staged objects"} + ] + } + , "env": + { "type": "var" + , "name": "ENV" + , "default": {"type": "empty_map"} + } + , "cmd": + { "type": "++" + , "$1": + [ [ {"type": "var", "name": "DWP", "default": "dwp"} + , "-o" + , {"type": "var", "name": "staged pkgpath"} + ] + , { "type": "keys" + , "$1": {"type": "var", "name": "staged objects"} + } + ] + } + } + ] + , [ "pkg artifact" + , { "type": "lookup" + , "map": {"type": "var", "name": "staged pkg"} + , "key": {"type": "var", "name": "staged pkgpath"} + } + ] + ] + , "body": + { "type": "singleton_map" + , "key": {"type": "var", "name": "pkgpath"} + , "value": {"type": "var", "name": "pkg artifact"} + } + } + } + ] + ] + , "body": {"type": "var", "name": "dwarf pkg"} + } + } , "objects": { "vars": [ "COMPILER" |