blob: 5dd97663b821347e35ae585dd3f860350479f745 [file] [log] [blame]
Joe Onorato48bd6f52016-04-06 14:48:30 -07001# Print a list of the modules that could be built
yangbillfa5026c2022-02-08 16:59:21 +08002# Currently runtime_dependencies only include the runtime libs information for cc binaries.
Joe Onorato48bd6f52016-04-06 14:48:30 -07003
4MODULE_INFO_JSON := $(PRODUCT_OUT)/module-info.json
LaMont Jonesedc62e82023-06-02 21:56:24 +00005COMMA := ,
6_SEP := $(COMMA) $(EMPTY)
7_NEWLINE := '\n'
Joe Onorato48bd6f52016-04-06 14:48:30 -07008
9$(MODULE_INFO_JSON):
10 @echo Generating $@
11 $(hide) echo -ne '{\n ' > $@
LaMont Jonesedc62e82023-06-02 21:56:24 +000012 $(hide) echo -ne $(KATI_foreach_sep m,$(COMMA)$(_NEWLINE) , $(sort $(ALL_MODULES)), \
Joe Onorato48bd6f52016-04-06 14:48:30 -070013 ' "$(m)": {' \
LaMont Jonesedc62e82023-06-02 21:56:24 +000014 '"class": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).CLASS)),"$(w)")], ' \
15 '"path": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).PATH)),"$(w)")], ' \
16 '"tags": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TAGS)),"$(w)")], ' \
17 '"installed": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).INSTALLED)),"$(w)")], ' \
18 '"compatibility_suites": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).COMPATIBILITY_SUITES)),"$(w)")], ' \
Dan Shiefb892d2017-12-06 15:57:31 -080019 '"auto_test_config": [$(ALL_MODULES.$(m).auto_test_config)], ' \
LaMont Jonesedc62e82023-06-02 21:56:24 +000020 '"module_name": "$(ALL_MODULES.$(m).MODULE_NAME)"$(COMMA) ' \
21 '"test_config": [$(KATI_foreach_sep w,$(_SEP),$(strip $(ALL_MODULES.$(m).TEST_CONFIG) $(ALL_MODULES.$(m).EXTRA_TEST_CONFIGS)),"$(w)")], ' \
22 '"dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_DEPS.$(m).ALL_DEPS)),"$(w)")], ' \
23 '"shared_libs": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).SHARED_LIBS)),"$(w)")], ' \
24 '"static_libs": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).STATIC_LIBS)),"$(w)")], ' \
25 '"system_shared_libs": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).SYSTEM_SHARED_LIBS)),"$(w)")], ' \
26 '"srcs": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).SRCS)),"$(w)")], ' \
27 '"srcjars": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).SRCJARS)),"$(w)")], ' \
28 '"classes_jar": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).CLASSES_JAR)),"$(w)")], ' \
29 '"test_mainline_modules": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TEST_MAINLINE_MODULES)),"$(w)")], ' \
30 '"is_unit_test": "$(ALL_MODULES.$(m).IS_UNIT_TEST)"$(COMMA) ' \
31 '"test_options_tags": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TEST_OPTIONS_TAGS)),"$(w)")], ' \
32 '"data": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TEST_DATA)),"$(w)")], ' \
33 '"runtime_dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).LOCAL_RUNTIME_LIBRARIES)),"$(w)")], ' \
34 '"static_dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).LOCAL_STATIC_LIBRARIES)),"$(w)")], ' \
35 '"data_dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TEST_DATA_BINS)),"$(w)")], ' \
36 '"supported_variants": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).SUPPORTED_VARIANTS)),"$(w)")], ' \
37 '"host_dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).HOST_REQUIRED_FROM_TARGET)),"$(w)")], ' \
38 '"target_dependencies": [$(KATI_foreach_sep w,$(_SEP),$(sort $(ALL_MODULES.$(m).TARGET_REQUIRED_FROM_HOST)),"$(w)")]' \
39 '}')'\n}\n' >> $@
Joe Onorato48bd6f52016-04-06 14:48:30 -070040
41
Bill Peckham16da01f2021-06-15 19:35:06 -070042droidcore-unbundled: $(MODULE_INFO_JSON)
Joe Onorato48bd6f52016-04-06 14:48:30 -070043
Simran Basi03f52532018-09-06 12:23:11 -070044$(call dist-for-goals, general-tests, $(MODULE_INFO_JSON))
Bill Peckham16da01f2021-06-15 19:35:06 -070045$(call dist-for-goals, droidcore-unbundled, $(MODULE_INFO_JSON))
Cole Faust5d825b72022-10-26 18:16:44 -070046
47# On every build, generate an all_modules.txt file to be used for autocompleting
48# the m command. After timing this using $(shell date +"%s.%3N"), it only adds
49# 0.01 seconds to the internal master build, and will only rerun on builds that
50# rerun kati.
51$(file >$(PRODUCT_OUT)/all_modules.txt,$(subst $(space),$(newline),$(ALL_MODULES)))