2bfe0a1a25
Similar to native:vendor, native:product can use VNDK libs but not
vndk_private.
It is activated when PRODUCT_PRODUCT_VNDK_VERSION is set.
This restores the reverted commit
4e7e76fe5a
(aosp/1197274).
The problem of the original CL was assuming no modules have both
LOCAL_PRODUCT_MODULE and LOCAL_USE_VNDK in the old implementations.
But many vendor modules in the targets without setting
PRODUCT_PRODUCT_VNDK_VERSION in old branches had both flags that
caused link failures.
To make it no-op without PRODUCT_PRODUCT_VNDK_VERSION, I defined
LOCAL_USE_VNDK_PRODUCT that is set to true if
PRODUCT_PRODUCT_VNDK_VERSION is defined and LOCAL_PRODUCT_MODULE is
true.
Bug: 146620523
Test: build with PRODUCT_PRODUCT_VNDK_VERSION := current
Change-Id: I344c7dc1c47f08706c101e486ff07c3f10aff8ac
46 lines
1.5 KiB
Makefile
46 lines
1.5 KiB
Makefile
|
|
#Set LOCAL_USE_VNDK for modules going into product, vendor or odm partition, except for host modules
|
|
#If LOCAL_SDK_VERSION is set, thats a more restrictive set, so they dont need LOCAL_USE_VNDK
|
|
ifndef LOCAL_IS_HOST_MODULE
|
|
ifndef LOCAL_SDK_VERSION
|
|
ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
|
|
LOCAL_USE_VNDK:=true
|
|
# Note: no need to check LOCAL_MODULE_PATH* since LOCAL_[VENDOR|ODM|OEM]_MODULE is already
|
|
# set correctly before this is included.
|
|
endif
|
|
ifdef PRODUCT_PRODUCT_VNDK_VERSION
|
|
# Product modules also use VNDK when PRODUCT_PRODUCT_VNDK_VERSION is defined.
|
|
ifeq (true,$(LOCAL_PRODUCT_MODULE))
|
|
LOCAL_USE_VNDK:=true
|
|
LOCAL_USE_VNDK_PRODUCT:=true
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
# Verify LOCAL_USE_VNDK usage, and set LOCAL_SDK_VERSION if necessary
|
|
|
|
ifdef LOCAL_IS_HOST_MODULE
|
|
ifdef LOCAL_USE_VNDK
|
|
$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Do not use LOCAL_USE_VNDK with host modules >&2)
|
|
$(error done)
|
|
endif
|
|
endif
|
|
ifdef LOCAL_USE_VNDK
|
|
ifneq ($(LOCAL_USE_VNDK),true)
|
|
$(shell echo '$(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must be "true" or empty, not "$(LOCAL_USE_VNDK)"' >&2)
|
|
$(error done)
|
|
endif
|
|
|
|
ifdef LOCAL_SDK_VERSION
|
|
$(shell echo $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): LOCAL_USE_VNDK must not be used with LOCAL_SDK_VERSION >&2)
|
|
$(error done)
|
|
endif
|
|
|
|
# If we're not using the VNDK, drop all restrictions
|
|
ifndef BOARD_VNDK_VERSION
|
|
LOCAL_USE_VNDK:=
|
|
LOCAL_USE_VNDK_PRODUCT:=
|
|
endif
|
|
endif
|
|
|