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.