Merge changes I8f95f3f8,Ic2e384ad into nyc-dev
* changes:
Add generation of a module-info.json file
Remove unused module-info.txt generation.
diff --git a/core/Makefile b/core/Makefile
index 249ef2c..1257e15 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -386,20 +386,6 @@
endif
# -----------------------------------------------------------------
-# module info file
-ifdef CREATE_MODULE_INFO_FILE
- MODULE_INFO_FILE := $(PRODUCT_OUT)/module-info.txt
- $(info Generating $(MODULE_INFO_FILE)...)
- $(shell rm -f $(MODULE_INFO_FILE))
- $(foreach m,$(ALL_MODULES), \
- $(shell echo "NAME=\"$(m)\"" \
- "PATH=\"$(strip $(ALL_MODULES.$(m).PATH))\"" \
- "TAGS=\"$(strip $(filter-out _%,$(ALL_MODULES.$(m).TAGS)))\"" \
- "BUILT=\"$(strip $(ALL_MODULES.$(m).BUILT))\"" \
- "INSTALLED=\"$(strip $(ALL_MODULES.$(m).INSTALLED))\"" >> $(MODULE_INFO_FILE)))
-endif
-
-# -----------------------------------------------------------------
# The dev key is used to sign this package, and as the key required
# for future OTA packages installed by this system. Actual product
diff --git a/core/tasks/module-info.mk b/core/tasks/module-info.mk
new file mode 100644
index 0000000..e9b2ac7
--- /dev/null
+++ b/core/tasks/module-info.mk
@@ -0,0 +1,24 @@
+# Print a list of the modules that could be built
+
+MODULE_INFO_JSON := $(PRODUCT_OUT)/module-info.json
+
+$(MODULE_INFO_JSON):
+ @echo Generating $@
+ $(hide) echo -ne '{\n ' > $@
+ $(hide) echo -ne $(foreach m, $(sort $(ALL_MODULES)), \
+ ' "$(m)": {' \
+ '"class": [$(foreach w,$(sort $(ALL_MODULES.$(m).CLASS)),"$(w)", )], ' \
+ '"path": [$(foreach w,$(sort $(ALL_MODULES.$(m).PATH)),"$(w)", )], ' \
+ '"tags": [$(foreach w,$(sort $(ALL_MODULES.$(m).TAGS)),"$(w)", )], ' \
+ '"installed": [$(foreach w,$(sort $(ALL_MODULES.$(m).INSTALLED)),"$(w)", )], ' \
+ '},\n' \
+ ) | sed -e 's/, *\]/]/g' -e 's/, *\}/ }/g' -e '$$s/,$$//' >> $@
+ $(hide) echo '}' >> $@
+
+
+# If ONE_SHOT_MAKEFILE is set, our view of the world is smaller, so don't
+# rewrite the file in that came.
+ifndef ONE_SHOT_MAKEFILE
+files: $(MODULE_INFO_JSON)
+endif
+