summaryrefslogtreecommitdiff
path: root/CC/EXPRESSIONS
diff options
context:
space:
mode:
Diffstat (limited to 'CC/EXPRESSIONS')
-rw-r--r--CC/EXPRESSIONS527
1 files changed, 411 insertions, 116 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS
index 7871ace..81ac1fd 100644
--- a/CC/EXPRESSIONS
+++ b/CC/EXPRESSIONS
@@ -1,59 +1,98 @@
{ "default-CC":
- { "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
{ "type": "join"
, "$1":
{ "type": "let*"
- , "bindings": [["fieldname", "defaults"], ["provider", "CC"]]
+ , "bindings":
+ [ ["fieldname", "defaults"]
+ , ["provider", "CC"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
}
, "default-CXX":
- { "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
{ "type": "join"
, "$1":
{ "type": "let*"
- , "bindings": [["fieldname", "defaults"], ["provider", "CXX"]]
+ , "bindings":
+ [ ["fieldname", "defaults"]
+ , ["provider", "CXX"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
}
, "default-AR":
- { "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
{ "type": "join"
, "$1":
{ "type": "let*"
- , "bindings": [["fieldname", "defaults"], ["provider", "AR"]]
+ , "bindings":
+ [ ["fieldname", "defaults"]
+ , ["provider", "AR"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
}
, "default-CFLAGS":
- { "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
{ "type": "let*"
- , "bindings": [["fieldname", "defaults"], ["provider", "CFLAGS"]]
+ , "bindings":
+ [ ["fieldname", "defaults"]
+ , ["provider", "CFLAGS"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
, "default-CXXFLAGS":
- { "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
{ "type": "let*"
- , "bindings": [["fieldname", "defaults"], ["provider", "CXXFLAGS"]]
+ , "bindings":
+ [ ["fieldname", "defaults"]
+ , ["provider", "CXXFLAGS"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
, "default-ENV":
- { "imports": {"provider_list": ["./", "..", "field_provider_list"]}
+ { "vars": ["defaults-transition"]
+ , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
, "expression":
{ "type": "let*"
, "bindings":
[ ["fieldname", "defaults"]
, ["provider", "ENV"]
+ , [ "transition"
+ , {"type": "var", "name": "defaults-transition", "default": null}
+ ]
, ["default", {"type": "empty_map"}]
]
, "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
@@ -84,11 +123,12 @@
}
, "compile-deps":
{ "doc": ["Collect compile dependencies (headers) from given target_fields"]
- , "vars": ["deps-fieldnames", "transition"]
+ , "vars": ["deps-fieldnames", "deps-transition"]
, "vars_doc":
{ "deps-fieldnames":
["List of target_field names to collect dependencies from."]
- , "transition": ["The optional configuration transition for the targets."]
+ , "deps-transition":
+ ["The optional configuration transition for the targets."]
}
, "imports":
{ "runfiles_list": ["./", "..", "field_runfiles_list"]
@@ -108,6 +148,7 @@
{ "type": "let*"
, "bindings":
[ ["provider", "compile-deps"]
+ , ["transition", {"type": "var", "name": "deps-transition"}]
, ["default", {"type": "empty_map"}]
]
, "body":
@@ -120,13 +161,41 @@
}
}
}
+, "compile-args-deps":
+ { "doc": ["Collect compile arguments from given target_fields"]
+ , "vars": ["deps-fieldnames", "deps-transition"]
+ , "vars_doc":
+ { "deps-fieldnames":
+ ["List of target_field names to collect arguments from."]
+ , "deps-transition":
+ ["The optional configuration transition for the targets."]
+ }
+ , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
+ , "expression":
+ { "type": "++"
+ , "$1":
+ { "type": "foreach"
+ , "var": "fieldname"
+ , "range": {"type": "var", "name": "deps-fieldnames"}
+ , "body":
+ { "type": "let*"
+ , "bindings":
+ [ ["provider", "compile-args"]
+ , ["transition", {"type": "var", "name": "deps-transition"}]
+ ]
+ , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
+ }
+ }
+ }
+ }
, "link-deps":
{ "doc": ["Collect link dependencies (libraries) from given target_fields"]
- , "vars": ["deps-fieldnames", "transition"]
+ , "vars": ["deps-fieldnames", "deps-transition"]
, "vars_doc":
{ "deps-fieldnames":
["List of target_field names to collect dependencies from."]
- , "transition": ["The optional configuration transition for the targets."]
+ , "deps-transition":
+ ["The optional configuration transition for the targets."]
}
, "imports":
{ "artifacts_list": ["./", "..", "field_artifacts_list"]
@@ -145,7 +214,10 @@
, "$1":
{ "type": "let*"
, "bindings":
- [["provider", "link-deps"], ["default", {"type": "empty_map"}]]
+ [ ["provider", "link-deps"]
+ , ["default", {"type": "empty_map"}]
+ , ["transition", {"type": "var", "name": "deps-transition"}]
+ ]
, "body":
[ {"type": "CALL_EXPRESSION", "name": "provider_list"}
, {"type": "CALL_EXPRESSION", "name": "artifacts_list"}
@@ -158,11 +230,12 @@
}
, "link-args-deps":
{ "doc": ["Collect linker arguments from given target_fields"]
- , "vars": ["deps-fieldnames", "transition"]
+ , "vars": ["deps-fieldnames", "deps-transition"]
, "vars_doc":
{ "deps-fieldnames":
["List of target_field names to collect arguments from."]
- , "transition": ["The optional configuration transition for the targets."]
+ , "deps-transition":
+ ["The optional configuration transition for the targets."]
}
, "imports": {"list_provider": ["./", "..", "field_list_provider"]}
, "expression":
@@ -173,14 +246,25 @@
, "range": {"type": "var", "name": "deps-fieldnames"}
, "body":
{ "type": "let*"
- , "bindings": [["provider", "link-args"]]
+ , "bindings":
+ [ ["provider", "link-args"]
+ , ["transition", {"type": "var", "name": "deps-transition"}]
+ ]
, "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
}
}
}
}
, "objects":
- { "vars": ["CXX", "CXXFLAGS", "ENV", "srcs", "compile-deps", "local hdrs"]
+ { "vars":
+ [ "COMPILER"
+ , "COMPILE_FLAGS"
+ , "ENV"
+ , "srcs"
+ , "hdrs"
+ , "private-hdrs"
+ , "compile-deps"
+ ]
, "expression":
{ "type": "let*"
, "bindings":
@@ -197,7 +281,13 @@
[ {"type": "var", "name": "include tree"}
, { "type": "to_subdir"
, "subdir": "work"
- , "$1": {"type": "var", "name": "local hdrs"}
+ , "$1":
+ { "type": "disjoint_map_union"
+ , "$1":
+ [ {"type": "var", "name": "hdrs"}
+ , {"type": "var", "name": "private-hdrs"}
+ ]
+ }
}
]
}
@@ -254,8 +344,8 @@
, "cmd":
{ "type": "++"
, "$1":
- [ [{"type": "var", "name": "CXX"}]
- , {"type": "var", "name": "CXXFLAGS"}
+ [ [{"type": "var", "name": "COMPILER"}]
+ , {"type": "var", "name": "COMPILE_FLAGS"}
, ["-I", "work", "-isystem", "include"]
, ["-c", {"type": "var", "name": "work src_name"}]
, ["-o", {"type": "var", "name": "work out"}]
@@ -284,70 +374,98 @@
}
}
}
+, "compiler-cc":
+ { "vars": ["CC", "defaults-transition"]
+ , "imports": {"default-CC": "default-CC"}
+ , "expression":
+ { "type": "var"
+ , "name": "CC"
+ , "default": {"type": "CALL_EXPRESSION", "name": "default-CC"}
+ }
+ }
+, "compiler-cxx":
+ { "vars": ["CXX", "defaults-transition"]
+ , "imports": {"default-CXX": "default-CXX"}
+ , "expression":
+ { "type": "var"
+ , "name": "CXX"
+ , "default": {"type": "CALL_EXPRESSION", "name": "default-CXX"}
+ }
+ }
, "compiler":
- { "vars": ["CC", "CXX"]
- , "imports": {"default-CC": "default-CC", "default-CXX": "default-CXX"}
+ { "vars": ["CC", "CXX", "pure C", "defaults-transition"]
+ , "imports": {"compiler-cc": "compiler-cc", "compiler-cxx": "compiler-cxx"}
, "expression":
{ "type": "if"
- , "cond": {"type": "FIELD", "name": "pure C"}
- , "then":
- { "type": "var"
- , "name": "CC"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CC"}
- }
- , "else":
- { "type": "var"
- , "name": "CXX"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CXX"}
- }
+ , "cond": {"type": "var", "name": "pure C"}
+ , "then": {"type": "CALL_EXPRESSION", "name": "compiler-cc"}
+ , "else": {"type": "CALL_EXPRESSION", "name": "compiler-cxx"}
}
}
-, "flags":
- { "vars": ["CFLAGS", "CXXFLAGS", "ADD_CFLAGS", "ADD_CXXFLAGS"]
- , "imports":
- { "default-CFLAGS": "default-CFLAGS"
- , "default-CXXFLAGS": "default-CXXFLAGS"
+, "flags-cc":
+ { "vars": ["CFLAGS", "ADD_CFLAGS", "defaults-transition"]
+ , "imports": {"default-CFLAGS": "default-CFLAGS"}
+ , "expression":
+ { "type": "++"
+ , "$1":
+ [ { "type": "var"
+ , "name": "CFLAGS"
+ , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"}
+ }
+ , {"type": "var", "name": "ADD_CFLAGS", "default": []}
+ ]
}
+ }
+, "flags-cxx":
+ { "vars": ["CXXFLAGS", "ADD_CXXFLAGS", "defaults-transition"]
+ , "imports": {"default-CXXFLAGS": "default-CXXFLAGS"}
, "expression":
- { "type": "if"
- , "cond": {"type": "FIELD", "name": "pure C"}
- , "then":
- { "type": "++"
- , "$1":
- [ { "type": "var"
- , "name": "CFLAGS"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"}
- }
- , {"type": "var", "name": "ADD_CFLAGS", "default": []}
- ]
- }
- , "else":
- { "type": "++"
- , "$1":
- [ { "type": "var"
- , "name": "CXXFLAGS"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"}
- }
- , {"type": "var", "name": "ADD_CXXFLAGS", "default": []}
- ]
- }
+ { "type": "++"
+ , "$1":
+ [ { "type": "var"
+ , "name": "CXXFLAGS"
+ , "default": {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"}
+ }
+ , {"type": "var", "name": "ADD_CXXFLAGS", "default": []}
+ ]
}
}
-, "lib artifact":
+, "flags":
{ "vars":
- [ "CXX"
+ [ "CFLAGS"
, "CXXFLAGS"
+ , "ADD_CFLAGS"
, "ADD_CXXFLAGS"
- , "CC"
+ , "pure C"
+ , "defaults-transition"
+ ]
+ , "imports": {"flags-cc": "flags-cc", "flags-cxx": "flags-cxx"}
+ , "expression":
+ { "type": "if"
+ , "cond": {"type": "var", "name": "pure C"}
+ , "then": {"type": "CALL_EXPRESSION", "name": "flags-cc"}
+ , "else": {"type": "CALL_EXPRESSION", "name": "flags-cxx"}
+ }
+ }
+, "lib artifact":
+ { "vars":
+ [ "CC"
+ , "CXX"
, "CFLAGS"
+ , "CXXFLAGS"
, "ADD_CFLAGS"
- , "ENV"
+ , "ADD_CXXFLAGS"
, "AR"
+ , "ENV"
+ , "name"
+ , "pure C"
, "srcs"
, "hdrs"
, "private-hdrs"
- , "local cflags"
+ , "stage"
, "compile-deps"
+ , "compile-args"
+ , "defaults-transition"
]
, "imports":
{ "compiler": "compiler"
@@ -359,28 +477,21 @@
, "expression":
{ "type": "let*"
, "bindings":
- [ [ "stage"
- , { "type": "join"
- , "separator": "/"
- , "$1": {"type": "FIELD", "name": "stage"}
+ [ ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
+ , [ "COMPILE_FLAGS"
+ , { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "flags"}
+ , {"type": "var", "name": "compile-args"}
+ ]
}
]
- , ["CXX", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , ["CXXFLAGS", {"type": "CALL_EXPRESSION", "name": "flags"}]
, [ "AR"
, { "type": "var"
, "name": "AR"
, "default": {"type": "CALL_EXPRESSION", "name": "default-AR"}
}
]
- , [ "CXXFLAGS"
- , { "type": "++"
- , "$1":
- [ {"type": "var", "name": "CXXFLAGS"}
- , {"type": "var", "name": "local cflags", "default": []}
- ]
- }
- ]
, [ "ENV"
, { "type": "map_union"
, "$1":
@@ -396,32 +507,16 @@
}
}
]
- , [ "local hdrs"
- , { "type": "disjoint_map_union"
- , "$1":
- [ {"type": "var", "name": "hdrs"}
- , {"type": "var", "name": "private-hdrs"}
- ]
- }
- ]
, ["objects", {"type": "CALL_EXPRESSION", "name": "objects"}]
, [ "base name"
- , { "type": "let*"
- , "bindings":
- [ [ "name"
- , {"type": "join", "$1": {"type": "FIELD", "name": "name"}}
- ]
- ]
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "objects"}
- , "then":
- { "type": "assert_non_empty"
- , "msg": "A name has to be provided for non-header-only libraries"
- , "$1": {"type": "var", "name": "name"}
- }
- , "else": {"type": "var", "name": "name"}
+ , { "type": "if"
+ , "cond": {"type": "var", "name": "objects"}
+ , "then":
+ { "type": "assert_non_empty"
+ , "msg": "A name has to be provided for non-header-only libraries"
+ , "$1": {"type": "var", "name": "name"}
}
+ , "else": {"type": "var", "name": "name"}
}
]
, [ "libname"
@@ -462,23 +557,30 @@
}
, "lib result":
{ "vars":
- [ "CXX"
- , "CXXFLAGS"
- , "ADD_CXXFLAGS"
- , "CC"
+ [ "CC"
+ , "CXX"
, "CFLAGS"
+ , "CXXFLAGS"
, "ADD_CFLAGS"
- , "ENV"
+ , "ADD_CXXFLAGS"
, "AR"
+ , "ENV"
+ , "name"
+ , "pure C"
, "srcs"
, "hdrs"
, "private-hdrs"
- , "local cflags"
- , "link external"
+ , "cflags"
+ , "private-cflags"
+ , "private-ldflags"
+ , "stage"
, "extra-provides"
+ , "public-fieldnames"
+ , "private-fieldnames"
]
, "imports":
{ "compile-deps": "compile-deps"
+ , "compile-args-deps": "compile-args-deps"
, "link-deps": "link-deps"
, "link-args-deps": "link-args-deps"
, "lib artifact": "lib artifact"
@@ -486,8 +588,20 @@
, "expression":
{ "type": "let*"
, "bindings":
- [ ["deps-fieldnames", ["deps", "private-deps", "proto-deps"]]
+ [ ["deps-fieldnames", {"type": "var", "name": "private-fieldnames"}]
, ["compile-deps", {"type": "CALL_EXPRESSION", "name": "compile-deps"}]
+ , [ "compile-args"
+ , { "type": "nub_right"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "cflags"}
+ , {"type": "var", "name": "private-cflags"}
+ , {"type": "CALL_EXPRESSION", "name": "compile-args-deps"}
+ ]
+ }
+ }
+ ]
, ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
, ["lib", {"type": "CALL_EXPRESSION", "name": "lib artifact"}]
, [ "link-args"
@@ -496,14 +610,25 @@
{ "type": "++"
, "$1":
[ {"type": "keys", "$1": {"type": "var", "name": "lib"}}
- , {"type": "var", "name": "link external", "default": []}
+ , {"type": "var", "name": "private-ldflags", "default": []}
, {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
]
}
}
]
- , ["deps-fieldnames", ["deps", "proto-deps"]]
+ , ["deps-fieldnames", {"type": "var", "name": "public-fieldnames"}]
, ["compile-deps", {"type": "CALL_EXPRESSION", "name": "compile-deps"}]
+ , [ "compile-args"
+ , { "type": "nub_right"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "cflags"}
+ , {"type": "CALL_EXPRESSION", "name": "compile-args-deps"}
+ ]
+ }
+ }
+ ]
]
, "body":
{ "type": "RESULT"
@@ -512,7 +637,10 @@
, "provides":
{ "type": "map_union"
, "$1":
- [ {"type": "env", "vars": ["compile-deps", "link-deps", "link-args"]}
+ [ { "type": "env"
+ , "vars":
+ ["compile-deps", "compile-args", "link-deps", "link-args"]
+ }
, { "type": "var"
, "name": "extra-provides"
, "default": {"type": "empty_map"}
@@ -522,4 +650,171 @@
}
}
}
+, "bin artifact":
+ { "doc": ["Produces the binary artifact."]
+ , "vars":
+ [ "CC"
+ , "CXX"
+ , "CFLAGS"
+ , "CXXFLAGS"
+ , "ADD_CFLAGS"
+ , "ADD_CXXFLAGS"
+ , "ENV"
+ , "name"
+ , "pure C"
+ , "srcs"
+ , "private-hdrs"
+ , "stage"
+ , "compile-deps"
+ , "compile-args"
+ , "link-deps"
+ , "link-args"
+ , "defaults-transition"
+ ]
+ , "imports":
+ { "compiler": "compiler"
+ , "flags": "flags"
+ , "objects": "objects"
+ , "default-ENV": "default-ENV"
+ }
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
+ , [ "COMPILE_FLAGS"
+ , { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "flags"}
+ , {"type": "var", "name": "compile-args"}
+ ]
+ }
+ ]
+ , [ "ENV"
+ , { "type": "map_union"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "default-ENV"}
+ , [ { "type": "var"
+ , "name": "ENV"
+ , "default": {"type": "empty_map"}
+ }
+ ]
+ ]
+ }
+ }
+ ]
+ , ["hdrs", {"type": "empty_map"}]
+ , ["objects", {"type": "CALL_EXPRESSION", "name": "objects"}]
+ , [ "link-args"
+ , { "type": "nub_right"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "keys", "$1": {"type": "var", "name": "objects"}}
+ , {"type": "var", "name": "link-args"}
+ ]
+ }
+ }
+ ]
+ , [ "binpath"
+ , { "type": "if"
+ , "cond": {"type": "var", "name": "stage"}
+ , "then":
+ { "type": "join"
+ , "separator": "/"
+ , "$1":
+ [ {"type": "var", "name": "stage"}
+ , {"type": "var", "name": "name"}
+ ]
+ }
+ , "else": {"type": "var", "name": "name"}
+ }
+ ]
+ , [ "binary"
+ , { "type": "ACTION"
+ , "outs": [{"type": "var", "name": "binpath"}]
+ , "inputs":
+ { "type": "disjoint_map_union"
+ , "$1":
+ [ {"type": "var", "name": "objects"}
+ , {"type": "var", "name": "link-deps"}
+ ]
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1":
+ [ [ {"type": "var", "name": "COMPILER"}
+ , "-o"
+ , {"type": "var", "name": "binpath"}
+ ]
+ , {"type": "var", "name": "COMPILE_FLAGS"}
+ , {"type": "var", "name": "link-args"}
+ ]
+ }
+ , "env": {"type": "var", "name": "ENV"}
+ }
+ ]
+ ]
+ , "body": {"type": "var", "name": "binary"}
+ }
+ }
+, "bin result":
+ { "doc": ["Produces the binary target result."]
+ , "vars":
+ [ "CC"
+ , "CXX"
+ , "CFLAGS"
+ , "CXXFLAGS"
+ , "ADD_CFLAGS"
+ , "ADD_CXXFLAGS"
+ , "ENV"
+ , "name"
+ , "pure C"
+ , "srcs"
+ , "private-hdrs"
+ , "private-cflags"
+ , "private-ldflags"
+ , "stage"
+ , "private-fieldnames"
+ ]
+ , "imports":
+ { "compile-deps": "compile-deps"
+ , "compile-args-deps": "compile-args-deps"
+ , "link-deps": "link-deps"
+ , "link-args-deps": "link-args-deps"
+ , "binary": "bin artifact"
+ }
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ ["deps-fieldnames", {"type": "var", "name": "private-fieldnames"}]
+ , ["compile-deps", {"type": "CALL_EXPRESSION", "name": "compile-deps"}]
+ , [ "compile-args"
+ , { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "compile-args-deps"}
+ , {"type": "var", "name": "private-cflags"}
+ ]
+ }
+ ]
+ , ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
+ , [ "link-args"
+ , { "type": "nub_right"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
+ , {"type": "var", "name": "private-ldflags"}
+ ]
+ }
+ }
+ ]
+ ]
+ , "body":
+ { "type": "RESULT"
+ , "artifacts": {"type": "CALL_EXPRESSION", "name": "binary"}
+ }
+ }
+ }
}