From 8a35cc992016b54be2b806d361ecc5cd87d19b33 Mon Sep 17 00:00:00 2001 From: Fire Cube Date: Sat, 21 Jun 2025 21:00:21 +0200 Subject: [PATCH] impl --- CMakeLists.txt | 2 ++ CMakePresets.json | 54 ++++++++++++++++++++++++++++++++++++++++++++++ cmake/FindQt.cmake | 12 +++++++++++ 3 files changed, 68 insertions(+) create mode 100644 cmake/FindQt.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d8fe5f68b..80f326432 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,6 +214,8 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/common/scm_rev.cpp.in" "${CMAKE_ message("end git things, remote: ${GIT_REMOTE_NAME}, branch: ${GIT_BRANCH}") +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/findQt.cmake") + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") find_package(Boost 1.84.0 CONFIG) find_package(FFmpeg 5.1.2 MODULE) diff --git a/CMakePresets.json b/CMakePresets.json index c4d60b04e..454b4e767 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -23,6 +23,24 @@ } } }, + { + "name": "x64-Clang-Debug-Qt", + "displayName": "Clang x64 Debug with Qt", + "generator": "Ninja", + "binaryDir": "${sourceDir}/Build/x64-Clang-Debug-Qt", + "cacheVariables": { + "CMAKE_C_COMPILER": "clang-cl", + "CMAKE_CXX_COMPILER": "clang-cl", + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/Install/x64-Clang-Debug-Qt", + "ENABLE_QT_GUI": "ON" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "intelliSenseMode": "windows-clang-x64" + } + } + }, { "name": "x64-Clang-Release", "displayName": "Clang x64 Release", @@ -40,6 +58,24 @@ } } }, + { + "name": "x64-Clang-Release-Qt", + "displayName": "Clang x64 Release with Qt", + "generator": "Ninja", + "binaryDir": "${sourceDir}/Build/x64-Clang-Release-Qt", + "cacheVariables": { + "CMAKE_C_COMPILER": "clang-cl", + "CMAKE_CXX_COMPILER": "clang-cl", + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/Install/x64-Clang-Release-Qt", + "ENABLE_QT_GUI": "ON" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "intelliSenseMode": "windows-clang-x64" + } + } + }, { "name": "x64-Clang-RelWithDebInfo", "displayName": "Clang x64 RelWithDebInfo", @@ -56,6 +92,24 @@ "intelliSenseMode": "windows-clang-x64" } } + }, + { + "name": "x64-Clang-RelWithDebInfo-Qt", + "displayName": "Clang x64 RelWithDebInfo with Qt", + "generator": "Ninja", + "binaryDir": "${sourceDir}/Build/x64-Clang-RelWithDebInfo-Qt", + "cacheVariables": { + "CMAKE_C_COMPILER": "clang-cl", + "CMAKE_CXX_COMPILER": "clang-cl", + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/Install/x64-Clang-RelWithDebInfo-Qt", + "ENABLE_QT_GUI": "ON" + }, + "vendor": { + "microsoft.com/VisualStudioSettings/CMake/1.0": { + "intelliSenseMode": "windows-clang-x64" + } + } } ] } diff --git a/cmake/FindQt.cmake b/cmake/FindQt.cmake new file mode 100644 index 000000000..bff3b6a51 --- /dev/null +++ b/cmake/FindQt.cmake @@ -0,0 +1,12 @@ +if(WIN32 AND NOT CMAKE_PREFIX_PATH) + file(GLOB QT_KITS LIST_DIRECTORIES true "C:/Qt/*/msvc*") + list(SORT QT_KITS COMPARE NATURAL) + list(REVERSE QT_KITS) + list(GET QT_KITS 0 QT_PREFIX) + if(QT_PREFIX) + set(CMAKE_PREFIX_PATH "${QT_PREFIX}" CACHE PATH "Qt prefix auto‑detected" FORCE) + message(STATUS "Auto-detected Qt prefix: ${QT_PREFIX}") + else() + message(WARNING "findQt.cmake: no Qt‑Directory found in C:/Qt – please set CMAKE_PREFIX_PATH manually") + endif() +endif()