Add PLATFORM_VERSION_FUTURE_CODENAMES.

PLATFORM_VERSION_ALL_CODENAMES isn't actually all the code names, just
the ones active in our current target. We need the list of all targets
so we can validate code names in NDK stub templates even if they're in
the future. Unfortunately, all_codenames has been baked into
build.prop for ages, so we're stuck with this name. Improve the
comments and add PLATFORM_VERSION_FUTURE_CODENAMES to cover to cover
the future targets.

Test: make checkbuild
Test: check $ANDROID_PRODUCT_OUT/system/build.prop
Bug: None
Change-Id: I81fed6f761e5362ef3050be9d1e3fb17739feadd
This commit is contained in:
Dan Albert 2017-07-28 12:34:08 -07:00
parent cf021094f1
commit cd38b86016
2 changed files with 24 additions and 6 deletions

View File

@ -34,7 +34,8 @@ $(SOONG_VARIABLES): FORCE
echo ' "Make_suffix": "-$(TARGET_PRODUCT)",'; \
echo ''; \
echo ' "Platform_sdk_version": $(PLATFORM_SDK_VERSION),'; \
echo ' "Platform_version_all_codenames": $(call csv_to_json_list,$(PLATFORM_VERSION_ALL_CODENAMES)),'; \
echo ' "Platform_version_active_codenames": $(call csv_to_json_list,$(PLATFORM_VERSION_ALL_CODENAMES)),'; \
echo ' "Platform_version_future_codenames": $(call csv_to_json_list,$(PLATFORM_VERSION_FUTURE_CODENAMES)),'; \
echo ' "Unbundled_build": $(if $(TARGET_BUILD_APPS),true,false),'; \
echo ' "Brillo": $(if $(BRILLO),true,false),'; \
echo ' "Malloc_not_svelte": $(if $(filter true,$(MALLOC_SVELTE)),false,true),'; \

View File

@ -129,14 +129,17 @@ ifndef PLATFORM_VERSION_CODENAME
PLATFORM_VERSION_CODENAME := $(TARGET_PLATFORM_VERSION)
endif
# This is all of the development codenames that are active. Should be either
# the same as PLATFORM_VERSION_CODENAME or a comma-separated list of additional
# codenames after PLATFORM_VERSION_CODENAME.
# This is all of the *active* development codenames. There are future
# codenames not included in this list. This confusing name is needed because
# all_codenames has been baked into build.prop for ages.
#
# Should be either the same as PLATFORM_VERSION_CODENAME or a comma-separated
# list of additional codenames after PLATFORM_VERSION_CODENAME.
PLATFORM_VERSION_ALL_CODENAMES :=
# Build a list of all possible code names. Avoid duplicates, and stop when we
# Build a list of all active code names. Avoid duplicates, and stop when we
# reach a codename that matches PLATFORM_VERSION_CODENAME (anything beyond
# that is not included in our build.
# that is not included in our build).
_versions_in_target := \
$(call find_and_earlier,$(ALL_VERSIONS),$(TARGET_PLATFORM_VERSION))
$(foreach version,$(_versions_in_target),\
@ -144,9 +147,23 @@ ifndef PLATFORM_VERSION_CODENAME
$(if $(filter $(_codename),$(PLATFORM_VERSION_ALL_CODENAMES)),,\
$(eval PLATFORM_VERSION_ALL_CODENAMES += $(_codename))))
# This is all of the inactive development codenames. Available to be targeted
# in this branch but in the future relative to our current target.
PLATFORM_VERSION_FUTURE_CODENAMES :=
# Build a list of all untargeted code names. Avoid duplicates.
_versions_not_in_target := \
$(filter-out $(PLATFORM_VERSION_ALL_CODENAMES),$(ALL_VERSIONS))
$(foreach version,$(_versions_not_in_target),\
$(eval _codename := $(PLATFORM_VERSION_CODENAME.$(version)))\
$(if $(filter $(_codename),$(PLATFORM_VERSION_FUTURE_CODENAMES)),,\
$(eval PLATFORM_VERSION_FUTURE_CODENAMES += $(_codename))))
# And convert from space separated to comma separated.
PLATFORM_VERSION_ALL_CODENAMES := \
$(subst $(space),$(comma),$(strip $(PLATFORM_VERSION_ALL_CODENAMES)))
PLATFORM_VERSION_FUTURE_CODENAMES := \
$(subst $(space),$(comma),$(strip $(PLATFORM_VERSION_FUTURE_CODENAMES)))
endif