From 231cfec4166ad69a5f18599734cdf121ca85aad6 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 1 Jul 2024 12:06:37 +0200 Subject: ["shell", "defaults"]: support "bin dirs" --- shell/RULES | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/shell/RULES b/shell/RULES index 73c295f..2ce078e 100644 --- a/shell/RULES +++ b/shell/RULES @@ -8,7 +8,7 @@ , "meaningful use of this rule." ] , "target_fields": ["base", "toolchain"] - , "string_fields": ["sh", "PATH"] + , "string_fields": ["sh", "PATH", "bin dirs"] , "field_doc": { "base": ["Other targets (using the same rule) to inherit values from."] , "toolchain": @@ -27,6 +27,10 @@ [ "Paths for looking up system tools." , "Specifying this field extends values from \"base\"." ] + , "bin dirs": + [ "Directories of the toolchain that contain additional binaries." + , "Shell-specific rules will add those into PATH." + ] } , "config_vars": ["ARCH", "HOST_ARCH", "TARGET_ARCH"] , "imports": @@ -132,12 +136,23 @@ } } ] + , [ "bin dirs" + , { "type": "++" + , "$1": + [ {"type": "FIELD", "name": "bin dirs"} + , { "type": "let*" + , "bindings": [["provider", "bin dirs"]] + , "body": {"type": "CALL_EXPRESSION", "name": "base-provides-++"} + } + ] + } + ] ] , "body": { "type": "RESULT" , "provides": { "type": "env" - , "vars": ["TOOLCHAIN", "sh", "NON_SYSTEM_TOOLS", "PATH"] + , "vars": ["TOOLCHAIN", "sh", "NON_SYSTEM_TOOLS", "PATH", "bin dirs"] } } } -- cgit v1.2.3 From 92bdfc81114d683a1012c106f224136b0a135dc9 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 1 Jul 2024 12:41:05 +0200 Subject: ["CC/auto", "config"]: honor bin dirs of shell defaults --- CC/auto/RULES | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CC/auto/RULES b/CC/auto/RULES index 65aca1c..debae9c 100644 --- a/CC/auto/RULES +++ b/CC/auto/RULES @@ -162,6 +162,7 @@ , "default-TOOLCHAIN": ["./", "..", "default-TOOLCHAIN"] , "default-NON_SYSTEM_TOOLS": ["./", "..", "default-NON_SYSTEM_TOOLS"] , "map_provider": ["./", "../..", "field_map_provider"] + , "list_provider": ["./", "../..", "field_list_provider"] , "sh": ["./", "../../shell", "sh"] , "sh-PATH": ["./", "../../shell", "PATH"] } @@ -241,6 +242,27 @@ , "body": {"type": "CALL_EXPRESSION", "name": "sh"} } ] + , [ "bin dirs" + , { "type": "let*" + , "bindings": + [["fieldname", "shell defaults"], ["provider", "bin dirs"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} + } + ] + , [ "bin dirs" + , { "type": "foreach" + , "range": {"type": "var", "name": "bin dirs"} + , "body": + { "type": "join" + , "$1": + [ "./" + , {"type": "var", "name": "TOOLCHAIN_DIR"} + , "/" + , {"type": "var", "name": "_"} + ] + } + } + ] , [ "NON_SYSTEM_TOOLS" , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"} ] @@ -283,6 +305,7 @@ , "bindings": [["fieldname", "shell defaults"]] , "body": {"type": "CALL_EXPRESSION", "name": "sh-PATH"} } + , {"type": "var", "name": "bin dirs"} ] } } -- cgit v1.2.3 From 23e2b86ab2acb99b7625fa77c8fe9f81a1ec6099 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 1 Jul 2024 14:54:17 +0200 Subject: ["patch", "file"]: honor shell bin dirs ... as we need to copy a file, as not all versions of patch accept the file to patch as argument. --- patch/RULES | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/patch/RULES b/patch/RULES index e7d50f9..c55de58 100644 --- a/patch/RULES +++ b/patch/RULES @@ -168,6 +168,7 @@ , "sh-TOOLCHAIN": ["CC", "default-TOOLCHAIN"] , "sh-PATH": ["CC", "default-PATH"] , "sh": ["shell", "sh"] + , "list_provider": ["./", "..", "field_list_provider"] } , "expression": { "type": "let*" @@ -188,6 +189,26 @@ , "$1": {"type": "var", "name": "TOOLCHAIN"} } ] + , [ "bin dirs" + , { "type": "let*" + , "bindings": [["fieldname", "defaults"], ["provider", "bin dirs"]] + , "body": {"type": "CALL_EXPRESSION", "name": "list_provider"} + } + ] + , [ "bin dirs" + , { "type": "foreach" + , "range": {"type": "var", "name": "bin dirs"} + , "body": + { "type": "join" + , "$1": + [ "./" + , {"type": "var", "name": "TOOLCHAIN_DIR"} + , "/" + , {"type": "var", "name": "_"} + ] + } + } + ] , [ "NON_SYSTEM_TOOLS" , {"type": "CALL_EXPRESSION", "name": "default-NON_SYSTEM_TOOLS"} ] @@ -242,6 +263,7 @@ , "$1": [ {"type": "CALL_EXPRESSION", "name": "default-PATH"} , {"type": "CALL_EXPRESSION", "name": "sh-PATH"} + , {"type": "var", "name": "bin dirs"} , { "type": "if" , "cond": {"type": "var", "name": "ENV_PATH"} , "then": [{"type": "var", "name": "ENV_PATH"}] -- cgit v1.2.3