Check conformity of VNDK version

Allow BOARD_VNDK_VERSION=<version> only if the prebuilt VNDK for
the <version> is provided.

If PRODUCT_EXTRA_VNDK_VERSIONS is set, all the versions in the list
will be checked as well.

Bug: 38304393
Bug: 65377115
Bug: 68123344
Test: Set BOARD_VNDK_VERSION := current and check build
Test: Set PRODUCT_EXTRA_VNDK_VERSIONS := 27 and check if it returns
      error when prebuilts/vndk/v27/Android.mk is not provided

Change-Id: I2e43d71f1ea3717ab8c45de84c926ecc43193307
This commit is contained in:
Justin Yun 2017-11-17 16:09:17 +09:00
parent 59dddf42a4
commit 9272ef87a6
3 changed files with 25 additions and 2 deletions

View File

@ -285,9 +285,14 @@ ifeq ($(AB_OTA_UPDATER),true)
endif
# Check BOARD_VNDK_VERSION
define check_vndk_version
$(eval vndk_path := prebuilts/vndk/v$(1)) \
$(if $(wildcard $(vndk_path)/Android.bp),,$(error VNDK version $(1) not found))
endef
ifdef BOARD_VNDK_VERSION
ifneq ($(BOARD_VNDK_VERSION),current)
$(error BOARD_VNDK_VERSION: Only "current" is implemented)
$(call check_vndk_version,$(BOARD_VNDK_VERSION))
endif
TARGET_VENDOR_TEST_SUFFIX := /vendor
@ -295,6 +300,10 @@ else
TARGET_VENDOR_TEST_SUFFIX :=
endif
ifdef PRODUCT_EXTRA_VNDK_VERSIONS
$(foreach v,$(PRODUCT_EXTRA_VNDK_VERSIONS),$(call check_vndk_version,$(v)))
endif
# ---------------------------------------------------------------
# Set up configuration for target machine.
# The following must be set:

View File

@ -112,6 +112,7 @@ $(call add_json_list, DeviceKernelHeaders, $(TARGET_PROJECT_SYSTEM
$(call add_json_bool, DevicePrefer32BitExecutables, $(filter true,$(TARGET_PREFER_32_BIT_EXECUTABLES)))
$(call add_json_val, DeviceUsesClang, $(if $(USE_CLANG_PLATFORM_BUILD),$(USE_CLANG_PLATFORM_BUILD),false))
$(call add_json_str, DeviceVndkVersion, $(BOARD_VNDK_VERSION))
$(call add_json_list, ExtraVndkVersions, $(PRODUCT_EXTRA_VNDK_VERSIONS))
$(call add_json_bool, Malloc_not_svelte, $(call invert_bool,$(filter true,$(MALLOC_SVELTE))))
$(call add_json_str, Override_rs_driver, $(OVERRIDE_RS_DRIVER))
$(call add_json_bool, Treble, $(filter true,$(PRODUCT_FULL_TREBLE)))

View File

@ -96,7 +96,7 @@ endif
@chmod a+x $@
include $(CLEAR_VARS)
LOCAL_MODULE := vndk_package
LOCAL_MODULE := vndk_current
LOCAL_REQUIRED_MODULES := \
$(addsuffix .vendor,$(VNDK_CORE_LIBRARIES)) \
$(addsuffix .vendor,$(VNDK_SAMEPROCESS_LIBRARIES)) \
@ -105,4 +105,17 @@ LOCAL_REQUIRED_MODULES := \
vndksp.libraries.txt
include $(BUILD_PHONY_PACKAGE)
include $(CLEAR_VARS)
LOCAL_MODULE := vndk_package
ifeq (current,$(BOARD_VNDK_VERSION))
LOCAL_REQUIRED_MODULES := \
vndk_current
else
LOCAL_REQUIRED_MODULES := \
vndk_v$(BOARD_VNDK_VERSION)
endif
LOCAL_REQUIRED_MODULES += \
$(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),vndk_v$(vndk_ver))
include $(BUILD_PHONY_PACKAGE)
endif # BOARD_VNDK_VERSION is set