From cd38b8601665e4474ec4536229d3c9b7eba2261f Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Fri, 28 Jul 2017 12:34:08 -0700 Subject: [PATCH] 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 --- core/soong_config.mk | 3 ++- core/version_defaults.mk | 27 ++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/core/soong_config.mk b/core/soong_config.mk index cdd289675..fea046564 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -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),'; \ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 3506fff6e..083e01b6d 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -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