Add BUILD_BROKEN_NINJA_USES_ENV_VARS
See the Changes.md and the paired soong change for more information. Test: Add BUILD_BROKEN_NINJA_USES_ENV_VARS := OLDPWD ALLOW_NINJA_ENV=false m nothing; check out/soong.log Change-Id: I2167eac52166b513318bc48feb71c9d0b80e5fd4
This commit is contained in:
parent
9d4a90ef4b
commit
2607625f8b
2 changed files with 22 additions and 2 deletions
20
Changes.md
20
Changes.md
|
@ -1,5 +1,23 @@
|
|||
# Build System Changes for Android.mk Writers
|
||||
|
||||
## Rules executed within limited environment
|
||||
|
||||
With `ALLOW_NINJA_ENV=false` (soon to be the default), ninja, and all the
|
||||
rules/actions executed within it will only have access to a limited number of
|
||||
environment variables. Ninja does not track when environment variables change
|
||||
in order to trigger rebuilds, so changing behavior based on arbitrary variables
|
||||
is not safe with incremental builds.
|
||||
|
||||
Kati and Soong can safely use environment variables, so the expectation is that
|
||||
you'd embed any environment variables that you need to use within the command
|
||||
line generated by those tools. See the [export section](#export_keyword) below
|
||||
for examples.
|
||||
|
||||
For a temporary workaround, you can set `ALLOW_NINJA_ENV=true` in your
|
||||
environment to restore the previous behavior, or set
|
||||
`BUILD_BROKEN_NINJA_USES_ENV_VAR := <var> <var2> ...` in your `BoardConfig.mk`
|
||||
to allow specific variables to be passed through until you've fixed the rules.
|
||||
|
||||
## LOCAL_C_INCLUDES outside the source/output trees are an error {#BUILD_BROKEN_OUTSIDE_INCLUDE_DIRS}
|
||||
|
||||
Include directories are expected to be within the source tree (or in the output
|
||||
|
@ -31,7 +49,7 @@ Since this usually isn't a valid path, you can almost always just remove the
|
|||
offending line.
|
||||
|
||||
|
||||
# `BOARD_HAL_STATIC_LIBRARIES` and `LOCAL_HAL_STATIC_LIBRARIES` are obsolete {#BOARD_HAL_STATIC_LIBRARIES}
|
||||
## `BOARD_HAL_STATIC_LIBRARIES` and `LOCAL_HAL_STATIC_LIBRARIES` are obsolete {#BOARD_HAL_STATIC_LIBRARIES}
|
||||
|
||||
Define proper HIDL / Stable AIDL HAL instead.
|
||||
|
||||
|
|
|
@ -98,7 +98,8 @@ _build_broken_var_list += \
|
|||
BUILD_BROKEN_USES_$(m))
|
||||
|
||||
_board_true_false_vars := $(_build_broken_var_list)
|
||||
_board_strip_readonly_list += $(_build_broken_var_list)
|
||||
_board_strip_readonly_list += $(_build_broken_var_list) \
|
||||
BUILD_BROKEN_NINJA_USES_ENV_VARS
|
||||
|
||||
# Conditional to building on linux, as dex2oat currently does not work on darwin.
|
||||
ifeq ($(HOST_OS),linux)
|
||||
|
@ -109,6 +110,7 @@ endif
|
|||
# Broken build defaults
|
||||
# ###############################################################
|
||||
$(foreach v,$(_build_broken_var_list),$(eval $(v) :=))
|
||||
BUILD_BROKEN_NINJA_USES_ENV_VARS :=
|
||||
|
||||
# Boards may be defined under $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)
|
||||
# or under vendor/*/$(TARGET_DEVICE). Search in both places, but
|
||||
|
|
Loading…
Reference in a new issue