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/kf5kio | |
Diffstat (limited to 'vcpkg/ports/kf5kio')
| -rw-r--r-- | vcpkg/ports/kf5kio/fix_libiconv.patch | 201 | ||||
| -rw-r--r-- | vcpkg/ports/kf5kio/portfile.cmake | 69 | ||||
| -rw-r--r-- | vcpkg/ports/kf5kio/vcpkg.json | 99 |
3 files changed, 369 insertions, 0 deletions
diff --git a/vcpkg/ports/kf5kio/fix_libiconv.patch b/vcpkg/ports/kf5kio/fix_libiconv.patch new file mode 100644 index 0000000..2aa10a6 --- /dev/null +++ b/vcpkg/ports/kf5kio/fix_libiconv.patch @@ -0,0 +1,201 @@ +diff --git a/src/ioslaves/file/CMakeLists.txt b/src/ioslaves/file/CMakeLists.txt +index fec216af..8595f36e 100644 +--- a/src/ioslaves/file/CMakeLists.txt ++++ b/src/ioslaves/file/CMakeLists.txt +@@ -28,7 +28,9 @@ ecm_qt_export_logging_category( + EXPORT KIO + ) + +-target_link_libraries(kio_file KF5::KIOCore KF5::I18n KF5::ConfigCore Qt${QT_MAJOR_VERSION}::DBus Qt${QT_MAJOR_VERSION}::Network) ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) ++target_link_libraries(kio_file KF5::KIOCore KF5::I18n KF5::ConfigCore Qt${QT_MAJOR_VERSION}::DBus Qt${QT_MAJOR_VERSION}::Network ${Iconv_LIBRARIES}) + + if(UNIX) + target_link_libraries(kio_file Qt${QT_MAJOR_VERSION}::Network KF5::AuthCore) +diff --git a/src/kioworkers/ftp/CMakeLists.txt b/src/kioworkers/ftp/CMakeLists.txt +index 44abb409..61eb3836 100644 +--- a/src/kioworkers/ftp/CMakeLists.txt ++++ b/src/kioworkers/ftp/CMakeLists.txt +@@ -16,4 +16,6 @@ ecm_qt_export_logging_category( + EXPORT KIO + ) + +-target_link_libraries(kio_ftp Qt${QT_MAJOR_VERSION}::Network KF5::KIOCore KF5::I18n KF5::ConfigCore) ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) ++target_link_libraries(kio_ftp Qt${QT_MAJOR_VERSION}::Network KF5::KIOCore KF5::I18n KF5::ConfigCore ${Iconv_LIBRARIES}) +\ No newline at end of file +diff --git a/src/ioslaves/http/CMakeLists.txt b/src/ioslaves/http/CMakeLists.txt +index e616d08b..0631edb6 100644 +--- a/src/ioslaves/http/CMakeLists.txt ++++ b/src/ioslaves/http/CMakeLists.txt +@@ -37,11 +37,15 @@ target_sources(kio_http_cache_cleaner PRIVATE + http_cache_cleaner.cpp + ) + ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) + target_link_libraries(kio_http_cache_cleaner + Qt${QT_MAJOR_VERSION}::DBus + Qt${QT_MAJOR_VERSION}::Network # QLocalSocket + KF5::KIOCore # KProtocolManager +- KF5::I18n) ++ KF5::I18n ++ ${Iconv_LIBRARIES} ++) + + install(TARGETS kio_http_cache_cleaner DESTINATION ${KDE_INSTALL_LIBEXECDIR_KF} ) + +@@ -91,6 +95,7 @@ target_link_libraries(kio_http + KF5::KIONTLM + KF5::Archive + KF5::I18n ++ ${Iconv_LIBRARIES} + ) + if(GSSAPI_FOUND) + target_link_libraries(kio_http PRIVATE ${GSSAPI_LIBS}) +diff --git a/src/ioslaves/http/kcookiejar/CMakeLists.txt b/src/ioslaves/http/kcookiejar/CMakeLists.txt +index 0f770ae4..2600d2d2 100644 +--- a/src/ioslaves/http/kcookiejar/CMakeLists.txt ++++ b/src/ioslaves/http/kcookiejar/CMakeLists.txt +@@ -13,10 +13,13 @@ target_sources(kcookiejar5 PRIVATE + main.cpp + ) + ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) + target_link_libraries( kcookiejar5 + Qt${QT_MAJOR_VERSION}::DBus + KF5::I18n + KF5::WidgetsAddons ++ ${Iconv_LIBRARIES} + ) + + install(TARGETS kcookiejar5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} ) +@@ -55,6 +58,7 @@ target_link_libraries(kded_kcookiejar + KF5::DBusAddons + KF5::I18n + KF5::WidgetsAddons ++ ${Iconv_LIBRARIES} + ) + + ########### install files ############### +diff --git a/src/kioworkers/remote/CMakeLists.txt b/src/kioworkers/remote/CMakeLists.txt +index e2b576e2..526551ee 100644 +--- a/src/kioworkers/remote/CMakeLists.txt ++++ b/src/kioworkers/remote/CMakeLists.txt +@@ -19,4 +19,6 @@ ecm_qt_declare_logging_category(kio_remote + EXPORT KIO + ) + +-target_link_libraries(kio_remote KF5::KIOCore KF5::I18n KF5::ConfigCore Qt${QT_MAJOR_VERSION}::Network) ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) ++target_link_libraries(kio_remote KF5::KIOCore KF5::I18n KF5::ConfigCore Qt${QT_MAJOR_VERSION}::Network ${Iconv_LIBRARIES}) +diff --git a/src/kioworkers/remote/kdedmodule/CMakeLists.txt b/src/kioworkers/remote/kdedmodule/CMakeLists.txt +index 4e40d214..7ba0d911 100644 +--- a/src/kioworkers/remote/kdedmodule/CMakeLists.txt ++++ b/src/kioworkers/remote/kdedmodule/CMakeLists.txt +@@ -1,7 +1,9 @@ + add_library(remotedirnotify MODULE remotedirnotify.cpp remotedirnotifymodule.cpp ../debug.cpp) + kcoreaddons_desktop_to_json(remotedirnotify remotedirnotify.desktop) + +-target_link_libraries(remotedirnotify KF5::DBusAddons KF5::KIOCore) ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) ++target_link_libraries(remotedirnotify KF5::DBusAddons KF5::KIOCore ${Iconv_LIBRARIES}) + # Rename target to allow co-installability with plasma-workspace <= 5.9 + set_target_properties(remotedirnotify PROPERTIES OUTPUT_NAME "remotenotifier") + +diff --git a/src/ioslaves/telnet/CMakeLists.txt b/src/ioslaves/telnet/CMakeLists.txt +index ffee12c8..0b03c211 100644 +--- a/src/ioslaves/telnet/CMakeLists.txt ++++ b/src/ioslaves/telnet/CMakeLists.txt +@@ -2,10 +2,13 @@ + add_executable(ktelnetservice5 ktelnetservice.cpp) + ecm_mark_nongui_executable(ktelnetservice5) + ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) + target_link_libraries(ktelnetservice5 + Qt${QT_MAJOR_VERSION}::Widgets + KF5::I18n + KF5::KIOGui ++ ${Iconv_LIBRARIES} + ) + + install(TARGETS ktelnetservice5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) +diff --git a/src/ioslaves/trash/CMakeLists.txt b/src/ioslaves/trash/CMakeLists.txt +index 147b3f3e..0546b8ce 100644 +--- a/src/ioslaves/trash/CMakeLists.txt ++++ b/src/ioslaves/trash/CMakeLists.txt +@@ -51,6 +51,8 @@ else() + ) + endif() + ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) + target_link_libraries(kio_trash + KF5::ConfigCore + KF5::Solid +@@ -59,6 +61,7 @@ target_link_libraries(kio_trash + Qt${QT_MAJOR_VERSION}::Network + KF5::I18n + KF5::ConfigCore ++ ${Iconv_LIBRARIES} + ) + if(APPLE) + target_link_libraries(kio_trash "-framework DiskArbitration -framework CoreFoundation") +@@ -78,6 +81,7 @@ target_link_libraries(ktrash5 + KF5::KIOCore + KF5::I18n + KF5::ConfigCore ++ ${Iconv_LIBRARIES} + ) + + install(TARGETS ktrash5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) +diff --git a/src/kioexec/CMakeLists.txt b/src/kioexec/CMakeLists.txt +index 92eeafe7..8ae87424 100644 +--- a/src/kioexec/CMakeLists.txt ++++ b/src/kioexec/CMakeLists.txt +@@ -19,7 +19,9 @@ ecm_qt_declare_logging_category(kioexecd + EXPORT KIO + ) + +-target_link_libraries(kioexecd KF5::I18n KF5::DBusAddons KF5::WidgetsAddons KF5::KIOCore) ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) ++target_link_libraries(kioexecd KF5::I18n KF5::DBusAddons KF5::WidgetsAddons KF5::KIOCore ${Iconv_LIBRARIES}) + + kdbusaddons_generate_dbus_service_file(kiod5 org.kde.kioexecd ${KDE_INSTALL_FULL_LIBEXECDIR_KF}) + +@@ -45,6 +47,7 @@ target_link_libraries(kioexec + KF5::WidgetsAddons # KMessageBox + KF5::WindowSystem # KStartupInfo + KF5::DBusAddons # KDBusService ++ ${Iconv_LIBRARIES} + ) + + if (HAVE_X11) +diff --git a/src/kpasswdserver/CMakeLists.txt b/src/kpasswdserver/CMakeLists.txt +index c268e039..c1a562aa 100644 +--- a/src/kpasswdserver/CMakeLists.txt ++++ b/src/kpasswdserver/CMakeLists.txt +@@ -39,6 +39,8 @@ ecm_qt_export_logging_category( + EXPORT KIO + ) + ++find_package(Iconv REQUIRED) ++include_directories(${Iconv_INCLUDE_DIRS}) + target_link_libraries(kiod_kpasswdserver + KF5::DBusAddons # KDED Module + Qt${QT_MAJOR_VERSION}::DBus +@@ -46,6 +48,7 @@ target_link_libraries(kiod_kpasswdserver + KF5::WidgetsAddons # KPasswordDialog + KF5::I18n + KF5::WindowSystem ++ ${Iconv_LIBRARIES} + ${WALLET_LIB} + ) + diff --git a/vcpkg/ports/kf5kio/portfile.cmake b/vcpkg/ports/kf5kio/portfile.cmake new file mode 100644 index 0000000..d34ff93 --- /dev/null +++ b/vcpkg/ports/kf5kio/portfile.cmake @@ -0,0 +1,69 @@ +if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND PATCHES fix_libiconv.patch) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/kio + REF "v${VERSION}" + SHA512 6ffb44963b266f806150bc3ff9a1c3cf13f2fe7b4bda57e27d9bd9b931bfd757d50ee29f4143f6d282a25f675c8024aff16dc2f91e00ec0c7663eb8effdfee30 + HEAD_REF master + PATCHES + ${PATCHES} +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES + "kf5notifications" CMAKE_DISABLE_FIND_PACKAGE_KF5Notifications + "kf5wallet" CMAKE_DISABLE_FIND_PACKAGE_KF5Wallet +) + +# 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 + -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON + -DBUILD_TESTING=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON + -DCMAKE_VERBOSE_MAKEFILE=ON + -DKDE_INSTALL_QTPLUGINDIR=plugins + -DKDE_INSTALL_PLUGINDIR=plugins + -DKDE_INSTALL_LIBEXECDIR=bin + ${FEATURE_OPTIONS} + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_KF5Notifications +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(PACKAGE_NAME KF5KIO CONFIG_PATH lib/cmake/KF5KIO) +vcpkg_copy_pdbs() + +set(LIBEXEC_TOOLS kio_http_cache_cleaner kiod5 kioexec kioslave5) + +if(NOT VCPKG_TARGET_IS_WINDOWS) + if(NOT VCPKG_TARGET_IS_ANDROID) + list(APPEND LIBEXEC_TOOLS kpac_dhcp_helper) + endif() + + list(TRANSFORM LIBEXEC_TOOLS PREPEND "kf5/") +endif() + +vcpkg_copy_tools( + TOOL_NAMES kcookiejar5 ktelnetservice5 ktrash5 protocoltojson ${LIBEXEC_TOOLS} + AUTO_CLEAN +) + +file(APPEND "${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "Data = ../../share") + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") +vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) diff --git a/vcpkg/ports/kf5kio/vcpkg.json b/vcpkg/ports/kf5kio/vcpkg.json new file mode 100644 index 0000000..535690f --- /dev/null +++ b/vcpkg/ports/kf5kio/vcpkg.json @@ -0,0 +1,99 @@ +{ + "name": "kf5kio", + "version": "5.98.0", + "port-version": 1, + "description": "Network transparent access to files and data", + "homepage": "https://api.kde.org/frameworks/kio/html/index.html", + "license": null, + "dependencies": [ + "ecm", + { + "name": "gettext", + "host": true, + "features": [ + "tools" + ] + }, + "kf5archive", + { + "name": "kf5auth", + "platform": "!(windows | android)" + }, + "kf5bookmarks", + "kf5completion", + "kf5config", + "kf5configwidgets", + "kf5coreaddons", + "kf5crash", + { + "name": "kf5dbusaddons", + "platform": "!android" + }, + "kf5guiaddons", + "kf5i18n", + "kf5iconthemes", + "kf5itemviews", + "kf5jobwidgets", + "kf5service", + "kf5solid", + "kf5textwidgets", + "kf5widgetsaddons", + "kf5windowsystem", + "kf5xmlgui", + { + "name": "libiconv", + "platform": "windows & static" + }, + { + "name": "libmount", + "platform": "linux" + }, + { + "name": "qt5-base", + "default-features": false + }, + { + "name": "qt5-macextras", + "platform": "osx" + }, + { + "name": "qt5-x11extras", + "platform": "linux" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "kf5notifications": { + "description": "Required to have error notification support in kpac", + "dependencies": [ + { + "name": "kf5kio", + "default-features": false, + "features": [ + "unixkf5notifications" + ], + "platform": "!(windows | android)" + } + ] + }, + "kf5wallet": { + "description": "Required to have permanent storage of passwords for kpasswdserver", + "dependencies": [ + "kf5wallet" + ] + }, + "unixkf5notifications": { + "description": "Required to have error notification support in kpac (windows only)", + "dependencies": [ + "kf5notifications" + ] + } + } +} |