「CMake - qt add qml moduleコマンド」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == このコマンドはQt 6.2で導入された。<br> <br><br> == QML型とQMLモジュールの登録 == QMLで使用する型を登録するためには、CMakeの<code>qt_add_qml_module</code>コマンドを使用して、QMLモジュールを定義する必要がある。<br> 次に、新しいモジュールにC++ヘッダを追加して、その中でQMLに公開する型を定義する。<br> <br><br> == qt_add_qml_moduleコマンド == qt_add_…」)
 
62行目: 62行目:


== qt_add_qml_moduleコマンドの引数 ==
== qt_add_qml_moduleコマンドの引数 ==
 
==== TARGET (必須) ====
モジュールのターゲット名を指定する。<br>
これはCMakeのターゲットを指定することにより、他のターゲットからリンクすることができる。<br>
<br>
==== URI (必須) ====
モジュールのURIを指定する。<br>
例: "MyCompany.MyModule"<br>
<br>
QMLファイルは、このURIを使用してモジュールをインポートする。<br>
<br>
==== VERSION ====
モジュールのバージョンを指定する。<br>
例: "1.0"<br>
<br>
バージョンを指定しない場合、プロジェクトのバージョンが使用される。<br>
<br>
==== QML_FILES ====
モジュールに含めるQMLファイルのリストを指定する。<br>
指定したファイル群は、自動的にリソースにコンパイルされる。<br>
<br>
==== SOURCES ====
C++ソースファイルのリストを指定する。<br>
指定したソースファイル群は、モジュールのコンパイルに使用される。<br>
<br>
==== HEADERS ====
ヘッダファイルのリストを指定する。<br>
これは、public APIとして扱われるヘッダファイル群を指定する。<br>
<br>
==== RESOURCE_PREFIX ====
リソースのプレフィックスを指定する。<br>
デフォルト値は、"/qt/qml/"である。<br>
<br>
これは、QMLファイルがリソースシステムでアクセスされる時のパスを決定するものである。<br>
<br>
==== OUTPUT_DIRECTORY ====
生成されたファイルの出力ディレクトリを指定する。<br>
未指定の場合は、<code>${CMAKE_CURRENT_BINARY_DIR}</code>が使用される。<br>
<br>
==== IMPORT_PATH ====
インポートパスを追加する。<br>
これは、QMLエンジンがモジュールを検索する場所である。<br>
<br>
==== DEPENDENCIES ====
このモジュールが依存する他のQMLモジュールを指定する。<br>
<br>
==== DESIGNER_SUPPORTED ====
Qt Creatorのデザイナにおいて、このモジュールをサポートするかどうかを指定する。<br>
<br>
==== CLASSNAME ====
モジュールのC++クラス名を指定する。<br>
未指定の場合は、自動生成される。<br>
<br>
==== PLUGIN_TARGET ====
別のターゲットをプラグインとして使用する場合に指定する。<br>
<br>
==== ENABLE_TYPE_COMPILER ====
QMLコンパイラを有効にするかどうかを指定する。<br>
デフォルトは有効である。<br>
<br><br>
<br><br>




__FORCETOC__
__FORCETOC__
[[カテゴリ:Qr]]
[[カテゴリ:Qt]]

2024年6月27日 (木) 03:34時点における版

概要

このコマンドはQt 6.2で導入された。


QML型とQMLモジュールの登録

QMLで使用する型を登録するためには、CMakeのqt_add_qml_moduleコマンドを使用して、QMLモジュールを定義する必要がある。
次に、新しいモジュールにC++ヘッダを追加して、その中でQMLに公開する型を定義する。


qt_add_qml_moduleコマンド

qt_add_qml_moduleコマンドは、C++ソース、.qmlファイル、またはその両方からなるQMLモジュールを定義する。
モジュールの詳細が提供され、それらが一貫していることを保証する。

また、.qmlソースのキャッシュコンパイル、リソースの埋め込み、リンティングチェック、いくつかの重要なモジュールファイルの自動生成等の設定や調整も行う。

