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

     1  ######################################
     2  # Compile resource with AAPT2
     3  # Input variables:
     4  # - full_android_manifest
     5  # - my_res_resources
     6  # - my_overlay_resources
     7  # - my_compiled_res_base_dir
     8  # - my_asset_dirs
     9  # - my_full_asset_paths
    10  # - my_res_package
    11  # - R_file_stamp
    12  # - proguard_options_file
    13  # - my_generated_res_dirs: Resources generated during the build process and we have to compile them in a single run of aapt2.
    14  # - my_generated_res_dirs_deps: the dependency to use for my_generated_res_dirs.
    15  # - my_generated_res_zips: Zip files containing resources
    16  # - my_apk_split_configs: The configurations for which to generate splits.
    17  # - built_apk_splits: The paths where AAPT should generate the splits.
    18  #
    19  # Output variables:
    20  # - my_res_resources_flat
    21  # - my_overlay_resources_flat
    22  # - my_generated_resources_flata
    23  #
    24  ######################################
    25  
    26  # Compile all the resource files.
    27  my_res_resources_flat := \
    28    $(foreach r, $(my_res_resources),\
    29      $(eval o := $(call aapt2-compiled-resource-out-file,$(r),$(my_compiled_res_base_dir)))\
    30      $(eval $(call aapt2-compile-one-resource-file-rule,$(r),$(o)))\
    31      $(o))
    32  
    33  my_overlay_resources_flat := \
    34    $(foreach r, $(my_overlay_resources),\
    35      $(eval o := $(call aapt2-compiled-resource-out-file,$(r),$(my_compiled_res_base_dir)))\
    36      $(eval $(call aapt2-compile-one-resource-file-rule,$(r),$(o)))\
    37      $(o))
    38  
    39  my_resources_flata :=
    40  # Compile generated resources
    41  ifneq ($(my_generated_res_dirs),)
    42  my_generated_resources_flata := $(my_compiled_res_base_dir)/gen_res.flata
    43  $(my_generated_resources_flata): PRIVATE_SOURCE_RES_DIRS := $(my_generated_res_dirs)
    44  $(my_generated_resources_flata) : $(my_generated_res_dirs_deps) $(AAPT2)
    45  	@echo "AAPT2 compile $@ <- $(PRIVATE_SOURCE_RES_DIRS)"
    46  	$(call aapt2-compile-resource-dirs)
    47  
    48  my_resources_flata += $(my_generated_resources_flata)
    49  endif
    50  
    51  # Compile zipped resources
    52  ifneq ($(my_generated_res_zips),)
    53  my_zipped_resources_flata := $(my_compiled_res_base_dir)/zip_res.flata
    54  $(my_zipped_resources_flata): PRIVATE_SOURCE_RES_ZIPS := $(my_generated_res_zips)
    55  $(my_zipped_resources_flata) : $(my_generated_res_zips) $(AAPT2) $(ZIPSYNC)
    56  	@echo "AAPT2 compile $@ <- $(PRIVATE_SOURCE_RES_ZIPS)"
    57  	$(call aapt2-compile-resource-zips)
    58  
    59  my_resources_flata += $(my_zipped_resources_flata)
    60  endif
    61  
    62  # Always set --pseudo-localize, it will be stripped out later for release
    63  # builds that don't want it.
    64  $(my_res_resources_flat) $(my_overlay_resources_flat) $(my_resources_flata): \
    65    PRIVATE_AAPT2_CFLAGS := --pseudo-localize
    66  
    67  my_static_library_resources := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\
    68    $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk)
    69  my_static_library_extra_packages := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\
    70    $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/extra_packages)
    71  my_shared_library_resources := $(foreach l, $(LOCAL_SHARED_ANDROID_LIBRARIES),\
    72    $(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk)
    73  
    74  ifneq ($(my_static_library_resources),)
    75  $(my_res_package): PRIVATE_AAPT_FLAGS += --auto-add-overlay
    76  endif
    77  
    78  ifneq ($(my_apk_split_configs),)
    79  # Join the Split APK paths with their configuration, separated by a ':'.
    80  $(my_res_package): PRIVATE_AAPT_FLAGS += $(addprefix --split ,$(join $(built_apk_splits),$(addprefix :,$(my_apk_split_configs))))
    81  endif
    82  
    83  my_srcjar := $(intermediates.COMMON)/aapt2.srcjar
    84  LOCAL_SRCJARS += $(my_srcjar)
    85  
    86  aapt_extra_packages := $(intermediates.COMMON)/extra_packages
    87  
    88  $(my_res_package): PRIVATE_RES_FLAT := $(my_res_resources_flat)
    89  $(my_res_package): PRIVATE_OVERLAY_FLAT := $(my_static_library_resources) $(my_resources_flata) $(my_overlay_resources_flat)
    90  $(my_res_package): PRIVATE_SHARED_ANDROID_LIBRARIES := $(my_shared_library_resources)
    91  $(my_res_package): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file)
    92  $(my_res_package): PRIVATE_ASSET_DIRS := $(my_asset_dirs)
    93  $(my_res_package): PRIVATE_JAVA_GEN_DIR := $(intermediates.COMMON)/aapt2
    94  $(my_res_package): PRIVATE_SRCJAR := $(my_srcjar)
    95  $(my_res_package): PRIVATE_STATIC_LIBRARY_EXTRA_PACKAGES := $(my_static_library_extra_packages)
    96  $(my_res_package): PRIVATE_AAPT_EXTRA_PACKAGES := $(aapt_extra_packages)
    97  $(my_res_package): .KATI_IMPLICIT_OUTPUTS := $(my_srcjar) $(aapt_extra_packages)
    98  
    99  ifdef R_file_stamp
   100  $(my_res_package): PRIVATE_R_FILE_STAMP := $(R_file_stamp)
   101  $(my_res_package): .KATI_IMPLICIT_OUTPUTS += $(R_file_stamp)
   102  endif
   103  
   104  resource_export_package :=
   105  ifdef LOCAL_EXPORT_PACKAGE_RESOURCES
   106  # Put this module's resources into a PRODUCT-agnositc package that
   107  # other packages can use to build their own PRODUCT-agnostic R.java (etc.)
   108  # files.
   109  resource_export_package := $(intermediates.COMMON)/package-export.apk
   110  $(my_res_package): PRIVATE_RESOURCE_EXPORT_PACKAGE := $(resource_export_package)
   111  $(my_res_package): .KATI_IMPLICIT_OUTPUTS += $(resource_export_package)
   112  endif
   113  
   114  ifdef proguard_options_file
   115  $(my_res_package): .KATI_IMPLICIT_OUTPUTS += $(proguard_options_file)
   116  endif
   117  
   118  $(my_res_package): $(full_android_manifest) $(my_static_library_resources) $(my_shared_library_resources)
   119  $(my_res_package): $(my_full_asset_paths)
   120  $(my_res_package): $(my_res_resources_flat) $(my_overlay_resources_flat) \
   121    $(my_resources_flata) $(my_static_library_resources) $(my_static_library_extra_packages) \
   122    $(AAPT2) $(SOONG_ZIP) $(EXTRACT_JAR_PACKAGES)
   123  	@echo "AAPT2 link $@"
   124  	$(call aapt2-link)
   125  ifdef R_file_stamp
   126  	@rm -f $(PRIVATE_R_FILE_STAMP)
   127  	$(call find-generated-R.java,$(PRIVATE_JAVA_GEN_DIR),$(PRIVATE_R_FILE_STAMP))
   128  endif
   129  ifdef LOCAL_EXPORT_PACKAGE_RESOURCES
   130  	@rm -f $(PRIVATE_RESOURCE_EXPORT_PACKAGE)
   131  
   132  	cp $@ $(PRIVATE_RESOURCE_EXPORT_PACKAGE)
   133  endif
   134  
   135  # Clear inputs only used in this file, so that they're not re-used during the next build
   136  my_res_resources :=
   137  my_overlay_resources :=
   138  my_compiled_res_base_dir :=
   139  my_asset_dirs :=
   140  my_full_asset_paths :=
   141  my_apk_split_configs :=
   142  my_generated_res_dirs :=
   143  my_generated_res_dirs_deps :=
   144  my_generated_res_zips :=