Skip to content

Commit 5d11fc6

Browse files
committed
Introduce 'env_override' paremeter.
1 parent bf8a7c2 commit 5d11fc6

File tree

6 files changed

+20
-5
lines changed

6 files changed

+20
-5
lines changed

foreign_cc/configure.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def _create_configure_script(configureParameters):
9898
deps = ctx.attr.deps,
9999
inputs = inputs,
100100
env_vars = user_env,
101+
env_vars_override = ctx.attr.env_override,
101102
configure_in_place = ctx.attr.configure_in_place,
102103
prefix_flag = ctx.attr.prefix_flag,
103104
autoconf = ctx.attr.autoconf,

foreign_cc/make.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ def _create_make_script(configureParameters):
7474
deps = ctx.attr.deps,
7575
inputs = inputs,
7676
env_vars = user_env,
77+
env_vars_override = ctx.attr.env_override,
7778
make_commands = make_commands,
7879
)
7980

foreign_cc/private/configure_script.bzl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def create_configure_script(
1414
deps,
1515
inputs,
1616
env_vars,
17+
env_vars_override,
1718
configure_in_place,
1819
prefix_flag,
1920
autoconf,
@@ -70,7 +71,7 @@ def create_configure_script(
7071

7172
script.append("##mkdirs## $$BUILD_TMPDIR$$/$$INSTALL_PREFIX$$")
7273
script.append("{env_vars} {prefix}\"{configure}\" {prefix_flag}$$BUILD_TMPDIR$$/$$INSTALL_PREFIX$$ {user_options}".format(
73-
env_vars = get_make_env_vars(workspace_name, tools, flags, env_vars, deps, inputs),
74+
env_vars = get_make_env_vars(workspace_name, tools, flags, env_vars, env_vars_override, deps, inputs),
7475
prefix = configure_prefix,
7576
configure = configure_path,
7677
prefix_flag = prefix_flag,

foreign_cc/private/framework.bzl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ CC_EXTERNAL_RULE_ATTRIBUTES = {
108108
"Variables containing `PATH` (e.g. `PATH`, `LD_LIBRARY_PATH`, `CPATH`) entries will be prepended to the existing variable."
109109
),
110110
),
111+
"env_override": attr.string_list(
112+
doc = (
113+
"List of keys from the 'env' attribute that should override any values set by the underlying C toolchain."
114+
),
115+
mandatory = False,
116+
default = [],
117+
),
111118
"includes": attr.string_list(
112119
doc = (
113120
"Optional list of include dirs to be passed to the dependencies of this library. " +

foreign_cc/private/make_env_vars.bzl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ def get_make_env_vars(
99
tools,
1010
flags,
1111
user_vars,
12+
user_vars_override,
1213
deps,
1314
inputs):
14-
vars = _get_make_variables(workspace_name, tools, flags, user_vars)
15+
vars = _get_make_variables(workspace_name, tools, flags, user_vars, user_vars_override)
1516
deps_flags = _define_deps_flags(deps, inputs)
1617

1718
# For cross-compilation.
@@ -94,7 +95,7 @@ _MAKE_TOOLS = {
9495
# missing: cxx_linker_executable
9596
}
9697

97-
def _get_make_variables(workspace_name, tools, flags, user_env_vars):
98+
def _get_make_variables(workspace_name, tools, flags, user_env_vars, user_vars_override):
9899
vars = {}
99100

100101
for flag in _MAKE_FLAGS:
@@ -106,7 +107,10 @@ def _get_make_variables(workspace_name, tools, flags, user_env_vars):
106107
for user_var in user_env_vars:
107108
toolchain_val = vars.get(user_var)
108109
if toolchain_val:
109-
vars[user_var] = toolchain_val + [user_env_vars[user_var]]
110+
if user_var in user_vars_override:
111+
vars[user_var] = [user_env_vars[user_var]]
112+
else:
113+
vars[user_var] = toolchain_val
110114

111115
tools_dict = {}
112116
for tool in _MAKE_TOOLS:

foreign_cc/private/make_script.bzl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def create_make_script(
99
flags,
1010
root,
1111
env_vars,
12+
env_vars_override,
1213
deps,
1314
inputs,
1415
make_commands):
@@ -19,7 +20,7 @@ def create_make_script(
1920
script.append("##symlink_contents_to_dir## $$EXT_BUILD_ROOT$$/{} $$BUILD_TMPDIR$$ False".format(root))
2021

2122
script.append("##enable_tracing##")
22-
configure_vars = get_make_env_vars(workspace_name, tools, flags, env_vars, deps, inputs)
23+
configure_vars = get_make_env_vars(workspace_name, tools, flags, env_vars, env_vars_override, deps, inputs)
2324
script.extend(["{env_vars} {command}".format(
2425
env_vars = configure_vars,
2526
command = command,

0 commit comments

Comments
 (0)