diff options
Diffstat (limited to 'CC')
-rw-r--r-- | CC/EXPRESSIONS | 135 | ||||
-rw-r--r-- | CC/RULES | 7 |
2 files changed, 124 insertions, 18 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index f2259b6..0e1e4b9 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -212,11 +212,13 @@ } } } -, "debug-srcs": - { "doc": ["Collect debug dependencies (sources) from given target_fields"] - , "vars": ["deps-fieldnames", "deps-transition"] +, "debug-deps": + { "doc": + ["Collect debug dependencies (sources/headers) from given target_fields"] + , "vars": ["deps-provider", "deps-fieldnames", "deps-transition"] , "vars_doc": - { "deps-fieldnames": + { "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."] @@ -235,7 +237,7 @@ , "$1": { "type": "let*" , "bindings": - [ ["provider", "debug-srcs"] + [ ["provider", {"type": "var", "name": "deps-provider"}] , ["transition", {"type": "var", "name": "deps-transition"}] , ["default", {"type": "empty_map"}] ] @@ -1193,7 +1195,7 @@ , "cflags-files-deps": "cflags-files-deps" , "ldflags-files-deps": "ldflags-files-deps" , "lib artifact": "lib artifact" - , "debug-srcs": "debug-srcs" + , "debug-deps": "debug-deps" } , "expression": { "type": "let*" @@ -1245,8 +1247,29 @@ , "then": { "type": "map_union" , "$1": - [ {"type": "CALL_EXPRESSION", "name": "debug-srcs"} + [ { "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"} @@ -1293,6 +1316,7 @@ , "run-libs-args" , "package" , "debug-srcs" + , "debug-hdrs" ] } , { "type": "var" @@ -1548,7 +1572,7 @@ , "cflags-files-deps": "cflags-files-deps" , "ldflags-files-deps": "ldflags-files-deps" , "shared artifact": "shared artifact" - , "debug-srcs": "debug-srcs" + , "debug-deps": "debug-deps" } , "expression": { "type": "let*" @@ -1595,8 +1619,29 @@ , "then": { "type": "map_union" , "$1": - [ {"type": "CALL_EXPRESSION", "name": "debug-srcs"} + [ { "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"} @@ -1683,6 +1728,7 @@ , "run-libs-args" , "package" , "debug-srcs" + , "debug-hdrs" ] } , { "type": "var" @@ -1828,7 +1874,7 @@ , "cflags-files-deps": "cflags-files-deps" , "ldflags-files-deps": "ldflags-files-deps" , "object artifacts": "object artifacts" - , "debug-srcs": "debug-srcs" + , "debug-deps": "debug-deps" } , "expression": { "type": "let*" @@ -1880,8 +1926,29 @@ , "then": { "type": "map_union" , "$1": - [ {"type": "CALL_EXPRESSION", "name": "debug-srcs"} + [ { "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"} @@ -1928,6 +1995,7 @@ , "run-libs-args" , "package" , "debug-srcs" + , "debug-hdrs" ] } , { "type": "var" @@ -2152,7 +2220,7 @@ , "cflags-files-deps": "cflags-files-deps" , "ldflags-files-deps": "ldflags-files-deps" , "binary": "bin artifact" - , "debug-srcs": "debug-srcs" + , "debug-deps": "debug-deps" } , "expression": { "type": "let*" @@ -2196,19 +2264,36 @@ , "then": { "type": "map_union" , "$1": - [ {"type": "CALL_EXPRESSION", "name": "debug-srcs"} + [ { "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": "let*" + , "bindings": [["deps-provider", "debug-hdrs"]] + , "body": {"type": "CALL_EXPRESSION", "name": "debug-deps"} + } + , "else": {"type": "empty_map"} + } + ] ] , "body": { "type": "RESULT" , "artifacts": {"type": "CALL_EXPRESSION", "name": "binary"} , "provides": - {"type": "env", "vars": ["run-libs", "package", "debug-srcs"]} + { "type": "env" + , "vars": ["run-libs", "package", "debug-srcs", "debug-hdrs"] + } } } } @@ -2277,6 +2362,18 @@ } } ] + , [ "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"} + } + } + ] ] , "body": { "type": "if" @@ -2432,7 +2529,13 @@ } , { "type": "to_subdir" , "subdir": "include" - , "$1": {"type": "var", "name": "headers"} + , "$1": + { "type": "map_union" + , "$1": + [ {"type": "var", "name": "headers"} + , {"type": "var", "name": "debug-hdrs"} + ] + } } , { "type": "to_subdir" , "subdir": "lib" @@ -2445,7 +2548,7 @@ , "$1": {"type": "var", "name": "pkg-config"} } , { "type": "to_subdir" - , "subdir": "debug-src" + , "subdir": "work" , "$1": {"type": "var", "name": "debug-srcs"} } ] @@ -521,7 +521,8 @@ [ "List of strings that have to be added to the command line for linking actions" , "in targets depending on this library" ] - , "debug-srcs": ["Map of all dependencies' sources needed for debugging."] + , "debug-srcs": ["Map of all sources needed for debugging."] + , "debug-hdrs": ["Map of all additional headers needed for debugging."] } , "anonymous": { "proto-deps": @@ -768,7 +769,9 @@ , "artifacts_doc": ["The final binary, staged to the given directory"] , "runfiles_doc": ["None"] , "provides_doc": - {"debug-srcs": ["Map of all dependencies' sources needed for debugging."]} + { "debug-srcs": ["Map of all sources needed for debugging."] + , "debug-hdrs": ["Map of all additional headers needed for debugging."] + } , "anonymous": { "private-proto-deps": { "target": "private-proto" |