バージョンレスコマンドが無効の場合は、代わりにqt6_add_qml_moduleコマンドを使用する必要がある。

 qt_add_qml_module(
    <ターゲット名>
    URI <任意のURI>
    [VERSION <任意のバージョン>]
    [PAST_MAJOR_VERSIONS ...]
    [STATIC | SHARED]
    [PLUGIN_TARGET <プラグインターゲット名>]
    [OUTPUT_DIRECTORY <出力先ディレクトリ>]
    [RESOURCE_PREFIX <リソースプリフィックス>]
    [CLASS_NAME <クラス名>]
    [TYPEINFO <型情報名>]
    [IMPORTS ...]
    [OPTIONAL_IMPORTS ...]
    [DEFAULT_IMPORTS ...]
    [DEPENDENCIES ...]
    [IMPORT_PATH ...]
    [SOURCES ...]
    [QML_FILES ...]
    [RESOURCES ...]
    [OUTPUT_TARGETS out_targets_var]
    [DESIGNER_SUPPORTED]
    [FOLLOW_FOREIGN_VERSIONING]
    [NAMESPACE namespace]
    [NO_PLUGIN]
    [NO_PLUGIN_OPTIONAL]
    [NO_CREATE_PLUGIN_TARGET]
    [NO_GENERATE_PLUGIN_SOURCE]
    [NO_GENERATE_QMLTYPES]
    [NO_GENERATE_QMLDIR]
    [NO_LINT]
    [NO_CACHEGEN]
    [NO_RESOURCE_TARGET_PATH]
    [NO_IMPORT_SCAN]
    [ENABLE_TYPE_COMPILER]
    [TYPE_COMPILER_NAMESPACE namespace]
    [QMLTC_EXPORT_DIRECTIVE export_macro]
    [QMLTC_EXPORT_FILE_NAME header_defining_export_macro]
 )


QMLモジュールを定義した例については、Building a QML applicationBuilding a reusable QML moduleを参照すること。
QMLモジュールに関する情報がQML言語サーバに公開されるようにプロジェクトを設定する方法については、QT_QML_GENERATE_QMLLS_INIを参照すること。


qt_add_qml_moduleコマンドの引数

TARGET (必須)

モジュールのターゲット名を指定する。
これはCMakeのターゲットを指定することにより、他のターゲットからリンクすることができる。

URI (必須)

モジュールのURIを指定する。
例: "MyCompany.MyModule"

QMLファイルは、このURIを使用してモジュールをインポートする。

VERSION

モジュールのバージョンを指定する。
例: "1.0"

バージョンを指定しない場合、プロジェクトのバージョンが使用される。

QML_FILES

モジュールに含めるQMLファイルのリストを指定する。
指定したファイル群は、自動的にリソースにコンパイルされる。

SOURCES

C++ソースファイルのリストを指定する。
指定したソースファイル群は、モジュールのコンパイルに使用される。

HEADERS

ヘッダファイルのリストを指定する。
これは、public APIとして扱われるヘッダファイル群を指定する。

RESOURCE_PREFIX

リソースのプレフィックスを指定する。
デフォルト値は、"/qt/qml/"である。

これは、QMLファイルがリソースシステムでアクセスされる時のパスを決定するものである。

OUTPUT_DIRECTORY

生成されたファイルの出力ディレクトリを指定する。
未指定の場合は、${CMAKE_CURRENT_BINARY_DIR}が使用される。

IMPORT_PATH

インポートパスを追加する。
これは、QMLエンジンがモジュールを検索する場所である。

DEPENDENCIES

このモジュールが依存する他のQMLモジュールを指定する。

DESIGNER_SUPPORTED

Qt Creatorのデザイナにおいて、このモジュールをサポートするかどうかを指定する。

CLASSNAME

モジュールのC++クラス名を指定する。
未指定の場合は、自動生成される。

PLUGIN_TARGET

別のターゲットをプラグインとして使用する場合に指定する。

ENABLE_TYPE_COMPILER

QMLコンパイラを有効にするかどうかを指定する。
デフォルトは有効である。