From 0baafbb09b6a3e209bc9a08599b0ff3cf184302b Mon Sep 17 00:00:00 2001 From: Andrew Tribick Date: Tue, 16 Dec 2025 00:09:13 +0100 Subject: [PATCH] [kddockwidgets] Update to 2.4.0, add support for qtquick frontend (#48822) --- ports/kddockwidgets/dependencies.diff | 38 --------------------------- ports/kddockwidgets/portfile.cmake | 20 +++++++++++--- ports/kddockwidgets/vcpkg.json | 36 ++++++++++++++++++------- scripts/ci.feature.baseline.txt | 7 +++-- versions/baseline.json | 4 +-- versions/k-/kddockwidgets.json | 5 ++++ 6 files changed, 54 insertions(+), 56 deletions(-) delete mode 100644 ports/kddockwidgets/dependencies.diff diff --git a/ports/kddockwidgets/dependencies.diff b/ports/kddockwidgets/dependencies.diff deleted file mode 100644 index 2d3ceb4285..0000000000 --- a/ports/kddockwidgets/dependencies.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 02895b0..c36650f 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -566,7 +566,7 @@ endif() - - if(KDDW_FRONTEND_QT) - install( -- TARGETS kddockwidgets kdbindings -+ TARGETS kddockwidgets - EXPORT kddockwidgetsTargets - RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} -diff --git a/src/KDDockWidgetsConfig.cmake.in b/src/KDDockWidgetsConfig.cmake.in -index fbec60a..31d45e5 100644 ---- a/src/KDDockWidgetsConfig.cmake.in -+++ b/src/KDDockWidgetsConfig.cmake.in -@@ -24,5 +24,8 @@ if (NOT WIN32 AND NOT APPLE AND NOT EMSCRIPTEN AND NOT @KDDockWidgets_QT6@ AND @ - find_dependency(Qt5X11Extras REQUIRED) - endif() - -+find_dependency(KDBindings CONFIG) -+find_dependency(nlohmann_json) -+ - # Add the targets file - include("${CMAKE_CURRENT_LIST_DIR}/KDDockWidgets@KDDockWidgets_LIBRARY_QTID@Targets.cmake") -diff --git a/src/kdbindings.cmake b/src/kdbindings.cmake -index c923cd9..da7ad32 100644 ---- a/src/kdbindings.cmake -+++ b/src/kdbindings.cmake -@@ -11,5 +11,5 @@ - # Use a separate target for our kdbindings/signal.h header as it doesn't compile - # with -Wweak-vtables - --add_library(kdbindings INTERFACE) --target_include_directories(kdbindings SYSTEM INTERFACE $) -+find_package(KDBindings CONFIG REQUIRED GLOBAL) -+add_library(kdbindings ALIAS KDAB::KDBindings) diff --git a/ports/kddockwidgets/portfile.cmake b/ports/kddockwidgets/portfile.cmake index d0048f4365..998d93a86e 100644 --- a/ports/kddockwidgets/portfile.cmake +++ b/ports/kddockwidgets/portfile.cmake @@ -1,11 +1,23 @@ +if("qtwidgets" IN_LIST FEATURES) + list(APPEND FRONTEND_LIST "qtwidgets") +endif() + +if("qtquick" IN_LIST FEATURES) + list(APPEND FRONTEND_LIST "qtquick") +endif() + +if(FRONTEND_LIST) + list(JOIN FRONTEND_LIST ";" FRONTENDS) +else() + message(FATAL_ERROR "No front-ends selected for ${PORT}, cannot build package") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDDockWidgets REF "v${VERSION}" - SHA512 7b88f354e2aca4ac4c0f59874b6a7d6baaf77f5b54dd57b981ec7831e40acc0e2f6d3c6300af3d93c594bf34c7072c6a8a19a50c65039ccae22a9e47b90499d8 + SHA512 1e220c5cf608c5bb9242b530eb1e45a15dae462b126c12d253483a1213e72374baa75943d8734c5dc79e34b03b480d1a87cd59cb945996abc0ab20b5d649a5cb HEAD_REF master - PATCHES - dependencies.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty" @@ -25,7 +37,7 @@ vcpkg_cmake_configure( OPTIONS ${_qarg_OPTIONS} -DKDDockWidgets_QT6=ON - -DKDDockWidgets_FRONTENDS=qtwidgets + -DKDDockWidgets_FRONTENDS=${FRONTENDS} -DKDDockWidgets_STATIC=${KD_STATIC} -DKDDockWidgets_PYTHON_BINDINGS=OFF -DKDDockWidgets_TESTS=OFF diff --git a/ports/kddockwidgets/vcpkg.json b/ports/kddockwidgets/vcpkg.json index 70545ca966..edbb75790f 100644 --- a/ports/kddockwidgets/vcpkg.json +++ b/ports/kddockwidgets/vcpkg.json @@ -1,20 +1,13 @@ { "name": "kddockwidgets", - "version": "2.1.0", - "port-version": 1, + "version": "2.4.0", "description": "KDAB's Dock Widget Framework for Qt", "homepage": "https://www.kdab.com/development-resources/qt-tools/kddockwidgets/", "license": "GPL-2.0-only OR GPL-3.0-only", + "supports": "!android & !ios", "dependencies": [ "kdbindings", "nlohmann-json", - { - "name": "qtbase", - "default-features": false, - "features": [ - "widgets" - ] - }, { "name": "vcpkg-cmake", "host": true @@ -23,5 +16,28 @@ "name": "vcpkg-cmake-config", "host": true } - ] + ], + "default-features": [ + "qtwidgets" + ], + "features": { + "qtquick": { + "description": "Build for Qt Quick frontend", + "dependencies": [ + "qtdeclarative" + ] + }, + "qtwidgets": { + "description": "Build for Qt Widgets frontend", + "dependencies": [ + { + "name": "qtbase", + "default-features": false, + "features": [ + "widgets" + ] + } + ] + } + } } diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index 22edcb5dd3..4327e99487 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -615,8 +615,11 @@ jkqtplotter(uwp) = cascade jsonnet:arm64-uwp = cascade jsonnet:arm64-windows = cascade jsonnet:x64-uwp = cascade -kddockwidgets:arm64-uwp = cascade -kddockwidgets:x64-uwp = cascade +kddockwidgets[core] = combination-fails # configure: error: *** No frontend enabled. *** +kddockwidgets[qtquick]:arm64-uwp = cascade +kddockwidgets[qtquick]:x64-uwp = cascade +kddockwidgets[qtwidgets]:arm64-uwp = cascade +kddockwidgets[qtwidgets]:x64-uwp = cascade kealib(uwp) = cascade kenlm:x64-uwp = cascade kf5archive:arm64-uwp = cascade diff --git a/versions/baseline.json b/versions/baseline.json index 040442c372..7183ace9b9 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4189,8 +4189,8 @@ "port-version": 0 }, "kddockwidgets": { - "baseline": "2.1.0", - "port-version": 1 + "baseline": "2.4.0", + "port-version": 0 }, "kdreports": { "baseline": "2.3.0", diff --git a/versions/k-/kddockwidgets.json b/versions/k-/kddockwidgets.json index 89c231e0fa..7353fe0512 100644 --- a/versions/k-/kddockwidgets.json +++ b/versions/k-/kddockwidgets.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "8871fb0aab496fa6d5ab688a834f0ceb869f7133", + "version": "2.4.0", + "port-version": 0 + }, { "git-tree": "c841c3a78eee0afc5376e39977217a497475089a", "version": "2.1.0",