aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/kddockwidgets
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/kddockwidgets')
-rw-r--r--vcpkg/ports/kddockwidgets/dependencies.diff38
-rw-r--r--vcpkg/ports/kddockwidgets/portfile.cmake53
-rw-r--r--vcpkg/ports/kddockwidgets/vcpkg.json27
3 files changed, 118 insertions, 0 deletions
diff --git a/vcpkg/ports/kddockwidgets/dependencies.diff b/vcpkg/ports/kddockwidgets/dependencies.diff
new file mode 100644
index 0000000..2d3ceb4
--- /dev/null
+++ b/vcpkg/ports/kddockwidgets/dependencies.diff
@@ -0,0 +1,38 @@
+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 $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/3rdparty>)
++find_package(KDBindings CONFIG REQUIRED GLOBAL)
++add_library(kdbindings ALIAS KDAB::KDBindings)
diff --git a/vcpkg/ports/kddockwidgets/portfile.cmake b/vcpkg/ports/kddockwidgets/portfile.cmake
new file mode 100644
index 0000000..d0048f4
--- /dev/null
+++ b/vcpkg/ports/kddockwidgets/portfile.cmake
@@ -0,0 +1,53 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO KDAB/KDDockWidgets
+ REF "v${VERSION}"
+ SHA512 7b88f354e2aca4ac4c0f59874b6a7d6baaf77f5b54dd57b981ec7831e40acc0e2f6d3c6300af3d93c594bf34c7072c6a8a19a50c65039ccae22a9e47b90499d8
+ HEAD_REF master
+ PATCHES
+ dependencies.diff
+)
+file(REMOVE_RECURSE
+ "${SOURCE_PATH}/src/3rdparty"
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KD_STATIC)
+
+if(VCPKG_CROSSCOMPILING)
+ list(APPEND _qarg_OPTIONS
+ "-DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}"
+ "-DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share"
+ )
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${_qarg_OPTIONS}
+ -DKDDockWidgets_QT6=ON
+ -DKDDockWidgets_FRONTENDS=qtwidgets
+ -DKDDockWidgets_STATIC=${KD_STATIC}
+ -DKDDockWidgets_PYTHON_BINDINGS=OFF
+ -DKDDockWidgets_TESTS=OFF
+ -DKDDockWidgets_EXAMPLES=OFF
+ # https://github.com/KDAB/KDDockWidgets/blob/v2.1.0/CMakeLists.txt#L301
+ -DCMAKE_DISABLE_FIND_PACKAGE_spdlog=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_fmt=ON
+ -DCMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json=ON
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/KDDockWidgets-qt6" PACKAGE_NAME kddockwidgets-qt6)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST
+ "${SOURCE_PATH}/LICENSE.txt"
+ "${SOURCE_PATH}/LICENSES/GPL-2.0-only.txt"
+ "${SOURCE_PATH}/LICENSES/GPL-3.0-only.txt"
+)
diff --git a/vcpkg/ports/kddockwidgets/vcpkg.json b/vcpkg/ports/kddockwidgets/vcpkg.json
new file mode 100644
index 0000000..70545ca
--- /dev/null
+++ b/vcpkg/ports/kddockwidgets/vcpkg.json
@@ -0,0 +1,27 @@
+{
+ "name": "kddockwidgets",
+ "version": "2.1.0",
+ "port-version": 1,
+ "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",
+ "dependencies": [
+ "kdbindings",
+ "nlohmann-json",
+ {
+ "name": "qtbase",
+ "default-features": false,
+ "features": [
+ "widgets"
+ ]
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}