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

Commit 2e7a67bd authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Linktype check for native:product"

parents 7c42c3f5 4e7e76fe
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -800,24 +800,30 @@ ifdef LOCAL_IS_HOST_MODULE
my_required_modules += $(LOCAL_REQUIRED_MODULES_$($(my_prefix)OS))
endif

###############################################################################
## When compiling against the VNDK, add the .vendor suffix to required modules.
###############################################################################
##########################################################################
## When compiling against the VNDK, add the .vendor or .product suffix to
## required modules.
##########################################################################
ifneq ($(LOCAL_USE_VNDK),)
  ####################################################
  ## Soong modules may be built twice, once for /system
  ## and once for /vendor. If we're using the VNDK,
  ## switch all soong libraries over to the /vendor
  ## variant.
  ####################################################
  #####################################################
  ## Soong modules may be built three times, once for
  ## /system, once for /vendor and once for /product.
  ## If we're using the VNDK, switch all soong
  ## libraries over to the /vendor or /product variant.
  #####################################################
  ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
    # We don't do this renaming for soong-defined modules since they already
    # have correct names (with .vendor suffix when necessary) in their
    # LOCAL_*_LIBRARIES.
    # have correct names (with .vendor or .product suffix when necessary) in
    # their LOCAL_*_LIBRARIES.
    ifeq ($(LOCAL_PRODUCT_MODULE),true)
      my_required_modules := $(foreach l,$(my_required_modules),\
        $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l)))
    else
      my_required_modules := $(foreach l,$(my_required_modules),\
        $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
    endif
  endif
endif

ifdef LOCAL_IS_HOST_MODULE
    ifneq ($(my_host_cross),true)
+36 −16
Original line number Diff line number Diff line
@@ -1145,12 +1145,24 @@ endif
## When compiling against the VNDK, use LL-NDK libraries
###########################################################
ifneq ($(LOCAL_USE_VNDK),)
  ####################################################
  ## Soong modules may be built twice, once for /system
  ## and once for /vendor. If we're using the VNDK,
  ## switch all soong libraries over to the /vendor
  ## variant.
  ####################################################
  #####################################################
  ## Soong modules may be built three times, once for
  ## /system, once for /vendor and once for /product.
  ## If we're using the VNDK, switch all soong
  ## libraries over to the /vendor or /product variant.
  #####################################################
  ifeq ($(LOCAL_PRODUCT_MODULE),true)
    my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\
      $(if $(SPLIT_PRODUCT.STATIC_LIBRARIES.$(l)),$(l).product,$(l)))
    my_static_libraries := $(foreach l,$(my_static_libraries),\
      $(if $(SPLIT_PRODUCT.STATIC_LIBRARIES.$(l)),$(l).product,$(l)))
    my_shared_libraries := $(foreach l,$(my_shared_libraries),\
      $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l)))
    my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\
      $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l)))
    my_header_libraries := $(foreach l,$(my_header_libraries),\
      $(if $(SPLIT_PRODUCT.HEADER_LIBRARIES.$(l)),$(l).product,$(l)))
  else
    my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\
      $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l)))
    my_static_libraries := $(foreach l,$(my_static_libraries),\
@@ -1162,6 +1174,7 @@ ifneq ($(LOCAL_USE_VNDK),)
    my_header_libraries := $(foreach l,$(my_header_libraries),\
      $(if $(SPLIT_VENDOR.HEADER_LIBRARIES.$(l)),$(l).vendor,$(l)))
  endif
endif

# Platform can use vendor public libraries. If a required shared lib is one of
# the vendor public libraries, the lib is switched to the stub version of the lib.
@@ -1207,6 +1220,7 @@ my_warn_types := $(my_warn_ndk_types)
my_allowed_types := $(my_allowed_ndk_types)
else ifdef LOCAL_USE_VNDK
    _name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
    _name := $(patsubst %.product,%,$(LOCAL_MODULE))
    ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
        ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
            my_link_type := native:vndk
@@ -1215,6 +1229,12 @@ else ifdef LOCAL_USE_VNDK
        endif
        my_warn_types :=
        my_allowed_types := native:vndk native:vndk_private
    else ifeq ($(LOCAL_PRODUCT_MODULE),true)
        # Modules installed to /product cannot directly depend on modules marked
        # with vendor_available: false
        my_link_type := native:product
        my_warn_types :=
        my_allowed_types := native:product native:vndk native:platform_vndk
    else
        # Modules installed to /vendor cannot directly depend on modules marked
        # with vendor_available: false
+13 −3
Original line number Diff line number Diff line
@@ -85,15 +85,20 @@ ifdef LOCAL_SDK_VERSION
my_link_type := native:ndk:$(my_ndk_stl_family):$(my_ndk_stl_link_type)
else ifdef LOCAL_USE_VNDK
    _name := $(patsubst %.vendor,%,$(LOCAL_MODULE))
    _name := $(patsubst %.product,%,$(LOCAL_MODULE))
    ifneq ($(filter $(_name),$(VNDK_CORE_LIBRARIES) $(VNDK_SAMEPROCESS_LIBRARIES) $(LLNDK_LIBRARIES)),)
        ifeq ($(filter $(_name),$(VNDK_PRIVATE_LIBRARIES)),)
            my_link_type := native:vndk
        else
            my_link_type := native:vndk_private
        endif
    else
        ifeq ($(LOCAL_PRODUCT_MODULE),true)
            my_link_type := native:product
        else
            my_link_type := native:vendor
        endif
    endif
else ifneq ($(filter $(TARGET_RECOVERY_OUT)/%,$(LOCAL_MODULE_PATH)),)
my_link_type := native:recovery
else
@@ -136,9 +141,14 @@ include $(BUILD_SYSTEM)/cxx_stl_setup.mk

ifdef my_shared_libraries
ifdef LOCAL_USE_VNDK
  ifeq ($(LOCAL_PRODUCT_MODULE),true)
    my_shared_libraries := $(foreach l,$(my_shared_libraries),\
      $(if $(SPLIT_PRODUCT.SHARED_LIBRARIES.$(l)),$(l).product,$(l)))
  else
    my_shared_libraries := $(foreach l,$(my_shared_libraries),\
      $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
  endif
endif
$(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \
  $(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(my_shared_libraries))
endif  # my_shared_libraries
+3 −1
Original line number Diff line number Diff line
@@ -106,11 +106,13 @@ ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),)
    my_allowed_types := $(my_allowed_ndk_types)
    ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
      my_allowed_types += native:vendor native:vndk native:platform_vndk
    else ifeq ($(LOCAL_PRODUCT_MODULE),true)
      my_allowed_types += native:product native:vndk native:platform_vndk
    endif
  else
    my_link_type := app:platform
    my_warn_types := $(my_warn_ndk_types)
    my_allowed_types := $(my_allowed_ndk_types) native:platform native:vendor native:vndk native:vndk_private native:platform_vndk
    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))
+8 −2
Original line number Diff line number Diff line

#Set LOCAL_USE_VNDK for modules going into vendor or odm partition, except for host modules
#Set LOCAL_USE_VNDK for modules going into product, vendor or odm partition, except for host modules
#If LOCAL_SDK_VERSION is set, thats a more restrictive set, so they dont need LOCAL_USE_VNDK
ifndef LOCAL_IS_HOST_MODULE
ifndef LOCAL_SDK_VERSION
  ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
  ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_OEM_MODULE) $(LOCAL_PROPRIETARY_MODULE) $(LOCAL_PRODUCT_MODULE)))
    LOCAL_USE_VNDK:=true
    # Note: no need to check LOCAL_MODULE_PATH* since LOCAL_[VENDOR|ODM|OEM]_MODULE is already
    # set correctly before this is included.
@@ -34,5 +34,11 @@ ifdef LOCAL_USE_VNDK
  ifndef BOARD_VNDK_VERSION
    LOCAL_USE_VNDK:=
  endif

  ifndef PRODUCT_PRODUCT_VNDK_VERSION
    ifneq (,$(filter true,$(LOCAL_PRODUCT_MODULE)))
      LOCAL_USE_VNDK :=
    endif
  endif
endif
Loading