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

     1  # Handle AndroidManifest.xmls
     2  # Input: LOCAL_MANIFEST_FILE, LOCAL_FULL_MANIFEST_FILE, LOCAL_FULL_LIBS_MANIFEST_FILES
     3  # Output: full_android_manifest
     4  
     5  ifeq ($(strip $(LOCAL_MANIFEST_FILE)),)
     6    LOCAL_MANIFEST_FILE := AndroidManifest.xml
     7  endif
     8  ifdef LOCAL_FULL_MANIFEST_FILE
     9    full_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
    10  else
    11    full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
    12  endif
    13  
    14  my_full_libs_manifest_files := $(LOCAL_FULL_LIBS_MANIFEST_FILES)
    15  my_full_libs_manifest_deps := $(LOCAL_FULL_LIBS_MANIFEST_FILES)
    16  
    17  # Set up dependency on aar libraries
    18  LOCAL_STATIC_JAVA_AAR_LIBRARIES := $(strip $(LOCAL_STATIC_JAVA_AAR_LIBRARIES))
    19  ifdef LOCAL_STATIC_JAVA_AAR_LIBRARIES
    20  my_full_libs_manifest_deps += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
    21    $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/classes.jar)
    22  my_full_libs_manifest_files += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
    23    $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/AndroidManifest.xml)
    24  
    25  # With aapt2, we'll link in the built resource from the AAR.
    26  ifndef LOCAL_USE_AAPT2
    27  LOCAL_RESOURCE_DIR += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
    28    $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/res)
    29  endif  # LOCAL_USE_AAPT2
    30  endif  # LOCAL_STATIC_JAVA_AAR_LIBRARIES
    31  
    32  # Set up rules to merge library manifest files
    33  ifdef my_full_libs_manifest_files
    34  main_android_manifest := $(full_android_manifest)
    35  full_android_manifest := $(intermediates.COMMON)/AndroidManifest.xml
    36  $(full_android_manifest): PRIVATE_LIBS_MANIFESTS := $(my_full_libs_manifest_files)
    37  $(full_android_manifest): $(ANDROID_MANIFEST_MERGER_CLASSPATH)
    38  $(full_android_manifest) : $(main_android_manifest) $(my_full_libs_manifest_deps)
    39  	@echo "Merge android manifest files: $@ <-- $< $(PRIVATE_LIBS_MANIFESTS)"
    40  	@mkdir -p $(dir $@)
    41  	$(hide) $(ANDROID_MANIFEST_MERGER) --main $< \
    42  	    --libs $(call normalize-path-list,$(PRIVATE_LIBS_MANIFESTS)) \
    43  	    --out $@
    44  
    45  endif