github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/core/local_systemsdk.mk (about)

     1  #
     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  
    17  ifdef 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)
    28          ifeq (,$(findstring __auto_generated_rro,$(LOCAL_MODULE)))
    29            # 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
    34        endif
    35      endif
    36    endif
    37  endif
    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.
    42  ifneq (,$(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 :=
    61  endif