summaryrefslogtreecommitdiff
path: root/rules/CC
diff options
context:
space:
mode:
Diffstat (limited to 'rules/CC')
-rw-r--r--rules/CC/foreign/shell/EXPRESSIONS33
-rw-r--r--rules/CC/foreign/shell/RULES2
2 files changed, 33 insertions, 2 deletions
diff --git a/rules/CC/foreign/shell/EXPRESSIONS b/rules/CC/foreign/shell/EXPRESSIONS
index bf0ecdb..a0a9a00 100644
--- a/rules/CC/foreign/shell/EXPRESSIONS
+++ b/rules/CC/foreign/shell/EXPRESSIONS
@@ -38,17 +38,38 @@
, "foreign-PATH": ["CC/foreign", "default-PATH"]
, "foreign-TOOLCHAIN": ["CC/foreign", "default-TOOLCHAIN"]
, "foreign-NON_SYSTEM_TOOLS": ["CC/foreign", "default-NON_SYSTEM_TOOLS"]
+ , "map_provider": ["", "field_map_provider"]
+ , "sh": ["shell", "sh"]
+ , "sh-PATH": ["shell", "PATH"]
+ , "sh prolog": ["shell", "prolog"]
}
, "expression":
{ "type": "let*"
, "bindings":
[ ["TOOLCHAIN_DIR", "toolchain"]
+ , [ "shell TOOLCHAIN"
+ , { "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"}
+ }
+ ]
, [ "TOOLCHAIN"
, { "type": "disjoint_map_union"
, "msg": "Toolchain trees may not overlap"
, "$1":
[ {"type": "CALL_EXPRESSION", "name": "foreign-TOOLCHAIN"}
, {"type": "CALL_EXPRESSION", "name": "default-TOOLCHAIN"}
+ , {"type": "var", "name": "shell TOOLCHAIN"}
]
}
]
@@ -181,6 +202,10 @@
, "$1":
[ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
, {"type": "CALL_EXPRESSION", "name": "default-PATH"}
+ , { "type": "let*"
+ , "bindings": [["fieldname", "shell defaults"]]
+ , "body": {"type": "CALL_EXPRESSION", "name": "sh-PATH"}
+ }
]
}
]
@@ -232,7 +257,11 @@
, "$1":
{ "type": "++"
, "$1":
- [ [ "set -eu"
+ [ { "type": "let*"
+ , "bindings": [["fieldname", "shell defaults"]]
+ , "body": {"type": "CALL_EXPRESSION", "name": "sh prolog"}
+ }
+ , [ "set -eu"
, "mkdir -p scratch work install"
, "export ACTION_DIR=\"$(pwd)\""
, "export TMPDIR=\"$(pwd)/scratch\""
@@ -323,7 +352,7 @@
, {"type": "var", "name": "expand_exec"}
]
}
- , "cmd": ["sh", "run_cmds.sh"]
+ , "cmd": [{"type": "var", "name": "sh"}, "run_cmds.sh"]
, "outs": {"type": "var", "name": "installed_files"}
, "out_dirs": {"type": "var", "name": "installed_dirs"}
, "env": {"type": "var", "name": "ENV"}
diff --git a/rules/CC/foreign/shell/RULES b/rules/CC/foreign/shell/RULES
index 5c85955..6a5d8ec 100644
--- a/rules/CC/foreign/shell/RULES
+++ b/rules/CC/foreign/shell/RULES
@@ -29,6 +29,7 @@
, "implicit":
{ "defaults": [["CC", "defaults"]]
, "foreign-defaults": [["CC/foreign", "defaults"]]
+ , "shell defaults": [["shell", "defaults"]]
, "expand_exec": [["./", "..", "expand_exec"]]
}
, "field_doc":
@@ -268,6 +269,7 @@
, "implicit":
{ "defaults": [["CC", "defaults"]]
, "foreign-defaults": [["CC/foreign", "defaults"]]
+ , "shell defaults": [["shell", "defaults"]]
, "config_reader": [["CC", "prebuilt/read_pkgconfig.py"]]
, "expand_exec": [["./", "..", "expand_exec"]]
}