CTS Coverage Build Improvements

- Add additional dist goals to copy over the CSS and XSL resources
  to make viewing the report easier.

- Fix CtsApiCoverage to take a path argument for dexdeps since
  the build does not have dexdeps in its path after building.

Change-Id: Ia2b346aa7b3d923a2cce75eb0d92995e4a398eb4
diff --git a/CtsTestCoverage.mk b/CtsTestCoverage.mk
index 459f219..85f13cc 100644
--- a/CtsTestCoverage.mk
+++ b/CtsTestCoverage.mk
@@ -20,28 +20,47 @@
 include cts/CtsTestCaseList.mk
 
 CTS_API_COVERAGE_EXE := $(HOST_OUT_EXECUTABLES)/cts-api-coverage
+DEXDEPS_EXE := $(HOST_OUT_EXECUTABLES)/dexdeps
 
-CTS_API_COVERAGE_DEPENDENCIES := $(CTS_API_COVERAGE_EXE) dexdeps $(ACP)
+COVERAGE_OUT := $(HOST_OUT)/cts/api-coverage
+COVERAGE_RES := cts/tools/cts-api-coverage/res
 
-cts-test-coverage-report := $(HOST_OUT)/cts/test-coverage/api-coverage.xml
+cts-test-coverage-report := $(COVERAGE_OUT)/test-coverage.xml
+cts-verifier-coverage-report := $(COVERAGE_OUT)/verifier-coverage.xml
+api-coverage-css := $(COVERAGE_OUT)/api-coverage.css
+api-coverage-xsl := $(COVERAGE_OUT)/api-coverage.xsl
+
+CTS_API_COVERAGE_DEPENDENCIES := $(CTS_API_COVERAGE_EXE) $(DEXDEPS_EXE) $(ACP) \
+		$(api-coverage-css) $(api-coverage-xsl)
 
 $(cts-test-coverage-report) : $(CTS_COVERAGE_TEST_CASE_LIST) $(CTS_API_COVERAGE_DEPENDENCIES)
 	$(call generate-coverage-report,"CTS Tests API Coverage Report",\
-			$(CTS_COVERAGE_TEST_CASE_LIST),xml,$(HOST_OUT)/cts/test-coverage,api-coverage.xml)
+			$(CTS_COVERAGE_TEST_CASE_LIST),xml,$(HOST_OUT)/cts/api-coverage,test-coverage.xml)
+
+$(cts-verifier-coverage-report) : CtsVerifier $(CTS_API_COVERAGE_DEPENDENCIES)
+	$(call generate-coverage-report,"CTS Verifier API Coverage Report",\
+			CtsVerifier,xml,$(HOST_OUT)/cts/api-coverage,verifier-coverage.xml)
+
+$(api-coverage-css) : $(COVERAGE_RES)/api-coverage.css $(ACP)
+	$(call copy-coverage-resource,api-coverage.css,$(api-coverage-css))
+
+$(api-coverage-xsl) : $(COVERAGE_RES)/api-coverage.xsl $(ACP)
+	$(call copy-coverage-resource,api-coverage.xsl,$(api-coverage-xsl))
 
 .PHONY: cts-test-coverage
 cts-test-coverage : $(cts-test-coverage-report)
 
+.PHONY: cts-verifier-coverage
+cts-verifier-coverage : $(cts-verifier-coverage-report)
+
 # Put the test coverage report in the dist dir if "cts" is among the build goals.
 ifneq ($(filter cts, $(MAKECMDGOALS)),)
   $(call dist-for-goals, cts, $(cts-test-coverage-report):cts-test-coverage-report.xml)
+  $(call dist-for-goals, cts, $(cts-verifier-coverage-report):cts-verifier-coverage-report.xml)
+  $(call dist-for-goals, cts, $(api-coverage-css):api-coverage.css)
+  $(call dist-for-goals, cts, $(api-coverage-xsl):api-coverage.xsl)
 endif
 
-.PHONY: cts-verifier-coverage
-cts-verifier-coverage: CtsVerifier $(CTS_API_COVERAGE_DEPENDENCIES)
-	$(call generate-coverage-report,"CTS Verifier API Coverage Report",\
-			CtsVerifier,xml,$(HOST_OUT)/cts/verifier-coverage,api-coverage.xml)
-
 # Arguments;
 #  1 - Name of the report printed out on the screen
 #  2 - Name of APK packages that will be scanned to generate the report
@@ -49,12 +68,10 @@
 #  4 - Output directory to put the report
 #  5 - Output file name of the report
 define generate-coverage-report
-	$(hide) rm -rf $(4)
 	$(hide) mkdir -p $(4)
-	$(hide) $(ACP) cts/tools/cts-api-coverage/res/* $(4)
 
 	$(foreach testcase,$(2),$(eval $(call add-testcase-apk,$(testcase))))
-	$(hide) $(CTS_API_COVERAGE_EXE) -f $(3) -o $(4)/$(5) $(TEST_APKS)
+	$(hide) $(CTS_API_COVERAGE_EXE) -d $(DEXDEPS_EXE) -f $(3) -o $(4)/$(5) $(TEST_APKS)
 
 	@echo $(1): file://$(ANDROID_BUILD_TOP)/$(4)/$(5)
 endef
@@ -62,3 +79,11 @@
 define add-testcase-apk
 	TEST_APKS += $(call intermediates-dir-for,APPS,$(1))/package.apk
 endef
+
+# Arguments:
+#  1 - Name of the resources to copy like "api-coverage.css" with no path.
+#  2 - Destination file name of the copied resource
+define copy-coverage-resource
+	$(hide) mkdir -p `dirname $(2)`
+	$(hide) $(ACP) $(COVERAGE_RES)/$(1) $(2)
+endef