Revert "Revert "Use sdk variant of Soong modules when LOCAL_SDK_..."
Revert^2 "Add sdk mutator for native modules" f8e80229fedb47302e9cfd32990859a6308020cf Change-Id: Ib686b52339ae5031434a2fb6a0e7f5b0c0dc5641
This commit is contained in:
parent
79e5a55122
commit
e0c5e44360
|
@ -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
|
||||
|
|
|
@ -3321,3 +3321,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
|
||||
|
|
|
@ -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))
|
||||
$(foreach lib,$(LOCAL_JNI_SHARED_LIBRARIES), \
|
||||
$(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
|
||||
|
||||
my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES))
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue