「Qtの設定 - CMake」の版間の差分

ナビゲーションに移動 検索に移動
335行目: 335行目:
また、Qtプロジェクトによっては、特定のUIファイルのみを処理したい場合がある。<br>
また、Qtプロジェクトによっては、特定のUIファイルのみを処理したい場合がある。<br>
その場合は、この変数<code>CMAKE_AUTOUIC</code>を無効にして手動で制御することも可能である。<br>
その場合は、この変数<code>CMAKE_AUTOUIC</code>を無効にして手動で制御することも可能である。<br>
<br><br>
== set(CMAKE_AUTOMOC ON)コマンド ==
変数<code>CMAKE_AUTOMOC</code>は、CMakeにおいてQt Meta-Object Compiler (MOC) の自動実行を制御するための重要な設定である。<br>
<br>
<u>この変数は、ほとんどのQtプロジェクトで必須の設定である。</u><br>
Qtのメタオブジェクトシステムに必要なメタデータを生成するために、MOCを自動的に実行する。<br>
これにより、開発者はQtの高度な機能 (シグナル / スロット、プロパティシステム等) を簡単に利用できるようになり、同時にビルドプロセスも自動化される。<br>
<br>
この機能はCMake 2.8.6以降で利用可能である。<br>
<br>
* 動作
*: 変数<code>CMAKE_AUTOMOC</code>を有効にする時、CMakeはプロジェクト内のQtクラス (<code>Q_OBJECT</code>マクロを使用しているクラス等) を自動的に検出して、
*: 必要に応じてMOCを実行する。
* 処理対象
** Q_OBJECTマクロを含むヘッダファイル
** シグナルやスロットを使用しているクラス
** プロパティシステムを使用しているクラス
* 利点
** 手動でMOCの実行を設定する必要がなくなり、開発プロセスが簡素化される。
** ソースファイルの変更時に自動的にMOC処理が行われる。
* 生成ファイル
*: moc_*.cppファイルがビルドディレクトリに生成される。
* 関連する変数
** <code>CMAKE_AUTOMOC_MACRO_NAMES</code>
**: 追加のマクロ名を指定して、MOC処理の対象を拡張できる。
** <code>CMAKE_AUTOMOC_PATH_PREFIX</code>
**: 生成されるmocファイルのパスプレフィックスを設定する。
*  パフォーマンスへの影響
*: 大規模プロジェクトでは、ビルド時間が若干増加する可能性がある。
* デバッグ
*: 変数<code>CMAKE_AUTOMOC_VERBOSE</code>を有効にする時、MOC処理の詳細なログが出力され、問題のデバッグに役立つ。
* QtとC++の統合
*: この変数を有効にすることにより、QtのメタオブジェクトシステムとC++のコードがシームレスに統合される。
<br>
また、特定のファイルのみMOCを処理をしたい場合は、変数<code>CMAKE_AUTOMOC</code>を無効にして、<code>qt_wrap_cpp()</code>コマンドを使用して手動で制御できる。<br>
<br>
<u>※注意</u><br>
<u>プリコンパイル済みヘッダ (PCH、GCH等) を使用する場合、追加の設定が必要になることがある。</u><br>
<br><br>
<br><br>


案内メニュー