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

     1  # Decides how to install the jni libraries needed by an apk.
     2  # Input variables:
     3  #   my_module_multilib, LOCAL_2ND_ARCH_VAR_PREFIX (from package.mk or prebuilt.mk)
     4  #   rs_compatibility_jni_libs (from java.mk)
     5  #   my_module_path (from base_rules.mk)
     6  #   partition_tag (from base_rules.mk)
     7  #   my_prebuilt_src_file (from prebuilt_internal.mk)
     8  #
     9  # Output variables:
    10  #   jni_shared_libraries, jni_shared_libraries_abi, jni_shared_libraries_with_abis if we are going to embed the libraries into the apk;
    11  #   embedded_prebuilt_jni_libs, prebuilt jni libs embedded in prebuilt apk.
    12  #
    13  
    14  my_embed_jni :=
    15  ifneq ($(TARGET_BUILD_APPS),)
    16  my_embed_jni := true
    17  endif
    18  ifneq ($(filter tests samples, $(LOCAL_MODULE_TAGS)),)
    19  my_embed_jni := true
    20  endif
    21  ifeq ($(filter $(TARGET_OUT)/% $(TARGET_OUT_VENDOR)/% $(TARGET_OUT_OEM)/%, $(my_module_path)),)
    22  # If this app isn't to be installed to system partitions.
    23  my_embed_jni := true
    24  endif
    25  # If we're installing this APP as a compressed module, we include all JNI libraries
    26  # in the compressed artifact, rather than as separate files on the partition in question.
    27  ifdef LOCAL_COMPRESSED_MODULE
    28  my_embed_jni := true
    29  endif
    30  
    31  jni_shared_libraries :=
    32  jni_shared_libraries_abis :=
    33  # jni_shared_libraries_with_abis is a list of <abi>:<path-to-the-built-jni-lib>
    34  jni_shared_libraries_with_abis :=
    35  embedded_prebuilt_jni_libs :=
    36  
    37  #######################################
    38  # For TARGET_ARCH
    39  my_2nd_arch_prefix :=
    40  my_add_jni :=
    41  # The module is built for TARGET_ARCH
    42  ifeq ($(my_2nd_arch_prefix),$(LOCAL_2ND_ARCH_VAR_PREFIX))
    43  my_add_jni := true
    44  endif
    45  # Or it explicitly requires both
    46  ifeq ($(my_module_multilib),both)
    47  my_add_jni := true
    48  endif
    49  ifeq ($(my_add_jni),true)
    50  my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS_$(TARGET_ARCH))
    51  ifndef my_prebuilt_jni_libs
    52  my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS)
    53  endif
    54  include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
    55  jni_shared_libraries += $(my_jni_shared_libraries)
    56  jni_shared_libraries_abis += $(my_jni_shared_libraries_abi)
    57  jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
    58      $(my_jni_shared_libraries))
    59  embedded_prebuilt_jni_libs += $(my_embedded_prebuilt_jni_libs)
    60  
    61  # Include RS dynamically-generated libraries as well
    62  # TODO: Add multilib support once RS supports generating multilib libraries.
    63  jni_shared_libraries += $(rs_compatibility_jni_libs)
    64  jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
    65      $(rs_compatibility_jni_libs))
    66  endif  # my_add_jni
    67  
    68  #######################################
    69  # For TARGET_2ND_ARCH
    70  ifdef TARGET_2ND_ARCH
    71  my_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
    72  my_add_jni :=
    73  # The module is built for TARGET_2ND_ARCH
    74  ifeq ($(my_2nd_arch_prefix),$(LOCAL_2ND_ARCH_VAR_PREFIX))
    75  my_add_jni := true
    76  endif
    77  # Or it explicitly requires both
    78  ifeq ($(my_module_multilib),both)
    79  my_add_jni := true
    80  endif
    81  ifeq ($(my_add_jni),true)
    82  my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS_$(TARGET_2ND_ARCH))
    83  ifndef my_prebuilt_jni_libs
    84  my_prebuilt_jni_libs := $(LOCAL_PREBUILT_JNI_LIBS)
    85  endif
    86  include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
    87  jni_shared_libraries += $(my_jni_shared_libraries)
    88  jni_shared_libraries_abis += $(my_jni_shared_libraries_abi)
    89  jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
    90      $(my_jni_shared_libraries))
    91  embedded_prebuilt_jni_libs += $(my_embedded_prebuilt_jni_libs)
    92  endif  # my_add_jni
    93  endif  # TARGET_2ND_ARCH
    94  
    95  jni_shared_libraries := $(strip $(jni_shared_libraries))
    96  jni_shared_libraries_abis := $(sort $(jni_shared_libraries_abis))
    97  jni_shared_libraries_with_abis := $(strip $(jni_shared_libraries_with_abis))
    98  embedded_prebuilt_jni_libs := $(strip $(embedded_prebuilt_jni_libs))