CMake - Qtコマンド
ナビゲーションに移動
検索に移動
概要
Qt6 CoreのCMakeコマンド
Qt6 CoreのCMakeコマンド一覧
下表のCMakeコマンドは、Qt6::Coreが読み込まれた時に定義される。
find_package(Qt6 REQUIRED COMPONENTS Core)
CMakeコマンド | 説明 |
---|---|
qt_add_big_resources | 大きなバイナリリソースをオブジェクトコードにコンパイルする。 |
qt_add_binary_resources | QtリソースファイルのリストからRCCファイルを生成する。 |
qt_add_executable | プラットフォーム固有のタイプのアプリケーションターゲットを生成および確定する。 |
qt_add_library | ライブラリを生成および確定する。 |
qt_add_plugin | Qtプラグインターゲットを生成する。 |
qt_add_resources | バイナリリソースをソースコードにコンパイルする。 |
qt_allow_non_utf8_sources | ソースファイルがWindows用のUTF-8として強制的に扱われるのを防ぐ。 |
qt_android_add_apk_target | androiddeployqtを実行して、APKを生成するビルドターゲットを定義する。 |
qt_android_apply_arch_suffix | ターゲットバイナリの名前にアーキテクチャ固有のサフィックスを含めるように設定する。 |
qt_android_generate_deployment_settings | androiddeployqtが必要とするデプロイ設定ファイルを生成する。 |
qt_deploy_qt_conf | デプロイ時に、qt.confファイルを書き込む。 |
qt_deploy_runtime_dependencies | 実行ファイルに必要なQtプラグイン、Qtライブラリ、非Qtライブラリをデプロイする。 |
qt_deploy_translations | 実行ファイルが必要とするQtの翻訳をデプロイする。 |
qt_disable_unicode_defines | ユニコード関連のコンパイラ定義がターゲット上で自動的に設定されるのを防ぐ。 |
qt_extract_metatypes | Qtターゲットからmetatypesを抽出して、関連するmetatypes.jsonファイルを生成する。 |
qt_finalize_project | Qtプロジェクトに関連するプラットフォーム固有のタスクを処理する。 |
qt_finalize_target | Qtターゲットに関連するプラットフォーム固有のタスクを処理する。 |
qt_generate_deploy_app_script | アプリケーションのデプロイスクリプトを生成する。 |
qt_generate_deploy_script | カスタムデプロイスクリプトを生成する。 |
qt_generate_moc | 入力ファイルに対して、mocを呼び出す。 |
qt_import_plugins | インポートあるいは除外するプラグインのカスタムセットを指定する。 |
qt_policy | QtのCMake APIのデフォルトの振る舞いを変更する。 |
qt_set_finalizer_mode | ターゲットのファイナライズをカスタマイズする。 |
qt_standard_project_setup | プロジェクト全体のデフォルトを標準的な配置に設定する。 |
qt_wrap_cpp | ソースからmocファイルを生成する。 |
qt_add_resources / qt6_add_resources
バイナリリソースをソースコードにコンパイルするコマンドである。
リソースを追加するには、コマンドの第1引数に変数名かターゲットを渡す。
第1引数に変数名を渡すと、qt_add_resourcesコマンドはリソースコンパイラ(rcc)を使用してQtリソースファイルからソースコードを生成する。
生成されたソースファイルへのパスは、<VAR>に追加される。
第1引数としてターゲットを渡すと、関数は指定された<FILES>を含む<RESOURCE_NAME>という名前のリソースを生成する。
リソースは自動的に<TARGET>にリンクされる。
Qtリソースの詳細を知りたい場合は、Qtの公式ドキュメントを参照すること。
# Qt 5
qt_add_resources(<VAR> file1.qrc file2.qrc ...
[OPTIONS ...])
# Qt 6
qt_add_resources(<TARGET> <RESOURCE_NAME>
[PREFIX <PATH>]
[LANG <LANGUAGE>]
[BASE <PATH>]
[BIG_RESOURCES]
[OUTPUT_TARGETS <VARIABLE_NAME>]
[FILES ...] [OPTIONS ...]
)
# Qt 6 (バージョンレスコマンドが無効になっている場合)
qt6_add_resources(<TARGET> <RESOURCE_NAME>
[PREFIX <PATH>]
[LANG <LANGUAGE>]
[BASE <PATH>]
[BIG_RESOURCES]
[OUTPUT_TARGETS <VARIABLE_NAME>]
[FILES ...] [OPTIONS ...]
)
# 使用例
# .qrcファイルを使用した変数を使用する場合
set(SOURCES main.cpp)
qt_add_resources(SOURCES
example.qrc
)
qt_add_executable(<プロジェクト名>
${SOURCES}
)
# 即時リソースを使用してターゲット名を指定する場合
qt_add_executable(<プロジェクト名>
main.cpp
)
qt_add_resources(<プロジェクト名> "images"
PREFIX "/images"
FILES image1.png image2.png
)
- ターゲット名を指定する場合のバリアントの引数
- <PREFIX>
- このリソースの全てのファイルが、C++ソースコードからアクセスできるようにするためのパス接頭辞を指定する。
- これは、.qrcファイル形式のXML属性プレフィックスに対応する。
- <PREFIX>を指定しない場合、ターゲットプロパティQT_RESOURCE_PREFIXが使用される。
- Qt 6.5以降、PREFIXはオプションである。
- もし、PREFIXが省略されて、かつ、QT_RESOURCE_PREFIXで指定しない場合は、"/"がデフォルトのパス接頭辞として使用される。
- <LANG>
- このリソースのロケールを指定する。
- これは、.qrcファイル形式のXML属性langに対応する。
- <BASE>
- ファイルのエイリアスのルートポイントを示すパスプレフィックスである。
- 例えば、<BASE>が"assets"、<FILES>が"assets/images/logo.png"の場合、そのファイルのエイリアスは、"images/logo.png"となる。
- ファイルのエイリアス設定は、<QT_RESOURCE_ALIAS>ソースファイルプロパティで設定する必要がある。
- BIG_RESOURCES
- ビッグリソースのサポートを有効にできる。
- これは、C++ソースコードの代わりにオブジェクト・ファイル (.o .obj) を直接生成する。
- これにより、生成されたC++ソースをコンパイルすることなく、より大きなリソースを埋め込むことができる。
- <BIG_RESOURCES>は、CMakeのXcodeプロジェクトジェネレータの制限によりiOSと互換性が無いことに注意する。
- また、<BIG_RESOURCES>は、CMake 3.17以降でのみ動作する。
- 静的ライブラリでこのコマンドを使用する場合、1つ以上の特別なターゲットが生成される。
- これらのターゲットに対して追加の処理を行う場合は、<OUTPUT_TARGETS>パラメータに変数名を渡す。
- qt_add_resourcesコマンドは、特殊ターゲットの名前を指定された変数に格納する。
- <PREFIX>
qt_disable_unicode_definesコマンド
Qt 6では、Qtモジュールに対してリンクするターゲットに対して、UNICODE
と_UNICODE
コンパイラ定義がデフォルトで有効化されている。
qt_disable_unicode_defines
コマンドを実行することにより、UNICODE
と_UNICODE
コンパイラ定義が自動的に設定されるのを防ぐことができる。
このコマンドは、Qt 6 Coreコンポーネントで定義されている。 (Qt 6.2で導入された)
バージョンレスコマンドが無効の場合は、代わりにqt6_disable_unicode_defines
コマンドを使用する。
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_disable_unicode_defines(myApp)