From 0d1d98157a9797ffa9b1af59f3f5c74e480fc007 Mon Sep 17 00:00:00 2001 From: Jeongik Cha Date: Thu, 20 Aug 2020 20:21:36 +0900 Subject: [PATCH] Introduce BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES If BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES has a numeric value, it replaces "current" or "system_current" with the version which the flag indicates. Bug: 163009188 Test: BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES=29 m, and then check if every vendor java module's sdk_version is 29 if its sdk_version was current. Change-Id: I8c7cf21563b984b8e9ef398192031b1f66d96494 --- core/base_rules.mk | 1 + core/config.mk | 10 ++++++++++ core/local_current_sdk.mk | 26 ++++++++++++++++++++++++++ core/soong_config.mk | 1 + 4 files changed, 38 insertions(+) create mode 100644 core/local_current_sdk.mk diff --git a/core/base_rules.mk b/core/base_rules.mk index ddf736bf37..a0b1761011 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -115,6 +115,7 @@ non_system_module := $(filter true, \ include $(BUILD_SYSTEM)/local_vndk.mk include $(BUILD_SYSTEM)/local_systemsdk.mk +include $(BUILD_SYSTEM)/local_current_sdk.mk my_module_tags := $(LOCAL_MODULE_TAGS) ifeq ($(my_host_cross),true) diff --git a/core/config.mk b/core/config.mk index 57296d80a5..a286769c96 100644 --- a/core/config.mk +++ b/core/config.mk @@ -720,6 +720,16 @@ ifndef BOARD_SYSTEMSDK_VERSIONS endif endif +ifndef BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES + BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES := current +else + ifdef PRODUCT_SHIPPING_API_LEVEL + ifneq ($(call math_lt,$(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES),$(PRODUCT_SHIPPING_API_LEVEL)),) + $(error BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES ($(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES)) must be greater than or equal to PRODUCT_SHIPPING_API_LEVEL ($(PRODUCT_SHIPPING_API_LEVEL))) + endif + endif +endif +.KATI_READONLY := BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES ifdef PRODUCT_SHIPPING_API_LEVEL ifneq ($(call numbers_less_than,$(PRODUCT_SHIPPING_API_LEVEL),$(BOARD_SYSTEMSDK_VERSIONS)),) diff --git a/core/local_current_sdk.mk b/core/local_current_sdk.mk new file mode 100644 index 0000000000..ea7da8a766 --- /dev/null +++ b/core/local_current_sdk.mk @@ -0,0 +1,26 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +ifdef BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES + ifneq (current,$(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES)) + ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_PROPRIETARY_MODULE))) + ifeq (current,$(LOCAL_SDK_VERSION)) + LOCAL_SDK_VERSION := $(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES) + else ifeq (system_current,$(LOCAL_SDK_VERSION)) + LOCAL_SDK_VERSION := system_$(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES) + endif + endif + endif +endif diff --git a/core/soong_config.mk b/core/soong_config.mk index 4731250c56..ad2e816627 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -210,6 +210,7 @@ $(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\ $(call end_json_map) $(call add_json_bool, EnforceProductPartitionInterface, $(PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE)) +$(call add_json_str, DeviceCurrentApiLevelForVendorModules, $(BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES)) $(call add_json_bool, InstallExtraFlattenedApexes, $(PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES))