Qt Creator 17 の新しい CMake の変更点については、この投稿で説明しています。
find_package 依存関係プロバイダ
Qt Creator は、パッケージマネージャーの自動設定機能の一部として、find_package() 依存関係プロバイダを実装しています。
この依存関係プロバイダは、必要な Qt コンポーネントのすべての find_package() CMake 呼び出しをチェックします。Qt コンポーネントがインストールされていない場合、Qt Maintenance Tool が起動して、必要なコンポーネントをインストールします。
Qt Multimedia がインストールされていないシステムで Dice サンプルを設定した場合のセットアップを以下に示します。

デフォルトでは、Qt Maintenance Tool は GUI モードで起動されます。
QT_CREATOR_MAINTENANCE_TOOL_PROVIDER_USE_CLIをONに設定すると、Qt Maintenance Tool の CLI モードが使用されます。このモードでは、ユーザーに確認せずにコンポーネントがインストールされます。
Qt CMake コンポーネントのセットアップ
インストールされた Qt コンポーネントの C++ ヘッダーを使用する場合、ビルドシステムの設定が不足しているため利用できない場合、Qt Creator は、ビルドシステムに必要な設定を追加する fix-it を発行します。
Qt Multimedia と CMake の場合、これは次のように相当します。
find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(WidgetsDemo PRIVATE Qt6::Multimedia)

適切なRun deviceを含む CMake プリセットキット
以下の Android CMake プリセットを例に説明します。
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"configurePresets": [
{
"name": "android-clang-arm64",
"displayName": "Android Clang Arm64",
"binaryDir": "${sourceDir}/build-${presetName}",
"generator" : "Ninja",
"cacheVariables": {
"QT_HOST_PATH" : "C:/QtArm64/6.8.3/msvc2022_arm64",
"CMAKE_PREFIX_PATH" : "C:/QtArm64/6.8.3/android_arm64_v8a",
"CMAKE_FIND_ROOT_PATH" : "C:/QtArm64/6.8.3/android_arm64_v8a",
"ANDROID_PLATFORM" : "android-31",
"ANDROID_STL": "c++_shared",
"ANDROID_ABI" : "arm64-v8a",
"ANDROID_SDK_ROOT": "C:/Tools/Android/Sdk",
"ANDROID_NDK" : "C:/Tools/Android/Sdk/ndk/26.1.10909125",
"CMAKE_TOOLCHAIN_FILE": "C:/Tools/Android/Sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake"
}
}
]
}
プロジェクトを構成すると、出来上がるのキットの Run device にAndroidデバイスが選択されます。

QMake プロジェクトとの機能同等の向上
今回は、%{Project:Name} Qt Creator マクロについてです。以前の Qt Creator バージョンでは、プロジェクト名はプロジェクトファイル名の一部ではないため、親プロジェクトディレクトリが %{Project:Name} として設定されていました。すべてのプロジェクトファイルは CMakeLists.txt という名前で、qmake の project.pro とは異なります。
Qt Creator 17では、project() CMake関数呼び出しの後にCMakeLists.txtを解析し、その結果を%{ProjectName}に使用します。
