Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions ports/kf6threadweaver/001_fix_lnk2005_windows_static.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
diff --git a/examples/ThumbNailer/CMakeLists.txt b/examples/ThumbNailer/CMakeLists.txt
--- a/examples/ThumbNailer/CMakeLists.txt
+++ b/examples/ThumbNailer/CMakeLists.txt
@@ -20,3 +20,6 @@
${UI_FILES}
)
target_link_libraries(ThreadWeaver_ThumbNailer KF6::ThreadWeaver Qt6::Test Qt6::Widgets)
+if(MSVC AND NOT BUILD_SHARED_LIBS)
+ target_link_options(ThreadWeaver_ThumbNailer PRIVATE /FORCE:MULTIPLE)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is almost certainly unsafe. Can you describe the linker error this is trying to mitigate and why this is acceptable?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my understanding, Qt changed something in some recent version, and the functions in removed_api.cpp, are not inlined in windows static builds, so this causes LNK2005 duplicate symbol errors. I think that's a bug in the qt, I'm trying to see if I can fix it in the qtbase port instead, see #50859.

+endif()
29 changes: 29 additions & 0 deletions ports/kf6threadweaver/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KDE/threadweaver
REF "v${VERSION}"
SHA512 54c93f2100ee313f931e5f6546e9bc2be759a49ca9a53227c77e7bc3fb3bdf194514bbc38860a0b12cff6918f1208a565b4f668785d79a381362a38a2fc9dd01
HEAD_REF master
PATCHES
001_fix_lnk2005_windows_static.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
)

vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF6ThreadWeaver)
vcpkg_copy_pdbs()


file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*")
vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES})
22 changes: 22 additions & 0 deletions ports/kf6threadweaver/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "kf6threadweaver",
"version": "6.23.0",
"description": "KDE Threading library",
"homepage": "https://invent.kde.org/frameworks/threadweaver",
"documentation": "https://api.kde.org/threadweaver-index.html",
"dependencies": [
"ecm",
{
"name": "qtbase",
"default-features": false
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
4 changes: 4 additions & 0 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -4424,6 +4424,10 @@
"baseline": "6.22.0",
"port-version": 0
},
"kf6threadweaver": {
"baseline": "6.23.0",
"port-version": 0
},
"kfr": {
"baseline": "6.3.1",
"port-version": 0
Expand Down
9 changes: 9 additions & 0 deletions versions/k-/kf6threadweaver.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "aee4553128aa064e2bb8648c93514721ad0f2907",
"version": "6.23.0",
"port-version": 0
}
]
}
Loading