Loading core/binary.mk +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading core/definitions.mk +6 −0 Original line number Diff line number Diff line Loading @@ -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 core/install_jni_libs_internal.mk +23 −3 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading core/notice_files.mk +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
core/binary.mk +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
core/definitions.mk +6 −0 Original line number Diff line number Diff line Loading @@ -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
core/install_jni_libs_internal.mk +23 −3 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading
core/notice_files.mk +4 −0 Original line number Diff line number Diff line Loading @@ -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