@@ -1,12 +1,17 @@
1−# Creates target for copying and installing qmlfiles
1+# Creates targets for copying and installing qmlfiles and generating the qmltypes file for a plugin
3−# export_qmlfiles(plugin sub_path)
3+# export_qmlplugin(plugin version sub_path [TARGETS target1 [target2 ...]])
5+# TARGETS additional install targets (eg the plugin shared object)
6# Two targets will be created:
7# Two targets will be created:
7# - plugin-qmlfiles - Copies the qml files (*.qml, *.js, qmldir) into the shadow build folder.
8# - plugin-qmlfiles - Copies the qml files (*.qml, *.js, qmldir) into the shadow build folder.
9+# - plugin-qmltypes - Generates the qmltypes file in the shadow build folder.
9−macro(export_qmlfiles PLUGIN PLUGIN_SUBPATH)
12+macro(export_qmlplugin PLUGIN VERSION PLUGIN_SUBPATH)
13+ set(multi_value_keywords TARGETS)
14+ cmake_parse_arguments(qmlplugin "" "" "${multi_value_keywords}" ${ARGN})
11 file(GLOB QMLFILES
16 file(GLOB QMLFILES
@@ -20,32 +25,17 @@ macro(export_qmlfiles PLUGIN PLUGIN_SUBPATH)
20 DEPENDS ${QMLFILES}
25 DEPENDS ${QMLFILES}
23− # install the qmlfiles file.
24− install(FILES ${QMLFILES}
25− DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
27−endmacro(export_qmlfiles)
30−# Creates target for generating the qmltypes file for a plugin and installs plugin files
32−# export_qmlplugin(plugin version sub_path [TARGETS target1 [target2 ...]])
34−# TARGETS additional install targets (eg the plugin shared object)
36−# Two targets will be created:
37−# - plugin-qmltypes - Generates the qmltypes file in the shadow build folder.
39−macro(export_qmlplugin PLUGIN VERSION PLUGIN_SUBPATH)
40− set(multi_value_keywords TARGETS)
41− cmake_parse_arguments(qmlplugin "" "" "${multi_value_keywords}" ${ARGN})
43 # create the plugin.qmltypes file
28 # create the plugin.qmltypes file
44 add_custom_target(${PLUGIN}-qmltypes ALL
29 add_custom_target(${PLUGIN}-qmltypes ALL
45 COMMAND qmlplugindump -notrelocatable ${PLUGIN} ${VERSION} ${CMAKE_BINARY_DIR}/plugins > ${CMAKE_BINARY_DIR}/plugins/${PLUGIN_SUBPATH}/plugin.qmltypes
30 COMMAND qmlplugindump -notrelocatable ${PLUGIN} ${VERSION} ${CMAKE_BINARY_DIR}/plugins > ${CMAKE_BINARY_DIR}/plugins/${PLUGIN_SUBPATH}/plugin.qmltypes
47 add_dependencies(${PLUGIN}-qmltypes ${PLUGIN}-qmlfiles ${qmlplugin_TARGETS})
32 add_dependencies(${PLUGIN}-qmltypes ${PLUGIN}-qmlfiles ${qmlplugin_TARGETS})
34+ # install the qmldir file.
35+ install(FILES ${QMLFILES}
36+ DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
49 # install the qmltypes file.
39 # install the qmltypes file.
50 install(FILES ${CMAKE_BINARY_DIR}/plugins/${PLUGIN_SUBPATH}/plugin.qmltypes
40 install(FILES ${CMAKE_BINARY_DIR}/plugins/${PLUGIN_SUBPATH}/plugin.qmltypes
51 DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
41 DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
@@ -55,4 +45,4 @@ macro(export_qmlplugin PLUGIN VERSION PLUGIN_SUBPATH)
55 install(TARGETS ${qmlplugin_TARGETS}
45 install(TARGETS ${qmlplugin_TARGETS}
56 DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
46 DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/${PLUGIN_SUBPATH}
58−endmacro(export_qmlplugin)
48+endmacro(export_qmlplugin)