platform_build/core/sdk_check.mk
Anton Hansson 62c7de3792 Enforce specifying sdk/private for apps. DO NOT MERGE
All apps in master comply with this now, but new offenders
are being added daily. This will ensure compliance going
forward.

Test: build/soong/build_test.bash
Bug: 73535841

Change-Id: If28049750a9787bf455f72402e624dbddf842253
2018-03-08 13:19:36 +00:00

37 lines
1.4 KiB
Makefile

# Enforcement checks that LOCAL_SDK_VERSION and LOCAL_PRIVATE_PLATFORM_APIS are
# set correctly.
# Should be included by java targets that allow specifying LOCAL_SDK_VERSION.
# The JAVA_SDK_ENFORCEMENT_WARNING and JAVA_SDK_ENFORCEMENT_ERROR variables may
# be set to a particular module class to enable warnings and errors for that
# subtype.
whitelisted_modules := framework-res__auto_generated_rro
ifeq (,$(JAVA_SDK_ENFORCEMENT_ERROR))
JAVA_SDK_ENFORCEMENT_ERROR := APPS
endif
ifeq ($(LOCAL_SDK_VERSION)$(LOCAL_PRIVATE_PLATFORM_APIS),)
ifeq (,$(filter $(LOCAL_MODULE),$(whitelisted_modules)))
ifneq ($(JAVA_SDK_ENFORCEMENT_WARNING)$(JAVA_SDK_ENFORCEMENT_ERROR),)
my_message := Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_APIS,
ifeq ($(LOCAL_MODULE_CLASS),$(JAVA_SDK_ENFORCEMENT_ERROR))
$(call pretty-error,$(my_message))
endif
ifeq ($(LOCAL_MODULE_CLASS),$(JAVA_SDK_ENFORCEMENT_WARNING))
$(call pretty-warning,$(my_message))
endif
my_message :=
endif
endif
else ifneq ($(LOCAL_SDK_VERSION),)
ifneq ($(LOCAL_PRIVATE_PLATFORM_APIS),)
my_message := Specifies both LOCAL_SDK_VERSION ($(LOCAL_SDK_VERSION)) and
my_message += LOCAL_PRIVATE_PLATFORM_APIS ($(LOCAL_PRIVATE_PLATFORM_APIS))
my_message += but should specify only one
$(call pretty-error,$(my_message))
my_message :=
endif
endif