Qtブログ(日本語)

Qt Creator 20 CMakeアップデート

作成者: Qt Group 日本オフィス|May 31, 2026 1:11:27 PM
このブログは「Qt Creator 20 - CMake Update」の抄訳です。

Qt Creator 20 における CMake の変更点をご紹介します。

CMakePresets Kit のリファクタリング

Kit の生成

Qt Creator は Qt Creator 9 から CMakePresets をサポートしていましたが、一つ課題がありました。CMakePresets 用に生成された Kit がグローバルであったため、複数のプロジェクトで CMakePresets を使用するとグローバル Kit が増え続け、ユーザーが手動でクリーンアップする必要がありました。

Qt Creator 20 では、プロジェクト名 : プリセット名 という命名規則を採用することで、CMakePresets Kit を一時的かつプロジェクト固有にし、この問題を解決しています。

コンパイラーと Qt ベンダー拡張

CMake プリセットのコンパイラーは、CMAKE_CXX_COMPILER および CMAKE_C_COMPILER CMake 変数、または CCCXX 環境変数で指定できます。Qt バージョンについては、toolchainFile 変数で qt.toolchain.cmake ファイルを指定するか、CMAKE_PREFIX_PATH または QT_QMAKE_EXECUTABLE CMake 変数を設定する方法があります。

Qt Creator 20 では、vendor/qt.io/QtCreator/1.0 キー配下の qtcompiler/cxxcompiler/c サブキーを使って、これらの変数を直接指定できるようになりました。これは Qt Creator 14debugger が導入された方法と同様です。

なお、Qt、コンパイラー、デバッガーは一時的なものとしてマークされます。

エラー報告

以前は、Kit が Qt バージョンまたはコンパイラーバージョンを見つけられなかった場合、問題を確認するには QT_LOGGING_RULES=qtc.cmake.import*=true を使用するしかありませんでした。

Qt Creator 20 では、障害の詳細を含む問題が表示されるようになりました。

再読み込み

 CMakePresets.json または CMakeUserPresets.json を保存すると、Build > Reload CMake Presets アクションが自動的にトリガーされます。

find_package 依存プロバイダー

Qt のコンポーネントには他の Qt コンポーネントに依存するものがありますが、この依存関係は Qt SDK によって自動的には処理されていませんでした。

例えば、Qt SerialBus は SerialPort に依存しています。

Qt Creator 20 では、find_package(Qt6 COMPONENTS SerialBus) を使用した際に、Qt SerialPort も合わせて提示されるようになりました。