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

Commit a4ce9b36 authored by Colin Cross's avatar Colin Cross Committed by Android (Google) Code Review
Browse files

Merge changes from topic "sdk_version_variant" into rvc-dev

* changes:
  Don't install test suite files from uninstallable modules
  Use sdk variant of Soong modules when LOCAL_SDK_VERSION is set
parents 4d6f4f6c 17c7264f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -597,6 +597,7 @@ endif
## Compatibility suite files.
###########################################################
ifdef LOCAL_COMPATIBILITY_SUITE
ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))

# If we are building a native test or benchmark and its stem variants are not defined,
# separate the multiple architectures into subdirectories of the testcase folder.
@@ -750,6 +751,7 @@ $(call create-suite-dependencies)
$(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \
  $(eval my_compat_dist_config_$(suite) := ))

endif  # LOCAL_UNINSTALLABLE_MODULE
endif  # LOCAL_COMPATIBILITY_SUITE

###########################################################
+12 −0
Original line number Diff line number Diff line
@@ -1160,6 +1160,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