このページでは

QML の CMake 統合

Qt では、QML モジュールやアプリケーションをビルドするための広範な CMake 統合機能を提供しています。

コアとなる CMake コマンド

qt_add_qml_module

qt_add_qml_moduleコマンドは、CMake で QML モジュールを作成するための主要な機能です。QML タイプの登録、リソースの埋め込み、プラグインの作成、Qt のビルドシステムとの統合を行い、QML モジュールのあらゆる側面を宣言的に定義します。

qt_target_qml_sources

qt_target_qml_sourcesコマンドは、既存の QML モジュールのターゲットに QML ファイルやリソースを追加します。これは、大規模なモジュールを整理したり、ビルド設定に基づいて条件付きで QML ファイルを追加したりするのに便利です。

qt_add_qml_plugin

qt_add_qml_pluginコマンドは、QMLエンジンが動的にロードできるQMLプラグインライブラリを作成します。通常、プラグインの作成はqt_add_qml_module が自動的に行いますが、この関数を使うことで、より低レベルな制御が可能になります。

デプロイメントコマンド

qt_deploy_qml_imports

qt_deploy_qml_importsコマンドは、アプリケーションで使用するすべての QML インポートを依存関係も含めて特定し、デプロイします。これにより、必要な QML モジュールやプラグインがアプリケーションに同梱されるようになります。

qt_generate_deploy_qml_app_script

qt_generate_deploy_qml_app_scriptコマンドは、QML モジュールやプラグイン、その他のリソースをアプリケーションバンドルやインストールディレクトリの適切な場所にコピーする、プラットフォーム固有のデプロイスクリプトを生成します。

qt_import_qml_plugins

qt_import_qml_pluginsコマンドは、QML プラグインが静的にビルドされたアプリケーションに正しくリンクされるようにし、プラグインを QML エンジンに登録するために必要な初期化コードを生成します。

高度なコマンド

qt_generate_foreign_qml_types

qt_generate_foreign_qml_typesコマンドは、他のライブラリやモジュールで定義されている C++ 型の QML 型登録を行います。これにより、ソースコードを変更することなく、サードパーティやQtの型 をQMLに公開することができます。

qt_query_qml_module

qt_query_qml_moduleコマンドは QML モジュールの URI、バージョン、プラグインターゲット、 型情報のファイルパスなどの情報を取得します。これはビルドシステムのイントロスペクションやツールの統合に役立ちます。

qt_target_compile_qml_to_cpp

qt_target_compile_qml_to_cppコマンドは、qmltc(QML型コンパイラ)を使ってQMLファイルをC++にコンパイルできるようにします。これにより、静的に既知のQML型に対するパフォーマンスが向上し、コンポーネントベースのインスタンス化に代わる方法が提供されます。

CMake 変数とプロパティ

Qt QML には、QML モジュールの動作を設定するための CMake 変数とプロパティがいくつか用意されています:

グローバル変数

Qt6 Qml の CMake グローバル変数は、プロジェクト内のすべての QML モジュールのデフォルトの動作を制御します。これらの変数には、出力ディレクトリ、キャッシュファイルの生成、ツールの統合などがあり、プロジェクト全体のレベルでQMLのコンパイル設定を行うことができます。

グローバルプロパティ

Qt6 Qml の CMake グローバルプロパティは、ビルドシステムが QML モジュールをどのように処理するかに影響し、リンターゲットの構成やビルド時のコード生成などの側面をカスタマイズするために使用できます。

ソースファイルのプロパティ

Qt6 Qml の CMake ソースファイルプロパティでは、モジュール内の個々の QML ファイルを細かく制御することができます。これらのプロパティを使用して、ファイルをシングルトンとしてマークしたり、コンパイルステップから除外したり、カスタム型名を指定したり、QML型システムにおけるその他のファイルごとの動作を制御したりすることができます。

CMake ポリシー

Qt QML では、後方互換性や動作を制御するためにいくつかの CMake ポリシーを定義しています。

QML の CMake ポリシー

CMake Policies for QMLのページでは、QML 関連の CMake ポリシーの概要と、それらがモジュールの動作にどのような影響を与えるかを説明しています。ポリシーによって、既存のプロジェクトとの互換性を保ちながら、新しい動作にオプトインすることができます。

QML モジュール」、「qt_add_qml_module」、「QML モジュールの記述」も参照してください

© 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.