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

Commit e706372b authored by Dan Willemsen's avatar Dan Willemsen Committed by Gerrit Code Review
Browse files

Merge "Extend SDK link check to java libraries"

parents 4058a717 62dfb591
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -369,3 +369,42 @@ $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_JACK_SHARED_LIBRARIES:= $(full_shared_ja
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)

endif  # need_compile_java


###########################################################
# Verify that all libraries are safe to use
###########################################################
ifndef LOCAL_IS_HOST_MODULE
my_link_type := $(intermediates.COMMON)/link_type
my_link_type_deps := $(strip \
  $(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES),\
    $(call intermediates-dir-for, \
      JAVA_LIBRARIES,$(lib),,COMMON)/link_type) \
  $(foreach lib,$(apk_libraries), \
    $(call intermediates-dir-for, \
      APPS,$(lib),,COMMON)/link_type))
ifeq ($(LOCAL_SDK_VERSION),system_current)
$(my_link_type): PRIVATE_LINK_TYPE := system
$(my_link_type): PRIVATE_ALLOWED_TYPES := (sdk|system)
else ifneq ($(LOCAL_SDK_VERSION),)
$(my_link_type): PRIVATE_LINK_TYPE := sdk
$(my_link_type): PRIVATE_ALLOWED_TYPES := sdk
else
$(my_link_type): PRIVATE_LINK_TYPE := platform
$(my_link_type): PRIVATE_ALLOWED_TYPES := (sdk|system|platform)
endif
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
$(my_link_type): $(my_link_type_deps)
	@echo Check Java library module types: $@
	$(hide) mkdir -p $(dir $@)
	$(hide) rm -f $@
	$(hide) for f in $(PRIVATE_DEPS); do \
	  grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
	    $(call echo-warning,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); \
	done
	$(hide) echo $(PRIVATE_LINK_TYPE) >$@

$(LOCAL_BUILT_MODULE): $(my_link_type)
endif  # !LOCAL_IS_HOST_MODULE
+14 −0
Original line number Diff line number Diff line
@@ -368,6 +368,20 @@ common_javalib_jar := $(intermediates.COMMON)/javalib.jar

$(common_classes_jar) $(common_javalib_jar): PRIVATE_MODULE := $(LOCAL_MODULE)

my_link_type := $(intermediates.COMMON)/link_type
ifeq ($(LOCAL_SDK_VERSION),system_current)
$(my_link_type): PRIVATE_LINK_TYPE := system
else ifneq ($(LOCAL_SDK_VERSION),)
$(my_link_type): PRIVATE_LINK_TYPE := sdk
else
$(my_link_type): PRIVATE_LINK_TYPE := platform
endif
$(my_link_type):
	@echo Check module type: $@
	$(hide) mkdir -p $(dir $@) && rm -f $@
	$(hide) echo $(PRIVATE_LINK_TYPE) >$@
$(LOCAL_BUILT_MODULE): $(my_link_type)

ifeq ($(prebuilt_module_is_dex_javalib),true)
# For prebuilt shared Java library we don't have classes.jar.
$(common_javalib_jar) : $(my_src_jar) | $(ACP)