diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/kf5package | |
Diffstat (limited to 'vcpkg/ports/kf5package')
| -rw-r--r-- | vcpkg/ports/kf5package/fix_duplicate_symbol.patch | 76 | ||||
| -rw-r--r-- | vcpkg/ports/kf5package/portfile.cmake | 36 | ||||
| -rw-r--r-- | vcpkg/ports/kf5package/vcpkg.json | 29 |
3 files changed, 141 insertions, 0 deletions
diff --git a/vcpkg/ports/kf5package/fix_duplicate_symbol.patch b/vcpkg/ports/kf5package/fix_duplicate_symbol.patch new file mode 100644 index 0000000..891ea55 --- /dev/null +++ b/vcpkg/ports/kf5package/fix_duplicate_symbol.patch @@ -0,0 +1,76 @@ +From f922c9e1a353ea82a5c8a87095e46f503c8e9ceb Mon Sep 17 00:00:00 2001 +From: Alexander Lohnau <alexander.lohnau@gmx.de> +Date: Wed, 14 Sep 2022 15:57:22 +0200 +Subject: [PATCH] Fix duplicate symbol in static builds + +BUG: 459099 +--- + src/kpackage/CMakeLists.txt | 9 +++++++-- + src/kpackagetool/CMakeLists.txt | 4 +--- + 2 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/src/kpackage/CMakeLists.txt b/src/kpackage/CMakeLists.txt +index 6880965..be16714 100644 +--- a/src/kpackage/CMakeLists.txt ++++ b/src/kpackage/CMakeLists.txt +@@ -15,8 +15,6 @@ target_sources(KF5Package PRIVATE + packageloader.cpp + private/packages.cpp + private/packagejob.cpp +- private/packagejobthread.cpp +- private/versionparser.cpp + version.cpp + kpackage.qrc + ) +@@ -42,6 +40,9 @@ ecm_generate_export_header(KF5Package + EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} + ) + ++add_library(kpackage_common_STATIC STATIC private/packagejobthread.cpp private/versionparser.cpp) ++target_link_libraries(kpackage_common_STATIC PRIVATE Qt${QT_VERSION_MAJOR}::Core KF5::CoreAddons KF5::Archive KF5::I18n) ++ + target_link_libraries(KF5Package + PUBLIC + KF5::CoreAddons +@@ -49,6 +50,7 @@ PRIVATE + Qt${QT_MAJOR_VERSION}::DBus + KF5::Archive + KF5::I18n ++ kpackage_common_STATIC + ) + + target_include_directories(KF5Package PUBLIC +@@ -90,6 +92,9 @@ install(FILES + + + install(TARGETS KF5Package EXPORT KF5PackageTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) ++if (NOT BUILD_SHARED_LIBS) ++ install(TARGETS kpackage_common_STATIC EXPORT KF5PackageTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) ++endif() + + if(BUILD_QCH) + ecm_add_qch( +diff --git a/src/kpackagetool/CMakeLists.txt b/src/kpackagetool/CMakeLists.txt +index 10d58f8..c6d088a 100644 +--- a/src/kpackagetool/CMakeLists.txt ++++ b/src/kpackagetool/CMakeLists.txt +@@ -6,8 +6,6 @@ ecm_mark_nongui_executable(kpackagetool5) + target_sources(kpackagetool5 PRIVATE + main.cpp + kpackagetool.cpp +- ../kpackage/private/packagejobthread.cpp +- ../kpackage/private/versionparser.cpp + kpackagetool.qrc + ) + ecm_qt_declare_logging_category(kpackagetool5 +@@ -15,6 +13,6 @@ ecm_qt_declare_logging_category(kpackagetool5 + IDENTIFIER KPACKAGE_LOG + CATEGORY_NAME kf.package + ) +-target_link_libraries(kpackagetool5 KF5::Archive KF5::Package KF5::I18n KF5::CoreAddons) ++target_link_libraries(kpackagetool5 kpackage_common_STATIC KF5::Archive KF5::Package KF5::I18n KF5::CoreAddons) + + install(TARGETS kpackagetool5 EXPORT KF5PackageToolsTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) +-- +GitLab + diff --git a/vcpkg/ports/kf5package/portfile.cmake b/vcpkg/ports/kf5package/portfile.cmake new file mode 100644 index 0000000..efe5f7f --- /dev/null +++ b/vcpkg/ports/kf5package/portfile.cmake @@ -0,0 +1,36 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/kpackage + REF v5.98.0 + SHA512 2d82817825b3c5a284bee147abc1f8e9aff9f4730f7f149f95aef7270b7d41a7d6b8184e1f7c42c13c9ad26abbc63ffcd2e4eabef2f6ff734629d39808b5eeea + HEAD_REF master + PATCHES + fix_duplicate_symbol.patch +) + +# Prevent KDEClangFormat from writing to source effectively blocking parallel configure +file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TESTING=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(PACKAGE_NAME KF5Package CONFIG_PATH lib/cmake/KF5Package) +vcpkg_copy_pdbs() + +vcpkg_copy_tools(TOOL_NAMES kpackagetool5 AUTO_CLEAN) + +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") + +file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") +vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) + diff --git a/vcpkg/ports/kf5package/vcpkg.json b/vcpkg/ports/kf5package/vcpkg.json new file mode 100644 index 0000000..44b96b5 --- /dev/null +++ b/vcpkg/ports/kf5package/vcpkg.json @@ -0,0 +1,29 @@ +{ + "name": "kf5package", + "version": "5.98.0", + "description": "Installation and loading of additional content (ex: scripts, images...) as packages", + "homepage": "https://api.kde.org/frameworks/kpackage/html/index.html", + "dependencies": [ + "ecm", + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ] + }, + "kf5archive", + "kf5coreaddons", + "kf5i18n", + "qt5-base", + "qt5-tools", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |