Merge "Reland: Require TARGET_RELEASE for builds" into main am: 2c8ece0b25

Original change: https://android-review.googlesource.com/c/platform/build/+/2824863

Change-Id: I905bd794ad0c5de8967a029ef7cdbb8dc779817b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Greg Kaiser 2023-11-15 14:17:51 +00:00 committed by Automerger Merge Worker
commit 0f62caed3b

View file

@ -82,13 +82,25 @@ $(foreach f, $(config_map_files), \
)
FLAG_DECLARATION_FILES :=
# If TARGET_RELEASE is set, fail if there is no matching release config
# If it isn't set, no release config files will be included and all flags
# will get their default values.
ifneq ($(TARGET_RELEASE),)
ifeq ($(TARGET_RELEASE),)
# We allow some internal paths to explicitly set TARGET_RELEASE to the
# empty string. For the most part, 'make' treats unset and empty string as
# the same. But the following line differentiates, and will only assign
# if the variable was completely unset.
TARGET_RELEASE ?= was_unset
ifeq ($(TARGET_RELEASE),was_unset)
$(error No release config set for target; please set TARGET_RELEASE, or if building on the command line use 'lunch <target>-<release>-<build_type>', where release is one of: $(_all_release_configs))
endif
# Instead of leaving this string empty, we want to default to a valid
# setting. Full builds coming through this path is a bug, but in case
# of such a bug, we want to at least get consistent, valid results.
TARGET_RELEASE = trunk_staging
endif
ifeq ($(filter $(_all_release_configs), $(TARGET_RELEASE)),)
$(error No release config found for TARGET_RELEASE: $(TARGET_RELEASE). Available releases are: $(_all_release_configs))
else
endif
# Choose flag files
# Don't sort this, use it in the order they gave us.
# Do allow duplicate entries, retaining only the first usage.
@ -96,14 +108,6 @@ else
$(foreach f,$(_all_release_configs.$(TARGET_RELEASE).FILES), \
$(if $(filter $(f),$(flag_value_files)),,$(eval flag_value_files += $(f)))\
)
endif
else
# Useful for finding scripts etc that aren't passing or setting TARGET_RELEASE
ifneq ($(FAIL_IF_NO_RELEASE_CONFIG),)
$(error FAIL_IF_NO_RELEASE_CONFIG was set and TARGET_RELEASE was not)
endif
flag_value_files :=
endif
# Unset variables so they can't use them
define declare-release-config