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 if FORCE_AAPT2==true, 18# rewriting some properties to convert standard AAPT usage to AAPT2. 19 20ifneq ($(FORCE_AAPT2),false) 21 ifeq ($(LOCAL_USE_AAPT2),) 22 # Force AAPT2 on 23 LOCAL_USE_AAPT2 := true 24 # Filter out support library resources 25 LOCAL_RESOURCE_DIR := $(filter-out \ 26 prebuilts/sdk/current/% \ 27 frameworks/support/%,\ 28 $(LOCAL_RESOURCE_DIR)) 29 # Filter out unnecessary aapt flags 30 ifneq (,$(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 39 endif 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 as LOCAL_SDK_RES_VERSION := current. 43 ifdef LOCAL_SDK_VERSION 44 LOCAL_SDK_RES_VERSION := current 45 endif 46 47 ifeq (,$(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 53 endif 54 endif 55endif 56 57ifneq ($(LOCAL_USE_AAPT2),true) 58 ifneq ($(LOCAL_USE_AAPT2),false) 59 ifneq ($(LOCAL_USE_AAPT2),) 60 $(call pretty-error,Invalid value for LOCAL_USE_AAPT2: "$(LOCAL_USE_AAPT2)") 61 endif 62 endif 63endif 64