Tying it all together with CMake
When creating QML modules, CMake provides the infrastructure to properly register QML types, generate necessary metadata, and ensure your module is correctly packaged and deployable. This page outlines the recommended workflow.
Using qt_add_qml_module
The qt_add_qml_module command is the standard and recommended way to create QML modules. It handles all the complex details of QML module creation:
qt_add_qml_module(my_qml_module
URI MyModule
QML_FILES
MyType.qml
AnotherType.qml
SOURCES
mytype.cpp mytype.h
)This single command:
- Creates the module target
- Registers QML types from C++ and QML files
- Generates a qmldir file
- Handles type registration
- Sets up proper import paths
- Enables QML tooling support (qmllint, qmlls, etc.)
Adding Further QML Files
For QML files added after the initial qt_add_qml_module call, use qt_target_qml_sources:
qt_target_qml_sources(my_qml_module
QML_FILES
DynamicallyAddedType.qml
)This can be done based on platform, configuration or other factors.
Detailed CMake Reference
For complete details on all CMake commands, properties, variables, and policies, see CMake Integration for QML.
See also QML Modules and qt_add_qml_module.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.