diff options
author | Ying Wang <wangying@google.com> | 2012-05-14 14:39:00 -0700 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2012-05-14 14:40:58 -0700 |
commit | 3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8 (patch) | |
tree | 66a0f8ad6c51b0be62ff7c8fdeaff6acd1d8969f /core | |
parent | 67095e005c48c639954d4ada60f391ff4923f0eb (diff) | |
download | build-3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8.zip build-3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8.tar.gz build-3ceecfa3daeb187c0631a84e6ee6b4dd89f111f8.tar.bz2 |
Check the well-formedness of an xml file before copying.
Bug: 6491991
Change-Id: I3dbf9a7e1fefd9fea2636c78a85bae63ea8391b8
Diffstat (limited to 'core')
-rw-r--r-- | core/Makefile | 4 | ||||
-rw-r--r-- | core/definitions.mk | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/core/Makefile b/core/Makefile index 05bc057..5525b2e 100644 --- a/core/Makefile +++ b/core/Makefile @@ -31,7 +31,9 @@ $(foreach cf,$(PRODUCT_COPY_FILES), \ $(if $(filter $(unique_product_copy_files_destinations),$(_dest)), \ $(info PRODUCT_COPY_FILES $(cf) ignored.), \ $(eval _fulldest := $(call append-path,$(PRODUCT_OUT),$(_dest))) \ - $(eval $(call copy-one-file,$(_src),$(_fulldest))) \ + $(if $(filter %.xml,$(_dest)),\ + $(eval $(call copy-xml-file-checked,$(_src),$(_fulldest))),\ + $(eval $(call copy-one-file,$(_src),$(_fulldest)))) \ $(eval ALL_DEFAULT_INSTALLED_MODULES += $(_fulldest)) \ $(eval unique_product_copy_files_destinations += $(_dest)))) unique_product_copy_files_destinations := diff --git a/core/definitions.mk b/core/definitions.mk index f82bfa5..f3e4966 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1707,6 +1707,16 @@ $(2): $(1) | $(ACP) $$(copy-file-to-target) endef +# Copy the file only if it's a well-formed xml file. For use via $(eval). +# $(1): source file +# $(2): destination file, must end with .xml. +define copy-xml-file-checked +$(2): $(1) | $(ACP) + @echo "Copy xml: $$@" + $(hide) xmllint $$< >/dev/null # Don't print the xml file to stdout. + $$(copy-file-to-target) +endef + # The -t option to acp and the -p option to cp is # required for OSX. OSX has a ridiculous restriction # where it's an error for a .a file's modification time |