forked from openkylin/platform_build
Merge "Copy shared libraries used by tests to testcases directory" am: 8b86ca8827
am: 0f4e535493
am: 550340760c
Change-Id: If1eaf53fca029de23eef2e43bb70dd7386735ff2
This commit is contained in:
commit
3e7b6d1c69
|
@ -3007,14 +3007,17 @@ endef
|
|||
# 1. Copy the files to the many suite output directories.
|
||||
# And for test config files, we'll check the .xml is well-formed before copy.
|
||||
# 2. Add all the files to each suite's dependent files list.
|
||||
# 3. Do the dependency addition to my_all_targets
|
||||
# 3. Do the dependency addition to my_all_targets.
|
||||
# 4. Save the module name to COMPATIBILITY.$(suite).MODULES for each suite.
|
||||
# Requires for each suite: use my_compat_dist_config_$(suite) to define the test config.
|
||||
# and use my_compat_dist_$(suite) to define the others.
|
||||
define create-suite-dependencies
|
||||
$(foreach suite, $(LOCAL_COMPATIBILITY_SUITE), \
|
||||
$(eval COMPATIBILITY.$(suite).FILES := \
|
||||
$$(COMPATIBILITY.$(suite).FILES) $$(foreach f,$$(my_compat_dist_$(suite)),$$(call word-colon,2,$$(f))) \
|
||||
$$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f))))) \
|
||||
$$(foreach f,$$(my_compat_dist_config_$(suite)),$$(call word-colon,2,$$(f)))) \
|
||||
$(eval COMPATIBILITY.$(suite).MODULES := \
|
||||
$$(COMPATIBILITY.$(suite).MODULES) $$(my_register_name))) \
|
||||
$(eval $(my_all_targets) : $(call copy-many-files, \
|
||||
$(sort $(foreach suite,$(LOCAL_COMPATIBILITY_SUITE),$(my_compat_dist_$(suite))))) \
|
||||
$(call copy-many-xml-files-checked, \
|
||||
|
|
36
core/main.mk
36
core/main.mk
|
@ -725,11 +725,44 @@ $(foreach m,$($(if $(2),$($(1)2ND_ARCH_VAR_PREFIX))$(1)DEPENDENCIES_ON_SHARED_LI
|
|||
$(eval r := $(filter $($(root))/%,$(call module-installed-files,\
|
||||
$(deps))))\
|
||||
$(if $(filter $(1),HOST_),\
|
||||
$(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARY_FILES) $(word 2,$(p)) $(r))\
|
||||
$(eval ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES := $$(ALL_MODULES.$(mod).HOST_SHARED_LIBRARIES) $(deps))\
|
||||
$(eval $(call add-required-host-so-deps,$(word 2,$(p)),$(r))),\
|
||||
$(eval $(call add-required-deps,$(word 2,$(p)),$(r))))\
|
||||
$(eval ALL_MODULES.$(mod).REQUIRED += $(deps)))
|
||||
endef
|
||||
|
||||
# Recursively resolve host shared library dependency for a given module.
|
||||
# $(1): module name
|
||||
# Returns all dependencies of shared library.
|
||||
define get-all-shared-libs-deps
|
||||
$(if $(_all_deps_for_$(1)_set_),$(_all_deps_for_$(1)_),\
|
||||
$(eval _all_deps_for_$(1)_ :=) \
|
||||
$(foreach dep,$(ALL_MODULES.$(1).HOST_SHARED_LIBRARIES),\
|
||||
$(foreach m,$(call get-all-shared-libs-deps,$(dep)),\
|
||||
$(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(m))\
|
||||
$(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_))))\
|
||||
$(eval _all_deps_for_$(1)_ := $$(_all_deps_for_$(1)_) $(dep))\
|
||||
$(eval _all_deps_for_$(1)_ := $(sort $(_all_deps_for_$(1)_) $(dep)))\
|
||||
$(eval _all_deps_for_$(1)_set_ := true))\
|
||||
$(_all_deps_for_$(1)_))
|
||||
endef
|
||||
|
||||
# Scan all modules in general-tests and device-tests suite and flatten the
|
||||
# shared library dependencies.
|
||||
define update-host-shared-libs-deps-for-suites
|
||||
$(foreach suite,general-tests device-tests,\
|
||||
$(foreach m,$(COMPATIBILITY.$(suite).MODULES),\
|
||||
$(eval my_deps := $(call get-all-shared-libs-deps,$(m)))\
|
||||
$(foreach dep,$(my_deps),\
|
||||
$(foreach f,$(ALL_MODULES.$(dep).HOST_SHARED_LIBRARY_FILES),\
|
||||
$(eval target := $(HOST_OUT_TESTCASES)/$(lastword $(subst /, ,$(dir $(f))))/$(notdir $(f)))\
|
||||
$(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \
|
||||
$$(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES) $(f):$(target))\
|
||||
$(eval COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES := \
|
||||
$(sort $(COMPATIBILITY.$(suite).HOST_SHARED_LIBRARY.FILES)))))))
|
||||
endef
|
||||
|
||||
$(call resolve-shared-libs-depes,TARGET_)
|
||||
ifdef TARGET_2ND_ARCH
|
||||
$(call resolve-shared-libs-depes,TARGET_,true)
|
||||
|
@ -738,6 +771,9 @@ $(call resolve-shared-libs-depes,HOST_)
|
|||
ifdef HOST_2ND_ARCH
|
||||
$(call resolve-shared-libs-depes,HOST_,true)
|
||||
endif
|
||||
# Update host side shared library dependencies for tests in suite device-tests and general-tests.
|
||||
# This should be called after calling resolve-shared-libs-depes for HOST_2ND_ARCH.
|
||||
$(call update-host-shared-libs-deps-for-suites)
|
||||
ifdef HOST_CROSS_OS
|
||||
$(call resolve-shared-libs-depes,HOST_CROSS_,,true)
|
||||
endif
|
||||
|
|
|
@ -18,12 +18,16 @@
|
|||
device-tests-zip := $(PRODUCT_OUT)/device-tests.zip
|
||||
# Create an artifact to include a list of test config files in device-tests.
|
||||
device-tests-list-zip := $(PRODUCT_OUT)/device-tests_list.zip
|
||||
my_host_shared_lib_for_device_tests := $(call copy-many-files,$(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES))
|
||||
$(device-tests-zip) : .KATI_IMPLICIT_OUTPUTS := $(device-tests-list-zip)
|
||||
$(device-tests-zip) : PRIVATE_device_tests_list := $(PRODUCT_OUT)/device-tests_list
|
||||
|
||||
$(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(SOONG_ZIP)
|
||||
$(device-tests-zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_device_tests)
|
||||
$(device-tests-zip) : $(COMPATIBILITY.device-tests.FILES) $(my_host_shared_lib_for_device_tests) $(SOONG_ZIP)
|
||||
echo $(sort $(COMPATIBILITY.device-tests.FILES)) | tr " " "\n" > $@.list
|
||||
grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true
|
||||
$(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \
|
||||
echo $$shared_lib >> $@-host.list; \
|
||||
done
|
||||
grep $(TARGET_OUT_TESTCASES) $@.list > $@-target.list || true
|
||||
$(hide) $(SOONG_ZIP) -d -o $@ -P host -C $(HOST_OUT) -l $@-host.list -P target -C $(PRODUCT_OUT) -l $@-target.list
|
||||
rm -f $(PRIVATE_device_tests_list)
|
||||
|
|
|
@ -22,17 +22,33 @@ intermediates_dir := $(call intermediates-dir-for,PACKAGING,general-tests)
|
|||
general_tests_zip := $(PRODUCT_OUT)/general-tests.zip
|
||||
# Create an artifact to include a list of test config files in general-tests.
|
||||
general_tests_list_zip := $(PRODUCT_OUT)/general-tests_list.zip
|
||||
|
||||
# Filter shared entries between general-tests and device-tests's HOST_SHARED_LIBRARY.FILES,
|
||||
# to avoid warning about overriding commands.
|
||||
my_host_shared_lib_for_general_tests := \
|
||||
$(foreach m,$(filter $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\
|
||||
$(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES)),$(call word-colon,2,$(m)))
|
||||
my_general_tests_shared_lib_files := \
|
||||
$(filter-out $(COMPATIBILITY.device-tests.HOST_SHARED_LIBRARY.FILES),\
|
||||
$(COMPATIBILITY.general-tests.HOST_SHARED_LIBRARY.FILES))
|
||||
|
||||
my_host_shared_lib_for_general_tests += $(call copy-many-files,$(my_general_tests_shared_lib_files))
|
||||
|
||||
$(general_tests_zip) : PRIVATE_general_tests_list_zip := $(general_tests_list_zip)
|
||||
$(general_tests_zip) : .KATI_IMPLICIT_OUTPUTS := $(general_tests_list_zip)
|
||||
$(general_tests_zip) : PRIVATE_TOOLS := $(general_tests_tools)
|
||||
$(general_tests_zip) : PRIVATE_INTERMEDIATES_DIR := $(intermediates_dir)
|
||||
$(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(SOONG_ZIP)
|
||||
$(general_tests_zip) : PRIVATE_HOST_SHARED_LIBS := $(my_host_shared_lib_for_general_tests)
|
||||
$(general_tests_zip) : $(COMPATIBILITY.general-tests.FILES) $(general_tests_tools) $(my_host_shared_lib_for_general_tests) $(SOONG_ZIP)
|
||||
rm -rf $(PRIVATE_INTERMEDIATES_DIR)
|
||||
rm -f $@ $(PRIVATE_general_tests_list_zip)
|
||||
mkdir -p $(PRIVATE_INTERMEDIATES_DIR) $(PRIVATE_INTERMEDIATES_DIR)/tools
|
||||
echo $(sort $(COMPATIBILITY.general-tests.FILES)) | tr " " "\n" > $(PRIVATE_INTERMEDIATES_DIR)/list
|
||||
grep $(HOST_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/host.list || true
|
||||
grep $(TARGET_OUT_TESTCASES) $(PRIVATE_INTERMEDIATES_DIR)/list > $(PRIVATE_INTERMEDIATES_DIR)/target.list || true
|
||||
$(hide) for shared_lib in $(PRIVATE_HOST_SHARED_LIBS); do \
|
||||
echo $$shared_lib >> $(PRIVATE_INTERMEDIATES_DIR)/host.list; \
|
||||
done
|
||||
cp -fp $(PRIVATE_TOOLS) $(PRIVATE_INTERMEDIATES_DIR)/tools/
|
||||
$(SOONG_ZIP) -d -o $@ \
|
||||
-P host -C $(PRIVATE_INTERMEDIATES_DIR) -D $(PRIVATE_INTERMEDIATES_DIR)/tools \
|
||||
|
|
Loading…
Reference in New Issue