summaryrefslogtreecommitdiff
path: root/CC/EXPRESSIONS
diff options
context:
space:
mode:
Diffstat (limited to 'CC/EXPRESSIONS')
-rw-r--r--CC/EXPRESSIONS4383
1 files changed, 0 insertions, 4383 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS
deleted file mode 100644
index 0e06903..0000000
--- a/CC/EXPRESSIONS
+++ /dev/null
@@ -1,4383 +0,0 @@
-{ "default-CC":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "CC"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- , ["CC", {"type": "CALL_EXPRESSION", "name": "list_provider"}]
- , [ "CC"
- , { "type": "if"
- , "cond": {"type": "var", "name": "CC"}
- , "then": {"type": "var", "name": "CC"}
- , "else": ["cc"]
- }
- ]
- ]
- , "body": {"type": "var", "name": "CC"}
- }
- }
-, "default-CXX":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "CXX"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- , ["CXX", {"type": "CALL_EXPRESSION", "name": "list_provider"}]
- , [ "CXX"
- , { "type": "if"
- , "cond": {"type": "var", "name": "CXX"}
- , "then": {"type": "var", "name": "CXX"}
- , "else": ["c++"]
- }
- ]
- ]
- , "body": {"type": "var", "name": "CXX"}
- }
- }
-, "default-AR":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "AR"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- , ["AR", {"type": "CALL_EXPRESSION", "name": "list_provider"}]
- , [ "AR"
- , { "type": "if"
- , "cond": {"type": "var", "name": "AR"}
- , "then": {"type": "var", "name": "AR"}
- , "else": ["ar"]
- }
- ]
- ]
- , "body": {"type": "var", "name": "AR"}
- }
- }
-, "default-INCLUDE_SCANNER":
- { "vars": ["defaults-transition"]
- , "imports": {"map_provider": ["./", "..", "field_map_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "INCLUDE_SCANNER"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"}
- }
- }
-, "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"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "ARFLAGS"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- , ["ARFLAGS", {"type": "CALL_EXPRESSION", "name": "list_provider"}]
- , [ "ARFLAGS"
- , { "type": "if"
- , "cond": {"type": "var", "name": "ARFLAGS"}
- , "then": {"type": "var", "name": "ARFLAGS"}
- , "else": ["cqs"]
- }
- ]
- ]
- , "body": {"type": "var", "name": "ARFLAGS"}
- }
- }
-, "default-CFLAGS":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "CFLAGS"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
- }
- }
-, "default-CXXFLAGS":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "CXXFLAGS"]
- , ["transition", {"type": "var", "name": "defaults-transition"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
- }
- }
-, "default-LDFLAGS":
- { "vars": ["defaults-transition"]
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["fieldname", "defaults"]
- , ["provider", "LDFLAGS"]
- , ["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", "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", "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", "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": "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"}
- }
- }
- }
- }
-, "defaults-base-provides-list":
- { "doc": ["Query list of providers from 'base' targets"]
- , "vars": ["provider", "default"]
- , "vars_doc":
- { "provider": ["The name of the provider in the provides map."]
- , "default": ["The default if provider is missing (default: [])."]
- }
- , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
- , "expression":
- { "type": "let*"
- , "bindings": [["fieldname", "base"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
- }
- }
-, "defaults-base-provides-++":
- { "doc": ["Query flattend list of providers from 'base' targets"]
- , "vars": ["provider", "default"]
- , "vars_doc":
- { "provider": ["The name of the provider in the provides map."]
- , "default": ["The default if provider is missing (default: [])."]
- }
- , "imports": {"base-provides-list": "defaults-base-provides-list"}
- , "expression":
- { "type": "++"
- , "$1": {"type": "CALL_EXPRESSION", "name": "base-provides-list"}
- }
- }
-, "defaults-base-provides":
- { "doc": ["Query provider from 'base' targets (last wins)"]
- , "vars": ["provider", "default"]
- , "vars_doc":
- { "provider": ["The name of the provider in the provides map."]
- , "default": ["The default if provider is missing (default: [])."]
- }
- , "imports": {"base-provides-list": "defaults-base-provides-list"}
- , "expression":
- { "type": "foldl"
- , "var": "next"
- , "start": {"type": "var", "name": "default", "default": []}
- , "accum_var": "curr"
- , "range": {"type": "CALL_EXPRESSION", "name": "base-provides-list"}
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "next"}
- , "then": {"type": "var", "name": "next"}
- , "else": {"type": "var", "name": "curr"}
- }
- }
- }
-, "debug-deps":
- { "doc":
- ["Collect debug dependencies (sources/headers) from given target_fields"]
- , "vars":
- [ "deps-provider"
- , "deps-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "vars_doc":
- { "deps-provider": ["Name of provider to use (debug-srcs/debug-hdrs)."]
- , "deps-fieldnames":
- ["List of target_field names to collect dependencies from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
- , "expression":
- { "type": "map_union"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "++"
- , "$1":
- { "type": "let*"
- , "bindings":
- [ ["provider", {"type": "var", "name": "deps-provider"}]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- , ["default", {"type": "empty_map"}]
- ]
- , "body": [{"type": "CALL_EXPRESSION", "name": "provider_list"}]
- }
- }
- }
- }
- }
- }
-, "compile-deps":
- { "doc": ["Collect compile dependencies (headers) from given target_fields"]
- , "vars":
- [ "deps-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- , "component-fieldnames"
- ]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect dependencies from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports":
- { "runfiles_list": ["./", "..", "field_runfiles_list"]
- , "provider_list": ["./", "..", "field_provider_list"]
- }
- , "expression":
- { "type": "disjoint_map_union"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range":
- { "type": "++"
- , "$1":
- [ {"type": "var", "name": "deps-fieldnames"}
- , { "type": "var"
- , "name": "component-fieldnames"
- , "default": []
- }
- ]
- }
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "compile-deps"]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- , ["default", {"type": "empty_map"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
- }
- }
- }
- , { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- , ["default", {"type": "empty_map"}]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "runfiles_list"}
- }
- }
- }
- ]
- }
- }
- }
-, "compile-args-deps":
- { "doc": ["Collect compile arguments from given target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect arguments from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "compile-args"]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"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"
- , "deps-transition"
- , "modified-transitions"
- , "component-fieldnames"
- ]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect dependencies from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports":
- { "artifacts_list": ["./", "..", "field_artifacts_list"]
- , "provider_list": ["./", "..", "field_provider_list"]
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "drop_artifacts"
- , { "type": "set"
- , "$1":
- {"type": "var", "name": "component-fieldnames", "default": []}
- }
- ]
- ]
- , "body":
- { "type": "disjoint_map_union"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "++"
- , "$1":
- { "type": "let*"
- , "bindings":
- [ ["provider", "link-deps"]
- , ["default", {"type": "empty_map"}]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body":
- [ {"type": "CALL_EXPRESSION", "name": "provider_list"}
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "map": {"type": "var", "name": "drop_artifacts"}
- , "key": {"type": "var", "name": "fieldname"}
- }
- , "then": []
- , "else":
- {"type": "CALL_EXPRESSION", "name": "artifacts_list"}
- }
- ]
- }
- }
- }
- }
- }
- }
- }
-, "link-args-deps":
- { "doc": ["Collect linker arguments from given target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect arguments from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "link-args"]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
- }
- }
- }
- }
- }
-, "run-libs-deps":
- { "doc": ["Collect runtime libraries from given target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect dependencies from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
- , "expression":
- { "type": "to_subdir"
- , "flat": true
- , "$1":
- { "type": "disjoint_map_union"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "run-libs"]
- , ["default", {"type": "empty_map"}]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"}
- }
- }
- }
- }
- }
- }
-, "run-libs-args-deps":
- { "doc":
- ["Collect runtime libraries link arguments from given target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames":
- ["List of target_field names to collect arguments from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"list_provider": ["./", "..", "field_list_provider"]}
- , "expression":
- { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "run-libs-args"]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
- }
- }
- }
- }
- }
-, "pkg-map-provider-deps":
- { "doc": ["Collect maps from provider \"package\" for given target_fields"]
- , "vars":
- ["pkg-key", "deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "pkg-key": ["Key to lookup in provider \"package\"."]
- , "deps-fieldnames": ["List of target_field names to collect maps from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"provider_list": ["./", "..", "field_provider_list"]}
- , "expression":
- { "type": "disjoint_map_union"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "package"]
- , ["default", {"type": "empty_map"}]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body":
- { "type": "foreach"
- , "range": {"type": "CALL_EXPRESSION", "name": "provider_list"}
- , "var": "map"
- , "body":
- { "type": "lookup"
- , "key": {"type": "var", "name": "pkg-key"}
- , "map": {"type": "var", "name": "map"}
- , "default": {"type": "empty_map"}
- }
- }
- }
- }
- }
- }
- }
-, "cflags-files-deps":
- { "doc": ["Collect cflags files from target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames": ["List of target_field names to collect files from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"pkg-provider": "pkg-map-provider-deps"}
- , "expression":
- { "type": "let*"
- , "bindings": [["pkg-key", "cflags-files"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "pkg-provider"}
- }
- }
-, "ldflags-files-deps":
- { "doc": ["Collect cflags files from target_fields"]
- , "vars": ["deps-fieldnames", "deps-transition", "modified-transitions"]
- , "vars_doc":
- { "deps-fieldnames": ["List of target_field names to collect files from."]
- , "deps-transition":
- ["The optional configuration transition for the targets."]
- , "modified-transitions":
- ["Map telling fields that need to be transitioned differently"]
- }
- , "imports": {"pkg-provider": "pkg-map-provider-deps"}
- , "expression":
- { "type": "let*"
- , "bindings": [["pkg-key", "ldflags-files"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "pkg-provider"}
- }
- }
-, "pkg-prefix-lib-paths":
- { "doc": ["Detect ldflags referring to local libs and prefix them."]
- , "vars": ["pkg-ldflags", "pkg-libs", "flat-libs", "lib-prefix"]
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "libs set"
- , { "type": "set"
- , "$1": {"type": "keys", "$1": {"type": "var", "name": "pkg-libs"}}
- }
- ]
- ]
- , "body":
- { "type": "foreach"
- , "var": "item"
- , "range": {"type": "var", "name": "pkg-ldflags"}
- , "body":
- { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": {"type": "var", "name": "item"}
- , "map": {"type": "var", "name": "libs set"}
- }
- , "then":
- { "type": "join"
- , "$1":
- { "type": "if"
- , "cond": {"type": "var", "name": "flat-libs"}
- , "then":
- [ "-l:"
- , {"type": "basename", "$1": {"type": "var", "name": "item"}}
- ]
- , "else":
- [ {"type": "var", "name": "lib-prefix"}
- , "/"
- , {"type": "var", "name": "item"}
- ]
- }
- }
- , "else": {"type": "var", "name": "item"}
- }
- }
- }
- }
-, "pkg-prefix-flag-paths":
- { "doc": ["Detect flags referring to local flag files and prefix them."]
- , "vars": ["flags", "pkg-flag-files", "flag-prefix"]
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "pkg-flag-files unprefix map"
- , { "type": "map_union"
- , "$1":
- { "type": "foreach"
- , "var": "name"
- , "range":
- {"type": "keys", "$1": {"type": "var", "name": "pkg-flag-files"}}
- , "body":
- { "type": "singleton_map"
- , "key":
- {"type": "join", "$1": ["@", {"type": "var", "name": "name"}]}
- , "value": {"type": "var", "name": "name"}
- }
- }
- }
- ]
- ]
- , "body":
- { "type": "foreach"
- , "var": "item"
- , "range": {"type": "var", "name": "flags"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "flag-file"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "pkg-flag-files unprefix map"}
- , "key": {"type": "var", "name": "item"}
- }
- ]
- ]
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "flag-file"}
- , "then":
- { "type": "join"
- , "$1":
- [ "@"
- , {"type": "var", "name": "flag-prefix"}
- , "/"
- , {"type": "var", "name": "flag-file"}
- ]
- }
- , "else": {"type": "var", "name": "item"}
- }
- }
- }
- }
- }
-, "pkg-config":
- { "vars":
- [ "pkg-name"
- , "pkg-prefix"
- , "pkg-version"
- , "pkg-cflags"
- , "pkg-ldflags"
- , "pkg-flag-files"
- , "pkg-libs"
- , "flat-libs"
- , "pc-install-dir"
- ]
- , "imports":
- { "pkg-prefix-lib-paths": "pkg-prefix-lib-paths"
- , "pkg-prefix-flag-paths": "pkg-prefix-flag-paths"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["lib-prefix", "${libdir}"]
- , [ "pkg-ldflags"
- , {"type": "CALL_EXPRESSION", "name": "pkg-prefix-lib-paths"}
- ]
- , [ "flag-prefix"
- , { "type": "join"
- , "$1": ["${prefix}/", {"type": "var", "name": "pc-install-dir"}]
- }
- ]
- , ["flags", {"type": "var", "name": "pkg-cflags"}]
- , [ "pkg-cflags"
- , {"type": "CALL_EXPRESSION", "name": "pkg-prefix-flag-paths"}
- ]
- , ["flags", {"type": "var", "name": "pkg-ldflags"}]
- , [ "pkg-ldflags"
- , {"type": "CALL_EXPRESSION", "name": "pkg-prefix-flag-paths"}
- ]
- ]
- , "body":
- { "type": "singleton_map"
- , "key":
- {"type": "join", "$1": [{"type": "var", "name": "pkg-name"}, ".pc"]}
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "join"
- , "separator": "\n"
- , "$1":
- [ { "type": "join"
- , "$1":
- [ "prefix="
- , {"type": "var", "name": "pkg-prefix", "default": "/"}
- ]
- }
- , "libdir=${prefix}/lib"
- , "includedir=${prefix}/include"
- , { "type": "join"
- , "$1": ["Name: ", {"type": "var", "name": "pkg-name"}]
- }
- , { "type": "join"
- , "$1":
- [ "Version: "
- , {"type": "var", "name": "pkg-version", "default": "unknown"}
- ]
- }
- , { "type": "join"
- , "$1":
- [ "Description: Pkg-config for "
- , {"type": "var", "name": "pkg-name"}
- , ", generated by JustBuild"
- ]
- }
- , "URL: unknown"
- , { "type": "join"
- , "separator": " "
- , "$1":
- { "type": "++"
- , "$1":
- [ ["Cflags:", "-I${includedir}"]
- , {"type": "var", "name": "pkg-cflags"}
- ]
- }
- }
- , { "type": "join"
- , "separator": " "
- , "$1":
- { "type": "++"
- , "$1":
- [ ["Libs:"]
- , { "type": "if"
- , "cond": {"type": "var", "name": "flat-libs"}
- , "then": ["-L${libdir}"]
- }
- , {"type": "var", "name": "pkg-ldflags"}
- ]
- }
- }
- , ""
- ]
- }
- }
- }
- }
- }
-, "add-fission-compile-flags":
- { "doc": ["Add debug fission flags, if enabled, to existing compile flags."]
- , "vars": ["COMPILE_FLAGS", "DEBUG"]
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "fission-config"
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "then":
- { "type": "assert_non_empty"
- , "msg":
- [ "Debug fission requires non-empty debug map FISSION_CONFIG field"
- ]
- , "$1":
- { "type": "lookup"
- , "key": "FISSION_CONFIG"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "flags"
- , { "type": "++"
- , "$1":
- [ {"type": "var", "name": "COMPILE_FLAGS"}
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_SPLIT_DWARF"
- , "map": {"type": "var", "name": "fission-config"}
- }
- , "then": ["-gsplit-dwarf"]
- }
- , { "type": "let*"
- , "bindings":
- [ [ "version"
- , { "type": "lookup"
- , "key": "DWARF_VERSION"
- , "map": {"type": "var", "name": "fission-config"}
- }
- ]
- ]
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "version"}
- , "then":
- [ { "type": "join"
- , "$1": ["-gdwarf-", {"type": "var", "name": "version"}]
- }
- ]
- }
- }
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_TYPES_SECTION"
- , "map": {"type": "var", "name": "fission-config"}
- }
- , "then": ["-fdebug-types-section"]
- }
- ]
- }
- ]
- ]
- , "body": {"type": "var", "name": "flags"}
- }
- }
-, "add-fission-link-flags":
- { "doc": ["Add debug fission flags, if enabled, to existing link flags."]
- , "vars": ["LDFLAGS", "DEBUG"]
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "fission-config"
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "then":
- { "type": "assert_non_empty"
- , "msg":
- [ "Debug fission requires non-empty debug map FISSION_CONFIG field"
- ]
- , "$1":
- { "type": "lookup"
- , "key": "FISSION_CONFIG"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "flags"
- , { "type": "++"
- , "$1":
- [ {"type": "var", "name": "LDFLAGS"}
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_GDB_INDEX"
- , "map": {"type": "var", "name": "fission-config"}
- }
- , "then": ["-Wl,--gdb-index"]
- }
- ]
- }
- ]
- ]
- , "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"
- , "COMPILE_FLAGS"
- , "ENV"
- , "DEBUG"
- , "TOOLCHAIN"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "compile-deps"
- , "cflags-files"
- , "component-fieldnames"
- , "defaults-transition"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "imports":
- { "field_artifacts": ["./", "..", "field_artifacts"]
- , "default-INCLUDE_SCANNER": "default-INCLUDE_SCANNER"
- , "add-fission-compile-flags": "add-fission-compile-flags"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "include tree"
- , { "type": "singleton_map"
- , "key": "include"
- , "value":
- {"type": "TREE", "$1": {"type": "var", "name": "compile-deps"}}
- }
- ]
- , [ "all hdrs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "include tree"}
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1":
- { "type": "disjoint_map_union"
- , "$1":
- [ {"type": "var", "name": "hdrs"}
- , {"type": "var", "name": "private-hdrs"}
- ]
- }
- }
- ]
- }
- ]
- , [ "include_scan_tool"
- , { "type": "disjoint_map_union"
- , "msg": "Include scanner should be single artifact"
- , "$1":
- { "type": "foreach"
- , "var": "artifact"
- , "range":
- { "type": "values"
- , "$1":
- {"type": "CALL_EXPRESSION", "name": "default-INCLUDE_SCANNER"}
- }
- , "body":
- { "type": "singleton_map"
- , "key": "include_scan"
- , "value": {"type": "var", "name": "artifact"}
- }
- }
- }
- ]
- , [ "compile flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-compile-flags"}
- ]
- , [ "my output artifacts"
- , { "type": "foreach_map"
- , "var_key": "src_name"
- , "var_val": "src_val"
- , "range": {"type": "var", "name": "srcs"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "work src_name"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "src_name"}]
- }
- ]
- , [ "inputs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "all hdrs"}
- , { "type": "singleton_map"
- , "key": {"type": "var", "name": "work src_name"}
- , "value": {"type": "var", "name": "src_val"}
- }
- , { "type": "var"
- , "name": "cflags-files"
- , "default": {"type": "empty_map"}
- }
- , { "type": "var"
- , "name": "TOOLCHAIN"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- ]
- , [ "out"
- , { "type": "change_ending"
- , "$1": {"type": "var", "name": "src_name"}
- , "ending": ".o"
- }
- ]
- , [ "work out"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "out"}]
- }
- ]
- , [ "dwarf out"
- , { "type": "change_ending"
- , "$1": {"type": "var", "name": "src_name"}
- , "ending": ".dwo"
- }
- ]
- , [ "work dwarf out"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "dwarf out"}]
- }
- ]
- , [ "cmdline"
- , { "type": "++"
- , "$1":
- [ [{"type": "var", "name": "COMPILER"}]
- , {"type": "var", "name": "compile flags"}
- , ["-I", "work", "-isystem", "include"]
- , ["-c", {"type": "var", "name": "work src_name"}]
- ]
- }
- ]
- , [ "minimal include tree"
- , { "type": "if"
- , "cond": {"type": "var", "name": "include_scan_tool"}
- , "then":
- { "type": "from_subdir"
- , "subdir": "out"
- , "$1":
- { "type": "ACTION"
- , "out_dirs": ["out/include"]
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "inputs"}
- , {"type": "var", "name": "include_scan_tool"}
- ]
- }
- , "env":
- { "type": "var"
- , "name": "ENV"
- , "default": {"type": "empty_map"}
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ ["./include_scan"]
- , ["out"]
- , {"type": "var", "name": "cmdline"}
- , ["-E", "-M"]
- ]
- }
- }
- }
- , "else": {"type": "var", "name": "include tree"}
- }
- ]
- , [ "minimal inputs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "inputs"}
- , {"type": "var", "name": "minimal include tree"}
- ]
- }
- ]
- , [ "action output"
- , { "type": "ACTION"
- , "outs":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "then": [{"type": "var", "name": "work dwarf out"}]
- , "else": []
- }
- , [{"type": "var", "name": "work out"}]
- ]
- }
- , "inputs": {"type": "var", "name": "minimal inputs"}
- , "env":
- { "type": "var"
- , "name": "ENV"
- , "default": {"type": "empty_map"}
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ {"type": "var", "name": "cmdline"}
- , ["-o", {"type": "var", "name": "work out"}]
- ]
- }
- }
- ]
- , [ "staged output artifacts"
- , { "type": "++"
- , "$1":
- [ [ { "type": "singleton_map"
- , "key": {"type": "var", "name": "out"}
- , "value":
- { "type": "lookup"
- , "key": {"type": "var", "name": "work out"}
- , "map": {"type": "var", "name": "action output"}
- }
- }
- ]
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "else": []
- , "then":
- [ { "type": "singleton_map"
- , "key": {"type": "var", "name": "dwarf out"}
- , "value":
- { "type": "lookup"
- , "key": {"type": "var", "name": "work dwarf out"}
- , "map": {"type": "var", "name": "action output"}
- }
- }
- ]
- }
- ]
- }
- ]
- ]
- , "body": {"type": "var", "name": "staged output artifacts"}
- }
- }
- ]
- , [ "my objects"
- , { "type": "map_union"
- , "$1":
- { "type": "foreach"
- , "range": {"type": "var", "name": "my output artifacts"}
- , "body":
- { "type": "[]"
- , "index": "0"
- , "list": {"type": "var", "name": "_"}
- }
- }
- }
- ]
- , [ "my dwarf objects"
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "else": {"type": "empty_map"}
- , "then":
- { "type": "map_union"
- , "$1":
- { "type": "foreach"
- , "range": {"type": "var", "name": "my output artifacts"}
- , "body":
- { "type": "[]"
- , "index": "1"
- , "list": {"type": "var", "name": "_"}
- }
- }
- }
- }
- ]
- , [ "component artifacts"
- , { "type": "disjoint_map_union"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range":
- {"type": "var", "name": "component-fieldnames", "default": []}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "field_artifacts"}
- }
- }
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "singleton_map"
- , "key": "objects"
- , "value":
- { "type": "disjoint_map_union"
- , "msg": "Staging conflict between own objects and objects of components"
- , "$1":
- [ {"type": "var", "name": "my objects"}
- , {"type": "var", "name": "component artifacts"}
- ]
- }
- }
- , { "type": "singleton_map"
- , "key": "dwarf objects"
- , "value": {"type": "var", "name": "my dwarf objects"}
- }
- ]
- }
- }
- }
-, "lint information":
- { "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "DEBUG"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "compile-deps"
- , "cflags-files"
- , "lint-deps fieldnames"
- , "deps-transition"
- , "deps-fieldnames"
- , "compile-args"
- , "defaults-transition"
- , "modified-transitions"
- ]
- , "imports":
- { "list_provider": ["./", "..", "field_list_provider"]
- , "runfiles_list": ["./", "..", "field_runfiles_list"]
- , "default-TOOLCHAIN": "default-TOOLCHAIN"
- , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS"
- , "compiler": "compiler"
- , "flags": "flags"
- , "add-fission-compile-flags": "add-fission-compile-flags"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["TOOLCHAIN_DIR", "toolchain"]
- , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}]
- , [ "TOOLCHAIN"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"}
- , "$1": {"type": "var", "name": "TOOLCHAIN"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"}
- ]
- , ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , [ "COMPILE_FLAGS"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "flags"}
- , {"type": "var", "name": "compile-args"}
- ]
- }
- ]
- , [ "compile flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-compile-flags"}
- ]
- , [ "include tree"
- , { "type": "singleton_map"
- , "key": "include"
- , "value":
- {"type": "TREE", "$1": {"type": "var", "name": "compile-deps"}}
- }
- ]
- , [ "all hdrs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "include tree"}
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1":
- { "type": "disjoint_map_union"
- , "$1":
- [ {"type": "var", "name": "hdrs"}
- , {"type": "var", "name": "private-hdrs"}
- ]
- }
- }
- ]
- }
- ]
- , [ "direct-deps hdrs"
- , { "type": "to_subdir"
- , "subdir": "include"
- , "$1":
- { "type": "map_union"
- , "$1":
- { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "deps-fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body":
- {"type": "CALL_EXPRESSION", "name": "runfiles_list"}
- }
- }
- }
- }
- }
- ]
- , [ "own headers"
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "hdrs"}
- , {"type": "var", "name": "private-hdrs"}
- ]
- }
- }
- ]
- , [ "direct hdrs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "own headers"}
- , {"type": "var", "name": "direct-deps hdrs"}
- ]
- }
- ]
- , [ "direct deps artifact names"
- , {"type": "keys", "$1": {"type": "var", "name": "direct hdrs"}}
- ]
- , [ "hdr lint"
- , { "type": "foreach"
- , "range":
- { "type": "++"
- , "$1":
- [ {"type": "keys", "$1": {"type": "var", "name": "private-hdrs"}}
- , {"type": "keys", "$1": {"type": "var", "name": "hdrs"}}
- ]
- }
- , "body":
- { "type": "VALUE_NODE"
- , "$1":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "all hdrs"}
- , "provides":
- { "type": "let*"
- , "bindings":
- [ [ "src"
- , { "type": "join"
- , "$1": ["work/", {"type": "var", "name": "_"}]
- }
- ]
- , [ "cmd"
- , { "type": "++"
- , "$1":
- [ [{"type": "var", "name": "COMPILER"}]
- , {"type": "var", "name": "compile flags"}
- , [ "-I"
- , "work"
- , "-isystem"
- , "include"
- , "-E"
- , {"type": "var", "name": "src"}
- ]
- ]
- }
- ]
- , ["extra outs", []]
- ]
- , "body":
- { "type": "env"
- , "vars":
- ["cmd", "src", "direct deps artifact names", "extra outs"]
- }
- }
- }
- }
- }
- ]
- , [ "src lint"
- , { "type": "foreach_map"
- , "var_key": "src_name"
- , "var_val": "src_val"
- , "range": {"type": "var", "name": "srcs"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "work src_name"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "src_name"}]
- }
- ]
- , [ "inputs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "all hdrs"}
- , { "type": "singleton_map"
- , "key": {"type": "var", "name": "work src_name"}
- , "value": {"type": "var", "name": "src_val"}
- }
- , { "type": "var"
- , "name": "cflags-files"
- , "default": {"type": "empty_map"}
- }
- , { "type": "var"
- , "name": "TOOLCHAIN"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- ]
- , [ "out"
- , { "type": "change_ending"
- , "$1": {"type": "var", "name": "src_name"}
- , "ending": ".o"
- }
- ]
- , [ "work out"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "out"}]
- }
- ]
- , [ "dwarf out"
- , { "type": "change_ending"
- , "$1": {"type": "var", "name": "src_name"}
- , "ending": ".dwo"
- }
- ]
- , [ "work dwarf out"
- , { "type": "join"
- , "separator": "/"
- , "$1": ["work", {"type": "var", "name": "dwarf out"}]
- }
- ]
- , [ "extra outs"
- , { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- , "then": [{"type": "var", "name": "work dwarf out"}]
- , "else": []
- }
- ]
- , [ "cmd"
- , { "type": "++"
- , "$1":
- [ [{"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"}]
- ]
- }
- ]
- ]
- , "body":
- { "type": "VALUE_NODE"
- , "$1":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "inputs"}
- , "provides":
- { "type": "let*"
- , "bindings":
- [["src", {"type": "var", "name": "work src_name"}]]
- , "body":
- { "type": "env"
- , "vars":
- [ "cmd"
- , "src"
- , "direct deps artifact names"
- , "extra outs"
- ]
- }
- }
- }
- }
- }
- }
- ]
- , [ "dep lint nodes"
- , { "type": "++"
- , "$1":
- { "type": "foreach"
- , "var": "fieldname"
- , "range": {"type": "var", "name": "lint-deps fieldnames"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["provider", "lint"]
- , [ "transition"
- , { "type": "lookup"
- , "map":
- { "type": "var"
- , "name": "modified-transitions"
- , "default": {"type": "empty_map"}
- }
- , "key": {"type": "var", "name": "fieldname"}
- , "default": {"type": "var", "name": "deps-transition"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"}
- }
- }
- }
- ]
- , [ "lint nodes"
- , { "type": "++"
- , "$1":
- [ {"type": "var", "name": "hdr lint"}
- , {"type": "var", "name": "src lint"}
- , {"type": "var", "name": "dep lint nodes"}
- ]
- }
- ]
- , [ "lint nodes"
- , {"type": "nub_right", "$1": {"type": "var", "name": "lint nodes"}}
- ]
- ]
- , "body": {"type": "var", "name": "lint nodes"}
- }
- }
-, "compiler-cc":
- { "vars": ["CC", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "defaults-transition"]
- , "imports": {"default-CC": "default-CC"}
- , "expression":
- { "type": "var"
- , "name": "CC"
- , "default":
- { "type": "join"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "CC"
- , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"}
- }
- , "then": ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"]
- }
- , {"type": "CALL_EXPRESSION", "name": "default-CC"}
- ]
- }
- }
- }
- }
-, "compiler-cxx":
- { "vars": ["CXX", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "defaults-transition"]
- , "imports": {"default-CXX": "default-CXX"}
- , "expression":
- { "type": "var"
- , "name": "CXX"
- , "default":
- { "type": "join"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "CXX"
- , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"}
- }
- , "then": ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"]
- }
- , {"type": "CALL_EXPRESSION", "name": "default-CXX"}
- ]
- }
- }
- }
- }
-, "compiler":
- { "vars":
- [ "CC"
- , "CXX"
- , "pure C"
- , "TOOLCHAIN_DIR"
- , "NON_SYSTEM_TOOLS"
- , "defaults-transition"
- ]
- , "imports": {"compiler-cc": "compiler-cc", "compiler-cxx": "compiler-cxx"}
- , "expression":
- { "type": "if"
- , "cond": {"type": "var", "name": "pure C"}
- , "then": {"type": "CALL_EXPRESSION", "name": "compiler-cc"}
- , "else": {"type": "CALL_EXPRESSION", "name": "compiler-cxx"}
- }
- }
-, "flags-cc":
- { "vars":
- [ "CFLAGS"
- , "ADD_CFLAGS"
- , "BUILD_POSITION_INDEPENDENT"
- , "defaults-transition"
- ]
- , "imports": {"default-CFLAGS": "default-CFLAGS"}
- , "expression":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond": {"type": "var", "name": "BUILD_POSITION_INDEPENDENT"}
- , "then": ["-fPIC"]
- }
- , { "type": "var"
- , "name": "CFLAGS"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CFLAGS"}
- }
- , {"type": "var", "name": "ADD_CFLAGS", "default": []}
- ]
- }
- }
-, "flags-cxx":
- { "vars":
- [ "CXXFLAGS"
- , "ADD_CXXFLAGS"
- , "BUILD_POSITION_INDEPENDENT"
- , "defaults-transition"
- ]
- , "imports": {"default-CXXFLAGS": "default-CXXFLAGS"}
- , "expression":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond": {"type": "var", "name": "BUILD_POSITION_INDEPENDENT"}
- , "then": ["-fPIC"]
- }
- , { "type": "var"
- , "name": "CXXFLAGS"
- , "default": {"type": "CALL_EXPRESSION", "name": "default-CXXFLAGS"}
- }
- , {"type": "var", "name": "ADD_CXXFLAGS", "default": []}
- ]
- }
- }
-, "flags":
- { "vars":
- [ "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "DEBUG"
- , "BUILD_POSITION_INDEPENDENT"
- , "pure C"
- , "defaults-transition"
- ]
- , "imports": {"flags-cc": "flags-cc", "flags-cxx": "flags-cxx"}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "flags"
- , { "type": "if"
- , "cond": {"type": "var", "name": "pure C"}
- , "then": {"type": "CALL_EXPRESSION", "name": "flags-cc"}
- , "else": {"type": "CALL_EXPRESSION", "name": "flags-cxx"}
- }
- ]
- ]
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "flags"}
- , "then": {"type": "var", "name": "flags"}
- , "else":
- { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then": ["-g"]
- }
- }
- }
- }
-, "lib artifact":
- { "doc": ["Provides the library artifact."]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "AR"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "stage"
- , "compile-deps"
- , "compile-args"
- , "cflags-files"
- , "defaults-transition"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "imports": {"lib action": "lib action"}
- , "expression":
- { "type": "lookup"
- , "key": "library"
- , "map": {"type": "CALL_EXPRESSION", "name": "lib action"}
- , "default": {"type": "empty_map"}
- }
- }
-, "lib action":
- { "doc":
- [ "Run the action producing the library artifact and pass it together with"
- , "related information to consumers."
- ]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "AR"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "stage"
- , "compile-deps"
- , "compile-args"
- , "cflags-files"
- , "defaults-transition"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "imports":
- { "compiler": "compiler"
- , "flags": "flags"
- , "objects": "objects"
- , "default-AR": "default-AR"
- , "default-ARFLAGS": "default-ARFLAGS"
- , "default-ENV": "default-ENV"
- , "default-PATH": "default-PATH"
- , "default-TOOLCHAIN": "default-TOOLCHAIN"
- , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["TOOLCHAIN_DIR", "toolchain"]
- , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}]
- , [ "TOOLCHAIN"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"}
- , "$1": {"type": "var", "name": "TOOLCHAIN"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"}
- ]
- , ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , [ "COMPILE_FLAGS"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "flags"}
- , {"type": "var", "name": "compile-args"}
- ]
- }
- ]
- , [ "AR"
- , { "type": "var"
- , "name": "AR"
- , "default":
- { "type": "join"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond":
- { "type": "lookup"
- , "key": "AR"
- , "map": {"type": "var", "name": "NON_SYSTEM_TOOLS"}
- }
- , "then":
- ["./", {"type": "var", "name": "TOOLCHAIN_DIR"}, "/"]
- }
- , {"type": "CALL_EXPRESSION", "name": "default-AR"}
- ]
- }
- }
- }
- ]
- , ["ARFLAGS", {"type": "CALL_EXPRESSION", "name": "default-ARFLAGS"}]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-ENV"}
- , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- ]
- }
- ]
- , [ "ENV_PATH"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "ENV"}
- , "key": "PATH"
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "ENV"}
- , { "type": "singleton_map"
- , "key": "PATH"
- , "value":
- { "type": "join"
- , "separator": ":"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "ENV_PATH"}
- , "then": [{"type": "var", "name": "ENV_PATH"}]
- }
- ]
- }
- }
- }
- ]
- }
- ]
- , ["objects result", {"type": "CALL_EXPRESSION", "name": "objects"}]
- , [ "objects"
- , { "type": "lookup"
- , "key": "objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- , [ "base 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"
- , { "type": "join"
- , "$1": ["lib", {"type": "var", "name": "base name"}, ".a"]
- }
- ]
- , [ "libpath"
- , { "type": "if"
- , "cond": {"type": "var", "name": "stage"}
- , "then":
- { "type": "join"
- , "separator": "/"
- , "$1":
- [ {"type": "var", "name": "stage"}
- , {"type": "var", "name": "libname"}
- ]
- }
- , "else": {"type": "var", "name": "libname"}
- }
- ]
- , [ "lib"
- , { "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 libpath"
- , { "type": "join"
- , "$1": ["work/", {"type": "var", "name": "libpath"}]
- }
- ]
- , [ "staged lib"
- , { "type": "ACTION"
- , "outs": [{"type": "var", "name": "staged libpath"}]
- , "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": "AR", "default": "ar"}]
- , {"type": "var", "name": "ARFLAGS"}
- , [{"type": "var", "name": "staged libpath"}]
- , { "type": "keys"
- , "$1": {"type": "var", "name": "staged objects"}
- }
- ]
- }
- }
- ]
- , [ "lib artifact"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "staged lib"}
- , "key": {"type": "var", "name": "staged libpath"}
- }
- ]
- ]
- , "body":
- { "type": "singleton_map"
- , "key": {"type": "var", "name": "libpath"}
- , "value": {"type": "var", "name": "lib artifact"}
- }
- }
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "singleton_map"
- , "key": "library"
- , "value": {"type": "var", "name": "lib"}
- }
- , { "type": "singleton_map"
- , "key": "dwarf objects"
- , "value":
- { "type": "lookup"
- , "key": "dwarf objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- }
- , { "type": "env"
- , "vars": ["TOOLCHAIN", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "ENV"]
- }
- ]
- }
- }
- }
-, "lib result":
- { "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "AR"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "LINT"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "cflags"
- , "private-cflags"
- , "ldflags"
- , "private-ldflags"
- , "stage"
- , "pkg-name"
- , "extra-provides"
- , "public-fieldnames"
- , "private-fieldnames"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- , "defaults-transition"
- ]
- , "imports":
- { "compile-deps": "compile-deps"
- , "compile-args-deps": "compile-args-deps"
- , "link-deps": "link-deps"
- , "link-args-deps": "link-args-deps"
- , "run-libs-deps": "run-libs-deps"
- , "run-libs-args-deps": "run-libs-args-deps"
- , "cflags-files-deps": "cflags-files-deps"
- , "ldflags-files-deps": "ldflags-files-deps"
- , "lib action": "lib action"
- , "debug-deps": "debug-deps"
- , "lint": "lint information"
- , "dwarf package": "dwarf package"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
- , [ "lib action result"
- , {"type": "CALL_EXPRESSION", "name": "lib action"}
- ]
- , [ "lib"
- , { "type": "lookup"
- , "key": "library"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "dwarf objects"
- , { "type": "lookup"
- , "key": "dwarf objects"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , ["dwarf deps", {"type": "empty_map"}]
- , [ "dwarf-pkg"
- , { "type": "if"
- , "cond":
- { "type": "and"
- , "$1":
- [ {"type": "var", "name": "dwarf objects"}
- , { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- }
- , "then":
- { "type": "let*"
- , "bindings":
- [ [ "TOOLCHAIN"
- , { "type": "lookup"
- , "key": "TOOLCHAIN"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "TOOLCHAIN_DIR"
- , { "type": "lookup"
- , "key": "TOOLCHAIN_DIR"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , { "type": "lookup"
- , "key": "NON_SYSTEM_TOOLS"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "ENV"
- , { "type": "lookup"
- , "key": "ENV"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "dwarf package"}
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["lint-deps fieldnames", ["deps", "private-deps", "components"]]
- , [ "lint"
- , { "type": "if"
- , "cond": {"type": "var", "name": "LINT"}
- , "then": {"type": "CALL_EXPRESSION", "name": "lint"}
- }
- ]
- , [ "link-args"
- , { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "keys", "$1": {"type": "var", "name": "lib"}}
- , {"type": "var", "name": "ldflags", "default": []}
- , {"type": "var", "name": "private-ldflags", "default": []}
- , {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
- ]
- }
- }
- ]
- , ["run-libs", {"type": "CALL_EXPRESSION", "name": "run-libs-deps"}]
- , [ "run-libs-args"
- , {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"}
- ]
- , [ "ldflags-files"
- , {"type": "CALL_EXPRESSION", "name": "ldflags-files-deps"}
- ]
- , [ "debug-srcs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-srcs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "srcs"}
- , {"type": "var", "name": "private-hdrs"}
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "debug-hdrs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-hdrs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , [ "package"
- , { "type": "let*"
- , "bindings": [["name", {"type": "var", "name": "pkg-name"}]]
- , "body":
- {"type": "env", "vars": ["name", "cflags-files", "ldflags-files"]}
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "lib"}
- , "runfiles": {"type": "var", "name": "hdrs"}
- , "provides":
- { "type": "map_union"
- , "$1":
- [ { "type": "env"
- , "vars":
- [ "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "package"
- , "debug-srcs"
- , "debug-hdrs"
- , "lint"
- , "dwarf-pkg"
- ]
- }
- , { "type": "var"
- , "name": "extra-provides"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- }
- }
- }
-, "shared artifact":
- { "doc": ["Provides the shared library artifact."]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "soversion"
- , "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "cflags-files"
- , "ldflags-files"
- , "defaults-transition"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "imports": {"shared action": "shared action"}
- , "expression":
- { "type": "lookup"
- , "key": "library"
- , "map": {"type": "CALL_EXPRESSION", "name": "shared action"}
- , "default": {"type": "empty_map"}
- }
- }
-, "shared action":
- { "doc":
- [ "Run the action producing the shared artifact and pass it together with"
- , "related information to consumers."
- ]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "soversion"
- , "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "cflags-files"
- , "ldflags-files"
- , "defaults-transition"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- ]
- , "imports":
- { "compiler": "compiler"
- , "flags": "flags"
- , "objects": "objects"
- , "default-ENV": "default-ENV"
- , "default-PATH": "default-PATH"
- , "default-LDFLAGS": "default-LDFLAGS"
- , "default-TOOLCHAIN": "default-TOOLCHAIN"
- , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS"
- , "add-fission-compile-flags": "add-fission-compile-flags"
- , "add-fission-link-flags": "add-fission-link-flags"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["BUILD_POSITION_INDEPENDENT", true]
- , ["TOOLCHAIN_DIR", "toolchain"]
- , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}]
- , [ "TOOLCHAIN"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"}
- , "$1": {"type": "var", "name": "TOOLCHAIN"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"}
- ]
- , ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , [ "COMPILE_FLAGS"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "flags"}
- , {"type": "var", "name": "compile-args"}
- ]
- }
- ]
- , [ "LDFLAGS"
- , { "type": "++"
- , "$1":
- [ { "type": "var"
- , "name": "LDFLAGS"
- , "default":
- {"type": "CALL_EXPRESSION", "name": "default-LDFLAGS"}
- }
- , {"type": "var", "name": "ADD_LDFLAGS", "default": []}
- ]
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-ENV"}
- , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- ]
- }
- ]
- , [ "ENV_PATH"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "ENV"}
- , "key": "PATH"
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "ENV"}
- , { "type": "singleton_map"
- , "key": "PATH"
- , "value":
- { "type": "join"
- , "separator": ":"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "ENV_PATH"}
- , "then": [{"type": "var", "name": "ENV_PATH"}]
- }
- ]
- }
- }
- }
- ]
- }
- ]
- , ["objects result", {"type": "CALL_EXPRESSION", "name": "objects"}]
- , [ "objects"
- , { "type": "lookup"
- , "key": "objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- , [ "compile flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-compile-flags"}
- ]
- , [ "ld flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-link-flags"}
- ]
- , [ "base name"
- , { "type": "if"
- , "cond":
- { "type": "or"
- , "$1":
- [ {"type": "var", "name": "objects"}
- , {"type": "var", "name": "link-deps"}
- ]
- }
- , "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"
- , { "type": "join"
- , "$1": ["lib", {"type": "var", "name": "base name"}, ".so"]
- }
- ]
- , [ "libname"
- , { "type": "join"
- , "separator": "."
- , "$1":
- { "type": "++"
- , "$1":
- [ [{"type": "var", "name": "libname"}]
- , {"type": "var", "name": "soversion"}
- ]
- }
- }
- ]
- , [ "lib"
- , { "type": "if"
- , "cond":
- { "type": "or"
- , "$1":
- [ {"type": "var", "name": "objects"}
- , {"type": "var", "name": "link-deps"}
- ]
- }
- , "else": {"type": "empty_map"}
- , "then":
- { "type": "ACTION"
- , "outs": [{"type": "var", "name": "libname"}]
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "TOOLCHAIN"}
- , {"type": "var", "name": "objects"}
- , {"type": "var", "name": "link-deps"}
- , {"type": "var", "name": "run-libs"}
- , { "type": "var"
- , "name": "cflags-files"
- , "default": {"type": "empty_map"}
- }
- , { "type": "var"
- , "name": "ldflags-files"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- , "env":
- {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- , "cmd":
- { "type": "++"
- , "$1":
- [ [ {"type": "var", "name": "COMPILER"}
- , "-shared"
- , "-Wl,-rpath,$ORIGIN"
- , "-Wl,-rpath,$ORIGIN/../lib"
- , { "type": "join"
- , "$1":
- ["-Wl,-soname,", {"type": "var", "name": "libname"}]
- }
- ]
- , {"type": "var", "name": "compile flags"}
- , ["-o", {"type": "var", "name": "libname"}]
- , {"type": "keys", "$1": {"type": "var", "name": "objects"}}
- , {"type": "var", "name": "link-args"}
- , {"type": "var", "name": "run-libs-args"}
- , {"type": "var", "name": "ld flags"}
- ]
- }
- }
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "singleton_map"
- , "key": "library"
- , "value": {"type": "var", "name": "lib"}
- }
- , { "type": "singleton_map"
- , "key": "dwarf objects"
- , "value":
- { "type": "lookup"
- , "key": "dwarf objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- }
- , { "type": "env"
- , "vars": ["TOOLCHAIN", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "ENV"]
- }
- ]
- }
- }
- }
-, "shared result":
- { "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "DEBUG"
- , "LINT"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "cflags"
- , "private-cflags"
- , "ldflags"
- , "private-ldflags"
- , "soversion"
- , "pkg-name"
- , "extra-provides"
- , "defaults-transition"
- , "deps-transition"
- , "modified-transitions"
- , "public-fieldnames"
- , "private-fieldnames"
- , "component-fieldnames"
- ]
- , "imports":
- { "compile-deps": "compile-deps"
- , "compile-args-deps": "compile-args-deps"
- , "link-deps": "link-deps"
- , "link-args-deps": "link-args-deps"
- , "run-libs-deps": "run-libs-deps"
- , "run-libs-args-deps": "run-libs-args-deps"
- , "cflags-files-deps": "cflags-files-deps"
- , "ldflags-files-deps": "ldflags-files-deps"
- , "shared action": "shared action"
- , "debug-deps": "debug-deps"
- , "lint": "lint information"
- , "dwarf package": "dwarf package"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
- , ["link-args", {"type": "CALL_EXPRESSION", "name": "link-args-deps"}]
- , ["run-libs", {"type": "CALL_EXPRESSION", "name": "run-libs-deps"}]
- , [ "run-libs-args"
- , { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "var", "name": "ldflags", "default": []}
- , {"type": "var", "name": "private-ldflags", "default": []}
- , {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"}
- ]
- }
- }
- ]
- , [ "ldflags-files"
- , {"type": "CALL_EXPRESSION", "name": "ldflags-files-deps"}
- ]
- , [ "lib action result"
- , {"type": "CALL_EXPRESSION", "name": "shared action"}
- ]
- , [ "lib"
- , { "type": "lookup"
- , "key": "library"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "dwarf objects"
- , { "type": "lookup"
- , "key": "dwarf objects"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , ["dwarf deps", {"type": "empty_map"}]
- , [ "dwarf-pkg"
- , { "type": "if"
- , "cond":
- { "type": "and"
- , "$1":
- [ {"type": "var", "name": "dwarf objects"}
- , { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- }
- , "then":
- { "type": "let*"
- , "bindings":
- [ [ "TOOLCHAIN"
- , { "type": "lookup"
- , "key": "TOOLCHAIN"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "TOOLCHAIN_DIR"
- , { "type": "lookup"
- , "key": "TOOLCHAIN_DIR"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , { "type": "lookup"
- , "key": "NON_SYSTEM_TOOLS"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- , [ "ENV"
- , { "type": "lookup"
- , "key": "ENV"
- , "map": {"type": "var", "name": "lib action result"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "dwarf package"}
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "debug-srcs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-srcs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "srcs"}
- , {"type": "var", "name": "private-hdrs"}
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["lint-deps fieldnames", ["deps", "private-deps", "components"]]
- , [ "lint"
- , { "type": "if"
- , "cond": {"type": "var", "name": "LINT"}
- , "then": {"type": "CALL_EXPRESSION", "name": "lint"}
- }
- ]
- , [ "debug-hdrs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-hdrs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , ["link-deps", {"type": "empty_map"}]
- , ["link-args", []]
- , [ "run-libs"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "lib"}
- , {"type": "var", "name": "run-libs"}
- ]
- }
- ]
- , [ "run-libs-args"
- , { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "keys", "$1": {"type": "var", "name": "lib"}}
- , {"type": "var", "name": "ldflags", "default": []}
- ]
- }
- }
- ]
- , [ "ldflags-files"
- , {"type": "CALL_EXPRESSION", "name": "ldflags-files-deps"}
- ]
- , [ "package"
- , { "type": "let*"
- , "bindings":
- [ ["name", {"type": "var", "name": "pkg-name"}]
- , [ "version"
- , { "type": "if"
- , "cond": {"type": "var", "name": "soversion"}
- , "then":
- { "type": "join"
- , "separator": "."
- , "$1": {"type": "var", "name": "soversion"}
- }
- , "else": null
- }
- ]
- ]
- , "body":
- { "type": "env"
- , "vars": ["name", "version", "cflags-files", "ldflags-files"]
- }
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "lib"}
- , "runfiles": {"type": "var", "name": "hdrs"}
- , "provides":
- { "type": "map_union"
- , "$1":
- [ { "type": "env"
- , "vars":
- [ "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "package"
- , "debug-srcs"
- , "debug-hdrs"
- , "lint"
- , "dwarf-pkg"
- ]
- }
- , { "type": "var"
- , "name": "extra-provides"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- }
- }
- }
-, "object artifacts":
- { "doc":
- [ "Get the relevant object artifacts and pass them together with related"
- , "information to consumers."
- ]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "AR"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "stage"
- , "compile-deps"
- , "compile-args"
- , "cflags-files"
- , "defaults-transition"
- , "modified-transitions"
- , "component-fieldnames"
- ]
- , "imports":
- { "compiler": "compiler"
- , "flags": "flags"
- , "objects": "objects"
- , "default-AR": "default-AR"
- , "default-ENV": "default-ENV"
- , "default-PATH": "default-PATH"
- , "default-TOOLCHAIN": "default-TOOLCHAIN"
- , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["TOOLCHAIN_DIR", "toolchain"]
- , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}]
- , [ "TOOLCHAIN"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"}
- , "$1": {"type": "var", "name": "TOOLCHAIN"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"}
- ]
- , ["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": "CALL_EXPRESSION", "name": "default-ENV"}
- , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- ]
- }
- ]
- , [ "ENV_PATH"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "ENV"}
- , "key": "PATH"
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "ENV"}
- , { "type": "singleton_map"
- , "key": "PATH"
- , "value":
- { "type": "join"
- , "separator": ":"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "ENV_PATH"}
- , "then": [{"type": "var", "name": "ENV_PATH"}]
- }
- ]
- }
- }
- }
- ]
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "objects"}
- , { "type": "env"
- , "vars": ["TOOLCHAIN", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "ENV"]
- }
- ]
- }
- }
- }
-, "object result":
- { "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "AR"
- , "DWP"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "BUILD_OBJECT_ONLY_DROP_OBJECT_LINKING"
- , "DEBUG"
- , "LINT"
- , "name"
- , "pure C"
- , "srcs"
- , "hdrs"
- , "private-hdrs"
- , "cflags"
- , "private-cflags"
- , "ldflags"
- , "private-ldflags"
- , "stage"
- , "pkg-name"
- , "extra-provides"
- , "public-fieldnames"
- , "private-fieldnames"
- , "component-fieldnames"
- , "deps-transition"
- , "modified-transitions"
- , "defaults-transition"
- ]
- , "imports":
- { "compile-deps": "compile-deps"
- , "compile-args-deps": "compile-args-deps"
- , "link-deps": "link-deps"
- , "link-args-deps": "link-args-deps"
- , "run-libs-deps": "run-libs-deps"
- , "run-libs-args-deps": "run-libs-args-deps"
- , "cflags-files-deps": "cflags-files-deps"
- , "ldflags-files-deps": "ldflags-files-deps"
- , "object artifacts": "object artifacts"
- , "debug-deps": "debug-deps"
- , "lint": "lint information"
- , "dwarf package": "dwarf package"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , ["link-deps", {"type": "CALL_EXPRESSION", "name": "link-deps"}]
- , [ "object artifacts with env"
- , {"type": "CALL_EXPRESSION", "name": "object artifacts"}
- ]
- , [ "objects"
- , { "type": "lookup"
- , "key": "objects"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- , [ "dwarf objects"
- , { "type": "lookup"
- , "key": "dwarf objects"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- , ["dwarf deps", {"type": "empty_map"}]
- , [ "dwarf-pkg"
- , { "type": "if"
- , "cond":
- { "type": "and"
- , "$1":
- [ {"type": "var", "name": "dwarf objects"}
- , { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- }
- , "then":
- { "type": "let*"
- , "bindings":
- [ [ "TOOLCHAIN"
- , { "type": "lookup"
- , "key": "TOOLCHAIN"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- , [ "TOOLCHAIN_DIR"
- , { "type": "lookup"
- , "key": "TOOLCHAIN_DIR"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , { "type": "lookup"
- , "key": "NON_SYSTEM_TOOLS"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- , [ "ENV"
- , { "type": "lookup"
- , "key": "ENV"
- , "map": {"type": "var", "name": "object artifacts with env"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "dwarf package"}
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["lint-deps fieldnames", ["deps", "private-deps", "components"]]
- , [ "lint"
- , { "type": "if"
- , "cond": {"type": "var", "name": "LINT"}
- , "then": {"type": "CALL_EXPRESSION", "name": "lint"}
- }
- ]
- , [ "link-args"
- , { "type": "nub_right"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond":
- { "type": "var"
- , "name": "BUILD_OBJECT_ONLY_DROP_OBJECT_LINKING"
- }
- , "then": []
- , "else":
- {"type": "keys", "$1": {"type": "var", "name": "objects"}}
- }
- , {"type": "var", "name": "ldflags", "default": []}
- , {"type": "var", "name": "private-ldflags", "default": []}
- , {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
- ]
- }
- }
- ]
- , ["run-libs", {"type": "CALL_EXPRESSION", "name": "run-libs-deps"}]
- , [ "run-libs-args"
- , { "type": "nub_right"
- , "$1": {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"}
- }
- ]
- , [ "ldflags-files"
- , {"type": "CALL_EXPRESSION", "name": "ldflags-files-deps"}
- ]
- , [ "debug-srcs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-srcs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "srcs"}
- , {"type": "var", "name": "private-hdrs"}
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "debug-hdrs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-hdrs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , ["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"}
- ]
- }
- }
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , [ "package"
- , { "type": "let*"
- , "bindings": [["name", {"type": "var", "name": "pkg-name"}]]
- , "body":
- {"type": "env", "vars": ["name", "cflags-files", "ldflags-files"]}
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "objects"}
- , "runfiles": {"type": "var", "name": "hdrs"}
- , "provides":
- { "type": "map_union"
- , "$1":
- [ { "type": "env"
- , "vars":
- [ "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "package"
- , "debug-srcs"
- , "debug-hdrs"
- , "lint"
- , "dwarf-pkg"
- ]
- }
- , { "type": "var"
- , "name": "extra-provides"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- }
- }
- }
-, "bin artifact":
- { "doc": ["Provides the linked binary."]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "private-hdrs"
- , "stage"
- , "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "cflags-files"
- , "ldflags-files"
- , "defaults-transition"
- ]
- , "imports": {"bin action": "bin action"}
- , "expression":
- { "type": "lookup"
- , "key": "binary"
- , "map": {"type": "CALL_EXPRESSION", "name": "bin action"}
- , "default": {"type": "empty_map"}
- }
- }
-, "bin action":
- { "doc":
- [ "Run the action producing the binary artifact and pass it together with"
- , "related information to consumers."
- ]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "name"
- , "pure C"
- , "srcs"
- , "private-hdrs"
- , "stage"
- , "compile-deps"
- , "compile-args"
- , "link-deps"
- , "link-args"
- , "run-libs"
- , "run-libs-args"
- , "cflags-files"
- , "ldflags-files"
- , "defaults-transition"
- ]
- , "imports":
- { "compiler": "compiler"
- , "flags": "flags"
- , "objects": "objects"
- , "default-ENV": "default-ENV"
- , "default-PATH": "default-PATH"
- , "default-LDFLAGS": "default-LDFLAGS"
- , "default-TOOLCHAIN": "default-TOOLCHAIN"
- , "default-NON_SYSTEM_TOOLS": "default-NON_SYSTEM_TOOLS"
- , "add-fission-compile-flags": "add-fission-compile-flags"
- , "add-fission-link-flags": "add-fission-link-flags"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["TOOLCHAIN_DIR", "toolchain"]
- , ["TOOLCHAIN", {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}]
- , [ "TOOLCHAIN"
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"}
- , "$1": {"type": "var", "name": "TOOLCHAIN"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"}
- ]
- , ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , [ "COMPILE_FLAGS"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "flags"}
- , {"type": "var", "name": "compile-args"}
- ]
- }
- ]
- , [ "LDFLAGS"
- , { "type": "++"
- , "$1":
- [ { "type": "var"
- , "name": "LDFLAGS"
- , "default":
- {"type": "CALL_EXPRESSION", "name": "default-LDFLAGS"}
- }
- , {"type": "var", "name": "ADD_LDFLAGS", "default": []}
- ]
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-ENV"}
- , {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- ]
- }
- ]
- , [ "ENV_PATH"
- , { "type": "lookup"
- , "map": {"type": "var", "name": "ENV"}
- , "key": "PATH"
- }
- ]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "ENV"}
- , { "type": "singleton_map"
- , "key": "PATH"
- , "value":
- { "type": "join"
- , "separator": ":"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "ENV_PATH"}
- , "then": [{"type": "var", "name": "ENV_PATH"}]
- }
- ]
- }
- }
- }
- ]
- }
- ]
- , ["hdrs", {"type": "empty_map"}]
- , ["objects result", {"type": "CALL_EXPRESSION", "name": "objects"}]
- , [ "objects"
- , { "type": "lookup"
- , "key": "objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- , [ "compile flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-compile-flags"}
- ]
- , [ "ld flags"
- , {"type": "CALL_EXPRESSION", "name": "add-fission-link-flags"}
- ]
- , [ "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"}
- }
- ]
- , [ "binpath (in work)"
- , {"type": "join", "$1": ["work/", {"type": "var", "name": "binpath"}]}
- ]
- , ["TOOLCHAIN_DIR", "../toolchain"]
- , ["COMPILER", {"type": "CALL_EXPRESSION", "name": "compiler"}]
- , [ "ENV"
- , { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "ENV"}
- , { "type": "singleton_map"
- , "key": "PATH"
- , "value":
- { "type": "join"
- , "separator": ":"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "ENV_PATH"}
- , "then": [{"type": "var", "name": "ENV_PATH"}]
- }
- ]
- }
- }
- }
- ]
- }
- ]
- , [ "cmd"
- , { "type": "++"
- , "$1":
- [ [ {"type": "var", "name": "COMPILER"}
- , "-Wl,-rpath,$ORIGIN"
- , "-Wl,-rpath,$ORIGIN/../lib"
- , "-o"
- , {"type": "var", "name": "binpath"}
- ]
- , {"type": "var", "name": "compile flags"}
- , {"type": "var", "name": "link-args"}
- , {"type": "var", "name": "run-libs-args"}
- , {"type": "var", "name": "ld flags"}
- ]
- }
- ]
- , [ "binary (in work)"
- , { "type": "ACTION"
- , "outs": [{"type": "var", "name": "binpath (in work)"}]
- , "inputs":
- { "type": "disjoint_map_union"
- , "$1":
- [ {"type": "var", "name": "TOOLCHAIN"}
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1":
- { "type": "disjoint_map_union"
- , "$1":
- [ {"type": "var", "name": "objects"}
- , {"type": "var", "name": "link-deps"}
- , {"type": "var", "name": "run-libs"}
- , { "type": "var"
- , "name": "cflags-files"
- , "default": {"type": "empty_map"}
- }
- , { "type": "var"
- , "name": "ldflags-files"
- , "default": {"type": "empty_map"}
- }
- ]
- }
- }
- ]
- }
- , "cmd": {"type": "var", "name": "cmd"}
- , "cwd": "work"
- , "env": {"type": "var", "name": "ENV"}
- }
- ]
- , [ "binary"
- , { "type": "singleton_map"
- , "key": {"type": "var", "name": "binpath"}
- , "value":
- { "type": "lookup"
- , "map": {"type": "var", "name": "binary (in work)"}
- , "key": {"type": "var", "name": "binpath (in work)"}
- }
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "singleton_map"
- , "key": "binary"
- , "value": {"type": "var", "name": "binary"}
- }
- , { "type": "singleton_map"
- , "key": "dwarf objects"
- , "value":
- { "type": "lookup"
- , "key": "dwarf objects"
- , "map":
- { "type": "var"
- , "name": "objects result"
- , "default": {"type": "empty_map"}
- }
- }
- }
- , { "type": "env"
- , "vars": ["TOOLCHAIN", "TOOLCHAIN_DIR", "NON_SYSTEM_TOOLS", "ENV"]
- }
- ]
- }
- }
- }
-, "bin result":
- { "doc": ["Produces the binary target result."]
- , "vars":
- [ "CC"
- , "CXX"
- , "CFLAGS"
- , "CXXFLAGS"
- , "LDFLAGS"
- , "ADD_CFLAGS"
- , "ADD_CXXFLAGS"
- , "ADD_LDFLAGS"
- , "ENV"
- , "BUILD_POSITION_INDEPENDENT"
- , "DEBUG"
- , "LINT"
- , "name"
- , "pure C"
- , "srcs"
- , "private-hdrs"
- , "private-cflags"
- , "private-ldflags"
- , "stage"
- , "private-fieldnames"
- , "component-fieldnames"
- ]
- , "imports":
- { "compile-deps": "compile-deps"
- , "compile-args-deps": "compile-args-deps"
- , "link-deps": "link-deps"
- , "link-args-deps": "link-args-deps"
- , "run-libs-deps": "run-libs-deps"
- , "run-libs-args-deps": "run-libs-args-deps"
- , "cflags-files-deps": "cflags-files-deps"
- , "ldflags-files-deps": "ldflags-files-deps"
- , "bin action": "bin action"
- , "debug-deps": "debug-deps"
- , "lint": "lint information"
- , "dwarf package": "dwarf package"
- }
- , "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": "var", "name": "private-ldflags"}
- , {"type": "CALL_EXPRESSION", "name": "link-args-deps"}
- ]
- }
- }
- ]
- , ["run-libs", {"type": "CALL_EXPRESSION", "name": "run-libs-deps"}]
- , [ "run-libs-args"
- , {"type": "CALL_EXPRESSION", "name": "run-libs-args-deps"}
- ]
- , [ "cflags-files"
- , {"type": "CALL_EXPRESSION", "name": "cflags-files-deps"}
- ]
- , [ "ldflags-files"
- , {"type": "CALL_EXPRESSION", "name": "ldflags-files-deps"}
- ]
- , ["package", {"type": "singleton_map", "key": "to_bin", "value": true}]
- , [ "debug-srcs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-srcs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "srcs"}
- , {"type": "var", "name": "private-hdrs"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "debug-hdrs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "DEBUG"}
- , "then":
- { "type": "map_union"
- , "$1":
- [ { "type": "let*"
- , "bindings": [["deps-provider", "debug-hdrs"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- , {"type": "var", "name": "compile-deps"}
- ]
- }
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "lint"
- , { "type": "if"
- , "cond": {"type": "var", "name": "LINT"}
- , "then":
- { "type": "let*"
- , "bindings":
- [ ["hdrs", {"type": "empty_map"}]
- , ["lint-deps fieldnames", ["private-deps"]]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "lint"}
- }
- }
- ]
- , [ "bin action result"
- , {"type": "CALL_EXPRESSION", "name": "bin action"}
- ]
- , [ "binary"
- , { "type": "lookup"
- , "key": "binary"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- , [ "dwarf objects"
- , { "type": "lookup"
- , "key": "dwarf objects"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- , [ "dwarf deps"
- , { "type": "if"
- , "cond":
- { "type": "and"
- , "$1":
- [ {"type": "var", "name": "dwarf objects"}
- , { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- }
- , "else": {"type": "empty_map"}
- , "then":
- { "type": "let*"
- , "bindings": [["deps-provider", "dwarf-pkg"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"}
- }
- }
- ]
- , [ "dwarf-pkg"
- , { "type": "if"
- , "cond":
- { "type": "and"
- , "$1":
- [ {"type": "var", "name": "dwarf objects"}
- , { "type": "lookup"
- , "key": "USE_DEBUG_FISSION"
- , "map":
- { "type": "var"
- , "name": "DEBUG"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- }
- , "then":
- { "type": "let*"
- , "bindings":
- [ [ "TOOLCHAIN"
- , { "type": "lookup"
- , "key": "TOOLCHAIN"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- , [ "TOOLCHAIN_DIR"
- , { "type": "lookup"
- , "key": "TOOLCHAIN_DIR"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- , [ "NON_SYSTEM_TOOLS"
- , { "type": "lookup"
- , "key": "NON_SYSTEM_TOOLS"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- , [ "ENV"
- , { "type": "lookup"
- , "key": "ENV"
- , "map": {"type": "var", "name": "bin action result"}
- }
- ]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "dwarf package"}
- }
- , "else": {"type": "empty_map"}
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "binary"}
- , "provides":
- { "type": "env"
- , "vars":
- [ "run-libs"
- , "package"
- , "debug-srcs"
- , "debug-hdrs"
- , "lint"
- , "dwarf-pkg"
- ]
- }
- }
- }
- }
-, "install-with-deps stage":
- { "vars":
- [ "pc-install-dir"
- , "targets"
- , "prefix"
- , "flat-libs"
- , "hdrs-only"
- , "skip-debug-stage"
- ]
- , "imports":
- { "compile-deps": "compile-deps"
- , "compile-args-deps": "compile-args-deps"
- , "link-deps": "link-deps"
- , "link-args-deps": "link-args-deps"
- , "run-libs-deps": "run-libs-deps"
- , "run-libs-args-deps": "run-libs-args-deps"
- , "pkg-config": "pkg-config"
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "install-stage"
- , { "type": "disjoint_map_union"
- , "msg": "install stages may not overlap"
- , "$1":
- { "type": "foreach"
- , "var": "target"
- , "range": {"type": "var", "name": "targets"}
- , "body":
- { "type": "let*"
- , "bindings":
- [ [ "runfiles"
- , { "type": "DEP_RUNFILES"
- , "dep": {"type": "var", "name": "target"}
- , "default": {"type": "empty_map"}
- }
- ]
- , [ "compile-deps"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "compile-deps"
- , "default": {"type": "empty_map"}
- }
- ]
- , [ "headers"
- , { "type": "disjoint_map_union"
- , "msg": "headers may not overlap"
- , "$1":
- [ {"type": "var", "name": "runfiles"}
- , {"type": "var", "name": "compile-deps"}
- ]
- }
- ]
- , [ "debug-srcs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "skip-debug-stage"}
- , "then": {"type": "empty_map"}
- , "else":
- { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "debug-srcs"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- , [ "debug-hdrs"
- , { "type": "if"
- , "cond": {"type": "var", "name": "skip-debug-stage"}
- , "then": {"type": "empty_map"}
- , "else":
- { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "debug-hdrs"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- , [ "dwarf-pkg"
- , { "type": "if"
- , "cond": {"type": "var", "name": "skip-debug-stage"}
- , "then": {"type": "empty_map"}
- , "else":
- { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "dwarf-pkg"
- , "default": {"type": "empty_map"}
- }
- }
- ]
- ]
- , "body":
- { "type": "if"
- , "cond": {"type": "var", "name": "hdrs-only"}
- , "then": {"type": "var", "name": "headers"}
- , "else":
- { "type": "let*"
- , "bindings":
- [ [ "artifacts"
- , { "type": "map_union"
- , "$1":
- [ { "type": "DEP_ARTIFACTS"
- , "dep": {"type": "var", "name": "target"}
- , "default": {"type": "empty_map"}
- }
- , {"type": "var", "name": "dwarf-pkg"}
- ]
- }
- ]
- , [ "link-deps"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "link-deps"
- , "default": {"type": "empty_map"}
- }
- ]
- , [ "run-libs"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "run-libs"
- , "default": {"type": "empty_map"}
- }
- ]
- , [ "package"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "package"
- , "default": {"type": "empty_map"}
- }
- ]
- , [ "to_bin"
- , { "type": "lookup"
- , "key": "to_bin"
- , "map": {"type": "var", "name": "package"}
- }
- ]
- , [ "binaries"
- , { "type": "if"
- , "cond": {"type": "var", "name": "to_bin"}
- , "then": {"type": "var", "name": "artifacts"}
- , "else": {"type": "empty_map"}
- }
- ]
- , [ "libraries"
- , { "type": "disjoint_map_union"
- , "msg": "libraries may not overlap"
- , "$1":
- { "type": "++"
- , "$1":
- [ { "type": "if"
- , "cond": {"type": "var", "name": "to_bin"}
- , "then": []
- , "else": [{"type": "var", "name": "artifacts"}]
- }
- , [{"type": "var", "name": "link-deps"}]
- , [{"type": "var", "name": "run-libs"}]
- ]
- }
- }
- ]
- , [ "pkg-name"
- , { "type": "lookup"
- , "key": "name"
- , "map": {"type": "var", "name": "package"}
- }
- ]
- , [ "pkg-config"
- , { "type": "if"
- , "cond": {"type": "var", "name": "pkg-name"}
- , "then":
- { "type": "let*"
- , "bindings":
- [ ["pkg-prefix", {"type": "var", "name": "prefix"}]
- , [ "pkg-version"
- , { "type": "lookup"
- , "key": "version"
- , "map": {"type": "var", "name": "package"}
- }
- ]
- , [ "pkg-cflags"
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "compile-args"
- , "default": []
- }
- ]
- , [ "pkg-ldflags"
- , { "type": "++"
- , "$1":
- [ { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "link-args"
- , "default": []
- }
- , { "type": "DEP_PROVIDES"
- , "dep": {"type": "var", "name": "target"}
- , "provider": "run-libs-args"
- , "default": []
- }
- ]
- }
- ]
- , [ "pkg-flag-files"
- , { "type": "map_union"
- , "$1":
- [ { "type": "lookup"
- , "key": "cflags-files"
- , "map": {"type": "var", "name": "package"}
- , "default": {"type": "empty_map"}
- }
- , { "type": "lookup"
- , "key": "ldflags-files"
- , "map": {"type": "var", "name": "package"}
- , "default": {"type": "empty_map"}
- }
- ]
- }
- ]
- , [ "pkg-libs"
- , {"type": "var", "name": "libraries"}
- ]
- , [ "flat-libs"
- , {"type": "var", "name": "flat-libs"}
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "CALL_EXPRESSION"
- , "name": "pkg-config"
- }
- , {"type": "var", "name": "pkg-flag-files"}
- ]
- }
- }
- , "else": {"type": "empty_map"}
- }
- ]
- ]
- , "body":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "bin"
- , "flat": true
- , "msg": "install binaries may not overlap"
- , "$1": {"type": "var", "name": "binaries"}
- }
- , { "type": "to_subdir"
- , "subdir": "include"
- , "$1":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "headers"}
- , {"type": "var", "name": "debug-hdrs"}
- ]
- }
- }
- , { "type": "to_subdir"
- , "subdir": "lib"
- , "flat": {"type": "var", "name": "flat-libs"}
- , "msg": "install libraries may not overlap"
- , "$1": {"type": "var", "name": "libraries"}
- }
- , { "type": "to_subdir"
- , "subdir": {"type": "var", "name": "pc-install-dir"}
- , "$1": {"type": "var", "name": "pkg-config"}
- }
- , { "type": "to_subdir"
- , "subdir": "work"
- , "$1": {"type": "var", "name": "debug-srcs"}
- }
- ]
- }
- }
- }
- }
- }
- }
- ]
- ]
- , "body": {"type": "var", "name": "install-stage"}
- }
- }
-, "install-with-deps result":
- { "vars":
- [ "pc-install-dir"
- , "targets"
- , "prefix"
- , "flat-libs"
- , "hdrs-only"
- , "skip-debug-stage"
- ]
- , "imports": {"install stage": "install-with-deps stage"}
- , "expression":
- { "type": "RESULT"
- , "artifacts": {"type": "CALL_EXPRESSION", "name": "install stage"}
- }
- }
-}