qt_standard_project_setup
プロジェクト全体のデフォルト設定を標準構成に設定します。
このコマンドは、Qt6 パッケージのCore コンポーネントに定義されており、次のように読み込むことができます:
find_package(Qt6 REQUIRED COMPONENTS Core)このコマンドは Qt 6.3 で導入されました。
概要
qt_standard_project_setup(
[REQUIRES <version>]
[SUPPORTS_UP_TO <version>]
[I18N_TRANSLATED_LANGUAGES <language...>]
[I18N_SOURCE_LANGUAGE <language>]
)バージョン指定なしのコマンドが無効になっている場合は、代わりに `qt6_standard_project_setup() ` を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
このコマンドは、一般的な Qt アプリケーションの設定作業を簡略化します。通常、最初の `find_package(Qt6) ` 呼び出しの直後、一般的には最上位の `CMakeLists.txt ` ファイル内で、かつターゲットが定義される前に呼び出されます。これより後に呼び出した場合、それ以前に定義されたターゲットには適用されず、予期せぬ結果が生じる可能性があります。このコマンドは以下の処理を行います:
- 標準のCMake変数
CMAKE_AUTOMOCおよびCMAKE_AUTOUICが、まだ定義されていない場合はtrueに設定されます。これにより、現在のディレクトリスコープおよびその下位でその後作成されるターゲットに対して、Qt関連のautogen機能がデフォルトで有効になります。 - CMakeのGNUInstallDirsモジュールが自動的に組み込まれます。これにより、
CMAKE_INSTALL_BINDIRやCMAKE_INSTALL_LIBDIRなどの変数に対して適切なデフォルト値が定義されます。 - Windows をターゲットとする場合、
CMAKE_RUNTIME_OUTPUT_DIRECTORY変数がまだ設定されていないと、${CMAKE_CURRENT_BINARY_DIR}に設定されます。 - Apple や Windows 以外のプラットフォームをターゲットとする場合、
CMAKE_INSTALL_RPATHは以下で説明するように拡張されます。 - CMake のUSE_FOLDERSプロパティは
ONに設定され、QT_TARGETS_FOLDER はQtInternalTargetsに設定されます。フォルダをサポートする IDE では、このフォルダ内に Qt 内部のターゲットが表示されます。
Qt 6.5 以降、Qt CMake ポリシーを介して新しい Qt バージョンからの動作変更を有効にすることで、Qt の CMake API のデフォルトの動作を変更することが可能になりました。これは、CMake 独自のポリシー概念(cmake_policy を参照)と類似しています。REQUIRES が指定された場合、REQUIRES までのQtバージョンで導入されたすべてのポリシーは自動的にNEW に設定され、それより古いQtバージョンを使用するとエラーが発生します。 たとえば、REQUIRES 6.8 を指定すると、QTP0001からQTP0005までのポリシーが有効になります。SUPPORTS_UP_TO も指定された場合、そのバージョンまでのポリシーも有効になりますが、その特定のQtバージョンが存在する必要はありません。
利用可能なポリシーは以下の通りです:
':/qt/qml/' は、QML モジュールのデフォルトのリソースプレフィックスです | |
Android 固有のパスを指定するターゲットプロパティには、ジェネレータ式を含めることができます。 | |
Qt ライブラリを作成する際は、BUILD_SHARED_LIBS の値を考慮してください。 | |
QML モジュール内に QML ファイルを含む追加のディレクトリには、追加の qmldir ファイルが必要です | |
qt_add_qml_module() の依存関係キーワードで CMake ターゲットを受け入れるようにする | |
Wayland プロトコルのソース生成において、PRIVATE_CODE をデフォルトとして有効にします。 | |
生成されたデプロイスクリプト内で、引数の値を引用符で囲んだりエスケープしたりする。 | |
デプロイスクリプトの引数を再評価せずに転送します。 |
個々のポリシーを手動で設定する方法の詳細については、qt_policy() を参照してください。
RPATH をサポートするプラットフォーム(Appleプラットフォーム以外)では、このコマンドによってCMAKE_INSTALL_RPATH 変数に2つの値が追加されます。$ORIGIN が追加されることで、ライブラリは自身と同じディレクトリ内にある、依存する他のライブラリを見つけることができます。また、$ORIGIN/<reldir> も追加されます。ここで、<reldir> はCMAKE_INSTALL_BINDIR からCMAKE_INSTALL_LIBDIR への相対パスです。これにより、CMAKE_INSTALL_BINDIR にインストールされた実行ファイルは、CMAKE_INSTALL_LIBDIR にインストールされた依存ライブラリを見つけることができます。CMAKE_INSTALL_RPATH 内の重複は削除されます。実際には、これらの 2 つの値により、実行ファイルとライブラリはリンク時の依存関係を確実に検出できるようになります。ただし、これはプロジェクトが、宛先が明示的に指定されていない場合にinstall(TARGETS)コマンドが使用するデフォルトの場所にそれらをインストールすることを前提としています。
IDE 向けのフォルダサポートを無効にするには、qt_standard_project_setup の呼び出しの前または後に、USE_FOLDERS を OFF に設定してください。
qt_standard_project_setup() コマンドは、QT_NO_STANDARD_PROJECT_SETUP変数を true に設定することで、事実上無効化できます。
国際化
Qt 6.7 以降、I18N_TRANSLATED_LANGUAGES 引数を使用して、プロジェクトの国際化に使用される言語を指定できるようになりました。詳細については、QT_I18N_TRANSLATED_LANGUAGES を参照してください。
I18N_SOURCE_LANGUAGE を使用して、翻訳可能な文字列が記述される言語を指定します。デフォルトでは、en が使用されます。詳細については、QT_I18N_SOURCE_LANGUAGE を参照してください。
例
cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
qt_generate_deploy_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})qt_generate_deploy_app_script()、qt_policy()、およびqt_add_translations()も参照してください 。
© 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.