diff --git a/core/tasks/general-tests.mk b/core/tasks/general-tests.mk index c7f1dc9977..b28f8ef714 100644 --- a/core/tasks/general-tests.mk +++ b/core/tasks/general-tests.mk @@ -14,22 +14,37 @@ .PHONY: general-tests -general-tests-zip := $(PRODUCT_OUT)/general-tests.zip +general_tests_tools := \ + $(HOST_OUT_JAVA_LIBRARIES)/cts-tradefed.jar \ + $(HOST_OUT_JAVA_LIBRARIES)/compatibility-host-util.jar \ + +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 -$(general-tests-zip) : .KATI_IMPLICIT_OUTPUTS := $(general-tests-list-zip) -$(general-tests-zip) : PRIVATE_general_tests_list := $(PRODUCT_OUT)/general-tests_list +general_tests_list_zip := $(PRODUCT_OUT)/general-tests_list.zip +$(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) + rm -rf $(PRIVATE_INTERMEDIATES_DIR) + 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 + cp -fp $(PRIVATE_TOOLS) $(PRIVATE_INTERMEDIATES_DIR)/tools/ + $(SOONG_ZIP) -d -o $@ \ + -P host -C $(PRIVATE_INTERMEDIATES_DIR) -D $(PRIVATE_INTERMEDIATES_DIR)/tools \ + -P host -C $(HOST_OUT) -l $(PRIVATE_INTERMEDIATES_DIR)/host.list \ + -P target -C $(PRODUCT_OUT) -l $(PRIVATE_INTERMEDIATES_DIR)/target.list + grep -e .*.config$$ $(PRIVATE_INTERMEDIATES_DIR)/host.list | sed s%$(HOST_OUT)%host%g > $(PRIVATE_INTERMEDIATES_DIR)/general-tests_list + grep -e .*.config$$ $(PRIVATE_INTERMEDIATES_DIR)/target.list | sed s%$(PRODUCT_OUT)%target%g >> $(PRIVATE_INTERMEDIATES_DIR)/general-tests_list + $(SOONG_ZIP) -d -o $(general_tests_list_zip) -C $(PRIVATE_INTERMEDIATES_DIR) -f $(PRIVATE_INTERMEDIATES_DIR)/general-tests_list -$(general-tests-zip) : $(COMPATIBILITY.general-tests.FILES) $(SOONG_ZIP) - echo $(sort $(COMPATIBILITY.general-tests.FILES)) | tr " " "\n" > $@.list - grep $(HOST_OUT_TESTCASES) $@.list > $@-host.list || true - 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_general_tests_list) - $(hide) grep -e .*.config$$ $@-host.list | sed s%$(HOST_OUT)%host%g > $(PRIVATE_general_tests_list) - $(hide) grep -e .*.config$$ $@-target.list | sed s%$(PRODUCT_OUT)%target%g >> $(PRIVATE_general_tests_list) - $(hide) $(SOONG_ZIP) -d -o $(general-tests-list-zip) -C $(dir $@) -f $(PRIVATE_general_tests_list) - rm -f $@.list $@-host.list $@-target.list $(PRIVATE_general_tests_list) +general-tests: $(general_tests_zip) +$(call dist-for-goals, general-tests, $(general_tests_zip) $(general_tests_list_zip)) -general-tests: $(general-tests-zip) -$(call dist-for-goals, general-tests, $(general-tests-zip) $(general-tests-list-zip)) +intermediates_dir := +general_tests_tools := +general_tests_zip := +general_tests_list_zip :=