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# Including this makefile will force AAPT2 on, 18# rewriting some properties to convert standard AAPT usage to AAPT2. 19 20ifeq ($(LOCAL_USE_AAPT2),false) 21 $(call pretty-error, LOCAL_USE_AAPT2 := false is no longer supported) 22endif 23 24# Filter out support library resources 25LOCAL_RESOURCE_DIR := $(filter-out \ 26 prebuilts/sdk/current/% \ 27 frameworks/support/%,\ 28 $(LOCAL_RESOURCE_DIR)) 29# Filter out unnecessary aapt flags 30ifneq (,$(filter --extra-packages,$(LOCAL_AAPT_FLAGS))) 31 LOCAL_AAPT_FLAGS := $(subst --extra-packages=,--extra-packages$(space), \ 32 $(filter-out \ 33 --extra-packages=android.support.% \ 34 --extra-packages=androidx.%, \ 35 $(subst --extra-packages$(space),--extra-packages=,$(LOCAL_AAPT_FLAGS)))) 36 ifeq (,$(filter --extra-packages,$(LOCAL_AAPT_FLAGS))) 37 LOCAL_AAPT_FLAGS := $(filter-out --auto-add-overlay,$(LOCAL_AAPT_FLAGS)) 38 endif 39endif 40 41# AAPT2 is pickier about missing resources. Support library may have references to resources 42# added in current, so always treat LOCAL_SDK_VERSION := <number> as LOCAL_SDK_RES_VERSION := current. 43ifneq (,$(filter-out current system_current test_current core_current,$(LOCAL_SDK_VERSION))) 44 LOCAL_SDK_RES_VERSION := current 45endif 46 47ifeq (,$(strip $(LOCAL_MANIFEST_FILE)$(LOCAL_FULL_MANIFEST_FILE))) 48 ifeq (,$(wildcard $(LOCAL_PATH)/AndroidManifest.xml)) 49 # work around missing manifests by creating a default one 50 LOCAL_FULL_MANIFEST_FILE := $(call local-intermediates-dir,COMMON)/DefaultManifest.xml 51 $(call create-default-manifest-file,$(LOCAL_FULL_MANIFEST_FILE),$(call module-min-sdk-version)) 52 endif 53endif 54