diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-12-17 15:09:23 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-10-04 18:35:29 +0200 |
commit | da284ef10e0ef80776b9fc9b7bb0e6dc8d71ba63 (patch) | |
tree | 8617f85d03841c09a078825bca7ceaf272217f35 /mkspecs/features | |
parent | 64473c9320b8c521e3ea7030aee5c1c8193661b1 (diff) |
Add support for machine-readable JSON output to the MOC
The --output-json parameter will make moc produce a .json file next to
the regular output file. With --collect-json the .json files for a
module can be merged into a single one.
Task-number: QTBUG-68796
Change-Id: I0e8fb802d47bd22da219701a8df947973d4bd7b5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/metatypes.prf | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mkspecs/features/metatypes.prf b/mkspecs/features/metatypes.prf new file mode 100644 index 0000000000..a0a548eeb2 --- /dev/null +++ b/mkspecs/features/metatypes.prf @@ -0,0 +1,34 @@ +qtPrepareTool(MOC_COLLECT_JSON, moc) + +QMAKE_MOC_OPTIONS += --output-json + +moc_json_header.input = HEADERS +moc_json_header.output = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}.json +moc_json_header.CONFIG = no_link moc_verify +moc_json_header.depends = $$MOC_DIR/$${QMAKE_H_MOD_MOC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)} +moc_json_header.commands = $$escape_expand(\\n) # force creation of rule +moc_json_header.variable_out = MOC_JSON_FILES + +moc_json_source.input = SOURCES +moc_json_source.output = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC}.json +moc_json_source.CONFIG = no_link moc_verify +moc_json_source.depends = $$MOC_DIR/$${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_EXT_CPP_MOC} +moc_json_source.commands = $$escape_expand(\\n) # force creation of rule +moc_json_source.variable_out = MOC_JSON_FILES + +MOC_COLLECT_JSON_OUTPUT = $$lower($$basename(TARGET))_metatypes.json + +moc_collect_json.CONFIG += no_link combine +moc_collect_json.commands = $$MOC_COLLECT_JSON --collect-json -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} +moc_collect_json.input = MOC_JSON_FILES +moc_collect_json.output = $$MOC_COLLECT_JSON_OUTPUT +moc_collect_json.name = Collect moc JSON output into central file + +install_metatypes { + do_install.path = $$[QT_INSTALL_LIBS]/metatypes + do_install.files = $$OUT_PWD/$$MOC_COLLECT_JSON_OUTPUT + prefix_build: INSTALLS += do_install + else: COPIES += do_install +} + +QMAKE_EXTRA_COMPILERS += moc_collect_json moc_json_header moc_json_source |