Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65ca0eec authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "Revert "Revert "Use sdk variant of Soong modules when LOCAL_SDK_...""

parents 4f5f316a e0c5e443
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1136,6 +1136,18 @@ ifeq ($(LOCAL_USE_VNDK),)
    $(if $(filter $(l),$(VENDOR_PUBLIC_LIBRARIES)),$(l).vendorpublic,$(l)))
endif

###########################################################
## When compiling against the NDK, use SDK variants of Soong libraries
###########################################################

ifneq ($(LOCAL_SDK_VERSION),)
  my_whole_static_libraries := $(call use_soong_sdk_libraries,$(my_whole_static_libraries))
  my_static_libraries := $(call use_soong_sdk_libraries,$(my_static_libraries))
  my_shared_libraries := $(call use_soong_sdk_libraries,$(my_shared_libraries))
  my_system_shared_libraries := $(call use_soong_sdk_libraries,$(my_system_shared_libraries))
  my_header_libraries := $(call use_soong_sdk_libraries,$(my_header_libraries))
endif

##########################################################
## Set up installed module dependency
## We cannot compute the full path of the LOCAL_SHARED_LIBRARIES for
+6 −0
Original line number Diff line number Diff line
@@ -3322,3 +3322,9 @@ $(hide) CLANG_BIN="$(LLVM_PREBUILTS_PATH)" \
  XZ="$(XZ)" \
  $(LIBRARY_IDENTITY_CHECK_SCRIPT) $(SOONG_STRIP_PATH) $(1) $(2)
endef

# Convert Soong libraries that have SDK variant
define use_soong_sdk_libraries
  $(foreach l,$(1),$(if $(filter $(l),$(SOONG_SDK_VARIANT_MODULES)),\
      $(l).sdk,$(l)))
endef
+23 −3
Original line number Diff line number Diff line
@@ -12,9 +12,18 @@
#   my_embedded_prebuilt_jni_libs, prebuilt jni libs embedded in prebuilt apk.
#

my_sdk_variant = $(1)
ifneq (,$(and $(my_embed_jni),$(LOCAL_SDK_VERSION)))
  # Soong produces $(lib).so in $(lib).sdk_intermediates so that the library
  # has the correct name for embedding in an APK.  Append .sdk to the name
  # of the intermediates directory, but not the .so name.
  my_sdk_variant = $(call use_soong_sdk_libraries,$(1))
endif

my_jni_shared_libraries := $(strip \
  $(foreach lib,$(LOCAL_JNI_SHARED_LIBRARIES), \
      $(call intermediates-dir-for,SHARED_LIBRARIES,$(lib),,,$(my_2nd_arch_prefix))/$(lib).so))
    $(call intermediates-dir-for,SHARED_LIBRARIES,$(call my_sdk_variant,$(lib)),,,$(my_2nd_arch_prefix))/$(lib).so))


# App-specific lib path.
my_app_lib_path := $(dir $(LOCAL_INSTALLED_MODULE))lib/$(TARGET_$(my_2nd_arch_prefix)ARCH)
@@ -115,7 +124,18 @@ ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),)
    my_allowed_types := $(my_allowed_ndk_types) native:platform native:product native:vendor native:vndk native:vndk_private native:platform_vndk
  endif

  ifneq (,$(LOCAL_SDK_VERSION))
    ifeq ($(SOONG_ANDROID_MK),$(LOCAL_MODULE_MAKEFILE))
      # SOONG_SDK_VARIANT_MODULES isn't complete yet while parsing Soong modules, and Soong has
      # already ensured that apps link against the correct SDK variants, rewrite all JNI libraries
      # to the SDK variant.
      my_link_deps := $(addprefix SHARED_LIBRARIES:,$(addsuffix .sdk,$(LOCAL_JNI_SHARED_LIBRARIES)))
    else
      my_link_deps := $(addprefix SHARED_LIBRARIES:,$(call use_soong_sdk_libraries,$(LOCAL_JNI_SHARED_LIBRARIES)))
    endif
  else
    my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
  endif

  my_common :=
  include $(BUILD_SYSTEM)/link_type.mk
+4 −0
Original line number Diff line number Diff line
@@ -82,6 +82,10 @@ else
    else ifeq ($(LOCAL_MODULE_CLASS),ETC)
      # ETC modules may be uninstallable, yet still have a NOTICE file. e.g. apex components
      module_installed_filename :=
    else ifneq (,$(and $(filter %.sdk,$(LOCAL_MODULE)),$(filter $(patsubst %.sdk,%,$(LOCAL_MODULE)),$(SOONG_SDK_VARIANT_MODULES))))
      # Soong produces uninstallable *.sdk shared libraries for embedding in APKs.
      module_installed_filename := \
          $(patsubst $(PRODUCT_OUT)/%,%,$($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_SHARED_LIBRARIES))/$(notdir $(LOCAL_BUILT_MODULE))
    else
      $(error Cannot determine where to install NOTICE file for $(LOCAL_MODULE))
    endif # JAVA_LIBRARIES