{ "pkgconfig result": { "vars": ["ENV", "name", "args", "stage"] , "imports": { "default-ENV": ["./", "..", "default-ENV"] , "default-PATH": ["./", "..", "default-PATH"] , "stage": ["", "stage_singleton_field"] , "map_provider": ["", "field_map_provider"] , "sh": ["shell", "sh"] , "sh-PATH": ["shell", "PATH"] } , "expression": { "type": "let*" , "bindings": [ [ "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" } ] , [ "sh-PATH" , { "type": "let*" , "bindings": [["fieldname", "shell defaults"]] , "body": {"type": "CALL_EXPRESSION", "name": "sh-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": "var", "name": "sh-PATH"} , { "type": "if" , "cond": {"type": "var", "name": "ENV_PATH"} , "then": [{"type": "var", "name": "ENV_PATH"}] } ] } } } ] } ] , ["TOOLCHAIN_DIR", "toolchain"] , [ "shell TOOLCHAIN" , { "type": "to_subdir" , "subdir": {"type": "var", "name": "TOOLCHAIN_DIR"} , "$1": { "type": "let*" , "bindings": [ ["fieldname", "shell defaults"] , ["provider", "TOOLCHAIN"] , ["default", {"type": "empty_map"}] ] , "body": {"type": "CALL_EXPRESSION", "name": "map_provider"} } } ] , [ "sh" , { "type": "let*" , "bindings": [["fieldname", "shell defaults"]] , "body": {"type": "CALL_EXPRESSION", "name": "sh"} } ] , [ "cflags-filename" , {"type": "join", "$1": [{"type": "var", "name": "name"}, ".cflags"]} ] , [ "cflags-files" , { "type": "to_subdir" , "subdir": {"type": "var", "name": "stage"} , "$1": { "type": "ACTION" , "inputs": {"type": "var", "name": "shell TOOLCHAIN"} , "cmd": [ {"type": "var", "name": "sh"} , "-c" , { "type": "join" , "separator": " " , "$1": { "type": "++" , "$1": [ ["pkg-config"] , [ { "type": "join_cmd" , "$1": { "type": "++" , "$1": [ {"type": "var", "name": "args", "default": []} , ["--cflags", {"type": "var", "name": "name"}] ] } } ] , [">"] , [ { "type": "join_cmd" , "$1": [{"type": "var", "name": "cflags-filename"}] } ] ] } } ] , "env": {"type": "var", "name": "ENV"} , "outs": [{"type": "var", "name": "cflags-filename"}] } } ] , [ "compile-args" , { "type": "foreach_map" , "var_key": "flag-file" , "range": {"type": "var", "name": "cflags-files"} , "body": {"type": "join", "$1": ["@", {"type": "var", "name": "flag-file"}]} } ] , [ "ldflags-filename" , {"type": "join", "$1": [{"type": "var", "name": "name"}, ".ldflags"]} ] , [ "ldflags-files" , { "type": "ACTION" , "inputs": {"type": "var", "name": "shell TOOLCHAIN"} , "cmd": [ {"type": "var", "name": "sh"} , "-c" , { "type": "join" , "separator": " " , "$1": { "type": "++" , "$1": [ ["pkg-config"] , [ { "type": "join_cmd" , "$1": { "type": "++" , "$1": [ {"type": "var", "name": "args", "default": []} , ["--libs", {"type": "var", "name": "name"}] ] } } ] , [">", "ldflags.raw"] ] } } ] , "env": {"type": "var", "name": "ENV"} , "outs": ["ldflags.raw"] } ] , [ "add_rpath" , { "type": "let*" , "bindings": [["fieldname", "add_rpath"], ["location", "add_rpath"]] , "body": {"type": "CALL_EXPRESSION", "name": "stage"} } ] , [ "ldflags-files" , { "type": "to_subdir" , "subdir": {"type": "var", "name": "stage"} , "$1": { "type": "ACTION" , "inputs": { "type": "map_union" , "$1": [ {"type": "var", "name": "add_rpath"} , {"type": "var", "name": "ldflags-files"} , {"type": "var", "name": "shell TOOLCHAIN"} ] } , "cmd": [ {"type": "var", "name": "sh"} , "-c" , { "type": "join" , "separator": " " , "$1": [ "./add_rpath $(cat ldflags.raw)" , ">" , { "type": "join_cmd" , "$1": [{"type": "var", "name": "ldflags-filename"}] } ] } ] , "env": {"type": "var", "name": "ENV"} , "outs": [{"type": "var", "name": "ldflags-filename"}] } } ] , [ "link-args" , { "type": "foreach_map" , "var_key": "flag-file" , "range": {"type": "var", "name": "ldflags-files"} , "body": {"type": "join", "$1": ["@", {"type": "var", "name": "flag-file"}]} } ] , ["package", {"type": "env", "vars": ["cflags-files", "ldflags-files"]}] , ["compile-deps", {"type": "empty_map"}] , ["link-deps", {"type": "empty_map"}] ] , "body": { "type": "RESULT" , "provides": { "type": "env" , "vars": ["compile-deps", "compile-args", "link-deps", "link-args", "package"] } } } } }