📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

64行目: 64行目:
==== TARGET (必須) ====
==== TARGET (必須) ====
モジュールのターゲット名を指定する。<br>
モジュールのターゲット名を指定する。<br>
これはCMakeのターゲットを指定することにより、他のターゲットからリンクすることができる。<br>
これはCMakeのターゲット名 (プロジェクト名) を指定することにより、他のターゲットからリンクすることができる。<br>
<br>
ターゲット名は、以下に示すような用途で使用される。<br>
* CMakeのビルドシステム内において、このQMLモジュールを識別するためのユニークな名前として機能する。
* 生成されるC++クラスやファイル名のベースとなる。
* 他のCMakeコマンド (例: <code>target_link_libraries</code>コマンド等) において、このモジュールを参照する際に使用される。
<br>
<syntaxhighlight lang="cmake">
qt_add_qml_module(<CMakeのターゲット名 (プロジェクト名)>
    # ...略
)
</syntaxhighlight>
<br>
<u>※注意</u><br>
<u>TARGETとURIに同じ名前を使用することは非推奨である。</u><br>
<u>これには、いくつかの理由がある。</u><br>
* 名前の衝突
*: 第1引数はCMakeのターゲット名として使用、URIはQMLモジュールの識別子として使用される。
*: 同じ名前を使用する場合、ビルドシステムや実行時に予期しない動作や衝突を引き起こす可能性がある。
* 可読性と保守性
*: 異なる名前を使用することにより、コードの可読性が向上して、他の開発者がプロジェクトを理解しやすくなる。
* 将来の拡張性
*: プロジェクト規模が大きくなるにつれて、CMakeのターゲット名とQMLモジュールを別々に参照する必要が出てくる可能性がある。
*: 最初から異なる名前を使用しておくことにより、後々の変更が容易になる。
* Qtの推奨プラクティス
*: Qtの公式ドキュメントでは、通常、これらの識別子に異なる名前を使用することが示されている。
<br>
<br>
==== URI (必須) ====
==== URI (必須) ====
モジュールのURIを指定する。<br>
URI (Uniform Resource Identifier) は、QMLモジュールのインポート識別子を指定する。<br>
例: "MyCompany.MyModule"<br>
QMLファイルでは、このURIを使用してモジュールをインポートする。<br>
<br>
URIは、以下に示すような目的で使用される。<br>
* QMLファイル内において、このモジュールをインポートする際の識別子となる。
* モジュールの名前空間を定義して、他のモジュールとの衝突を防ぐ。
* ファイルシステム上でのモジュールの配置位置を決定する際のベースとなる。
<br>
<syntaxhighlight lang="cmake">
qt_add_qml_module(<ターゲット名>
    URI MyCompany.MyProduct
    VERSION 1.0
    # ...略
)
</syntaxhighlight>
<br>
この場合、QMLファイル内で以下のようにモジュールをインポートすることができる。<br>
<syntaxhighlight lang="qml">
import MyCompany.MyProduct 1.0
</syntaxhighlight>
<br>
URIは、通常、逆ドメイン表記法 (例: com.mycompany.myproduct) やプロジェクト構造を反映した階層的な名前 (例: MyCompany.MyProduct) を使用する。<br>
これらの引数は異なる目的で使用されるため、通常は異なる名前を付けることが推奨される。<br>
<br>
<br>
QMLファイルは、このURIを使用してモジュールをインポートする。<br>
URIはQMLのコンテキストで使用されるため、適切な名前を付けることにより、プロジェクトの構造が明確になり、保守性が向上する。<br>
<br>
<br>
==== VERSION ====
==== VERSION ====