summaryrefslogtreecommitdiff
path: root/CC
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-05-23 10:46:14 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-05-23 13:07:53 +0200
commitf55672f7f71ce1136927edf0dc001058294c1505 (patch)
tree27ea79333d20bda7e1c3d24035ba43201e304cd7 /CC
parent035517c997830a3421efc823e5687a3519880c19 (diff)
downloadrules-cc-f55672f7f71ce1136927edf0dc001058294c1505.tar.gz
["CC/pkgconfig", "system_library"]: honor shell toolchain
... instead of hard-coding /bin/sh.
Diffstat (limited to 'CC')
-rw-r--r--CC/pkgconfig/EXPRESSIONS42
-rw-r--r--CC/pkgconfig/RULES5
2 files changed, 41 insertions, 6 deletions
diff --git a/CC/pkgconfig/EXPRESSIONS b/CC/pkgconfig/EXPRESSIONS
index 9b865de..d4b923b 100644
--- a/CC/pkgconfig/EXPRESSIONS
+++ b/CC/pkgconfig/EXPRESSIONS
@@ -4,6 +4,9 @@
{ "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*"
@@ -22,6 +25,12 @@
, "key": "PATH"
}
]
+ , [ "sh-PATH"
+ , { "type": "let*"
+ , "bindings": [["fieldname", "shell defaults"]]
+ , "body": {"type": "CALL_EXPRESSION", "name": "sh-PATH"}
+ }
+ ]
, [ "ENV"
, { "type": "map_union"
, "$1":
@@ -35,6 +44,7 @@
{ "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"}]
@@ -46,6 +56,27 @@
]
}
]
+ , ["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"]}
]
@@ -54,9 +85,9 @@
, "subdir": {"type": "var", "name": "stage"}
, "$1":
{ "type": "ACTION"
- , "inputs": {"type": "empty_map"}
+ , "inputs": {"type": "var", "name": "shell TOOLCHAIN"}
, "cmd":
- [ "/bin/sh"
+ [ {"type": "var", "name": "sh"}
, "-c"
, { "type": "join"
, "separator": " "
@@ -101,9 +132,9 @@
]
, [ "ldflags-files"
, { "type": "ACTION"
- , "inputs": {"type": "empty_map"}
+ , "inputs": {"type": "var", "name": "shell TOOLCHAIN"}
, "cmd":
- [ "/bin/sh"
+ [ {"type": "var", "name": "sh"}
, "-c"
, { "type": "join"
, "separator": " "
@@ -146,10 +177,11 @@
, "$1":
[ {"type": "var", "name": "add_rpath"}
, {"type": "var", "name": "ldflags-files"}
+ , {"type": "var", "name": "shell TOOLCHAIN"}
]
}
, "cmd":
- [ "/bin/sh"
+ [ {"type": "var", "name": "sh"}
, "-c"
, { "type": "join"
, "separator": " "
diff --git a/CC/pkgconfig/RULES b/CC/pkgconfig/RULES
index 1d3b613..f51d949 100644
--- a/CC/pkgconfig/RULES
+++ b/CC/pkgconfig/RULES
@@ -2,7 +2,10 @@
{ "doc": ["A system library via pkg-config"]
, "string_fields": ["name", "args", "stage"]
, "implicit":
- {"defaults": [["./", "..", "defaults"]], "add_rpath": ["add_rpath"]}
+ { "defaults": [["./", "..", "defaults"]]
+ , "shell defaults": [["shell", "defaults"]]
+ , "add_rpath": ["add_rpath"]
+ }
, "config_vars": ["PKG_CONFIG_ARGS", "ENV"]
, "field_doc":
{ "name": ["The pkg-config name of the library."]