blob: 7acb57afb63804acc8af17b01f638e2af270b298 [file] [log] [blame]
Jiyong Park641b6cc2018-01-15 14:48:40 +09001#
2# Copyright (C) 2018 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17ifdef BOARD_SYSTEMSDK_VERSIONS
18 # Apps and jars in vendor or odm partition are forced to build against System SDK.
19 _is_vendor_app :=
20 ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
21 # Note: no need to check LOCAL_MODULE_PATH* since LOCAL_[VENDOR|ODM|OEM]_MODULE is already
22 # set correctly before this is included.
23 _is_vendor_app := true
24 endif
25 ifneq (,$(filter JAVA_LIBRARIES APPS,$(LOCAL_MODULE_CLASS)))
26 ifndef LOCAL_SDK_VERSION
27 ifeq ($(_is_vendor_app),true)
Anton Hansson85494172018-11-01 18:48:28 +000028 ifeq (,$(filter framework-res__auto_generated_rro,$(LOCAL_MODULE)))
Jiyong Parkc0ece102018-03-26 17:16:33 +090029 # Runtime resource overlay for framework-res is exempted from building
30 # against System SDK.
31 # TODO(b/35859726): remove this exception
32 LOCAL_SDK_VERSION := system_current
33 endif
Jiyong Park641b6cc2018-01-15 14:48:40 +090034 endif
35 endif
36 endif
37endif
38
39# Ensure that the selected System SDK version is one of the supported versions.
40# The range of support versions becomes narrower when BOARD_SYSTEMSDK_VERSIONS
41# is set, which is a subset of PLATFORM_SYSTEMSDK_VERSIONS.
42ifneq (,$(call has-system-sdk-version,$(LOCAL_SDK_VERSION)))
43 ifneq ($(_is_vendor_app),true)
44 # apps bundled in system partition can use all system sdk versions provided by the platform
45 _supported_systemsdk_versions := $(PLATFORM_SYSTEMSDK_VERSIONS)
46 else ifdef BOARD_SYSTEMSDK_VERSIONS
47 # When BOARD_SYSTEMSDK_VERSIONS is set, vendors apps are restricted to use those versions
48 # which is equal to or smaller than PLATFORM_SYSTEMSDK_VERSIONS
49 _supported_systemsdk_versions := $(BOARD_SYSTEMSDK_VERSIONS)
50 else
51 # If not, vendor apks are treated equally to system apps
52 _supported_systemsdk_versions := $(PLATFORM_SYSTEMSDK_VERSIONS)
53 endif
54 _system_sdk_version := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION))
55 ifneq ($(_system_sdk_version),$(filter $(_system_sdk_version),$(_supported_systemsdk_versions)))
56 $(call pretty-error,Incompatible LOCAL_SDK_VERSION '$(LOCAL_SDK_VERSION)'. \
57 System SDK version '$(_system_sdk_version)' is not supported. Supported versions are: $(_supported_systemsdk_versions))
58 endif
59 _system_sdk_version :=
60 _supported_systemsdk_versions :=
61endif