From 145ad1e9d53f412b212cd58a7883b45671ca6abf Mon Sep 17 00:00:00 2001 From: Crementif <26669564+Crementif@users.noreply.github.com> Date: Sat, 11 Jul 2026 02:06:12 +0200 Subject: [PATCH] deps: update to wxwidgets 3.3.3 --- .../wxwidgets/fix-listctrl-layout.patch | 40 ----------------- .../wxwidgets/install-layout.patch | 34 +------------- .../wxwidgets/nanosvg-ext-depend.patch | 15 ++++--- .../wxwidgets/portfile.cmake | 44 +++++++------------ .../vcpkg_overlay_ports/wxwidgets/sdl2.patch | 15 ++----- .../vcpkg_overlay_ports/wxwidgets/vcpkg.json | 7 ++- vcpkg.json | 2 +- 7 files changed, 34 insertions(+), 123 deletions(-) delete mode 100644 dependencies/vcpkg_overlay_ports/wxwidgets/fix-listctrl-layout.patch diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/fix-listctrl-layout.patch b/dependencies/vcpkg_overlay_ports/wxwidgets/fix-listctrl-layout.patch deleted file mode 100644 index 4da35fb3..00000000 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/fix-listctrl-layout.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp -index 5e1cd98a8b..169ab7847d 100644 ---- a/src/msw/listctrl.cpp -+++ b/src/msw/listctrl.cpp -@@ -1385,20 +1385,29 @@ bool wxListCtrl::GetSubItemRect(long item, long subItem, wxRect& rect, int code) - - wxCopyRECTToRect(rectWin, rect); - -- // We can't use wxGetListCtrlSubItemRect() for the 0th subitem as 0 means -- // the entire row for this function, so we need to calculate it ourselves. -- if ( subItem == 0 && code == wxLIST_RECT_BOUNDS ) -+ // We can't trust the native LVM_GETSUBITEMRECT for LVIR_BOUNDS because: -+ // - subitem 0 returns the entire row bounds, not just column 0 -+ // - when column 0 is narrower than the icon, the native control clamps -+ // all subitems' left edge to at least the icon width, misaligning them -+ // -+ // So for all subitems we calculate x and width from GetColumnWidth() in -+ // visual (column order) order, which always reflects the real column sizes. -+ if ( subItem != wxLIST_GETSUBITEMRECT_WHOLEITEM && code == wxLIST_RECT_BOUNDS ) - { -- // Because the columns can be reordered, we need to sum the widths of -- // all preceding columns to get the correct x position. -+ // Start from the row's left edge (which accounts for scrolling). -+ RECT rowRect; -+ wxGetListCtrlItemRect(GetHwnd(), item, LVIR_BOUNDS, rowRect); -+ int x = rowRect.left; -+ - for ( auto col : GetColumnsOrder() ) - { - if ( col == subItem ) - break; - -- rect.x += GetColumnWidth(col); -+ x += GetColumnWidth(col); - } - -+ rect.x = x; - rect.width = GetColumnWidth(subItem); - } - diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/install-layout.patch b/dependencies/vcpkg_overlay_ports/wxwidgets/install-layout.patch index 41d5492f..bd90f35b 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/install-layout.patch +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/install-layout.patch @@ -1,10 +1,8 @@ diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake -index 4ed7b264ef..195d776aeb 100644 +index f044d22d4d..a78b9aa1e9 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake -@@ -201,11 +201,11 @@ endif() - wx_get_install_dir(include) - if(WIN32_MSVC_NAMING) +@@ -203,7 +203,7 @@ if(wxBUILD_SHARED) - set(lib_suffix "_dll") + # set(lib_suffix "_dll") @@ -15,31 +13,3 @@ index 4ed7b264ef..195d776aeb 100644 - set(wxPLATFORM_LIB_DIR "${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}${lib_suffix}") + # set(wxPLATFORM_LIB_DIR "${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}${lib_suffix}") set(wxINSTALL_INCLUDE_DIR "${include_dir}") - else() - wx_get_flavour(lib_flavour "-") -diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake -index cbbefdebe9..8f2759d5ad 100644 ---- a/build/cmake/install.cmake -+++ b/build/cmake/install.cmake -@@ -66,7 +66,7 @@ else() - wx_get_install_platform_dir(runtime) - install(DIRECTORY DESTINATION "${runtime_dir}") - install(CODE "execute_process( \ -- COMMAND ${CMAKE_COMMAND} -E create_symlink \ -+ COMMAND ${CMAKE_COMMAND} -E copy \ - \"${CMAKE_INSTALL_PREFIX}/${library_dir}/wx/config/${wxBUILD_FILE_ID}\" \ - \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${runtime_dir}/wx-config\" \ - )" -diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt -index 608351ac42..d8110f9148 100644 ---- a/build/cmake/utils/CMakeLists.txt -+++ b/build/cmake/utils/CMakeLists.txt -@@ -40,7 +40,7 @@ if(wxUSE_XRC) - - # Don't use wx_install() here to preserve escaping. - install(CODE "execute_process( \ -- COMMAND ${CMAKE_COMMAND} -E create_symlink \ -+ COMMAND ${CMAKE_COMMAND} -E copy \ - \"${CMAKE_INSTALL_PREFIX}/${runtime_dir}/${wxrc_output_name}${EXE_SUFFIX}\" \ - \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${runtime_dir}/wxrc${EXE_SUFFIX}\" \ - )" diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/nanosvg-ext-depend.patch b/dependencies/vcpkg_overlay_ports/wxwidgets/nanosvg-ext-depend.patch index 52f3a004..f76a4562 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/nanosvg-ext-depend.patch +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/nanosvg-ext-depend.patch @@ -1,12 +1,13 @@ diff --git a/build/cmake/wxWidgetsConfig.cmake.in b/build/cmake/wxWidgetsConfig.cmake.in -index 2f3a735d92..c134900764 100644 +index b251109..60cf762 100644 --- a/build/cmake/wxWidgetsConfig.cmake.in +++ b/build/cmake/wxWidgetsConfig.cmake.in -@@ -155,6 +155,7 @@ foreach(libname @wxLIB_TARGETS@) - endforeach() +@@ -1,5 +1,8 @@ + @PACKAGE_INIT@ - include(CMakeFindDependencyMacro) ++include(CMakeFindDependencyMacro) +find_dependency(NanoSVG CONFIG) - - if(TARGET wx::wxnet AND @wxUSE_WEBREQUEST_CURL@) - # make sure CURL targets are available: ++ + cmake_policy(PUSH) + # Set policies to prevent warnings + if(POLICY CMP0057) diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake b/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake index a0c801df..d9d74576 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake @@ -2,7 +2,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wxWidgets/wxWidgets REF "v${VERSION}" - SHA512 c47460c8bc150445e7774a287a79bd70b6d96b91ea46b51f238a317f068e466d570c5a94e2204d112e42da781a5cef98236718efff4b7f539d61a12ceaf65eb7 + SHA512 c497d6642d6f9fb7f190ab725e3c5ee0e67e96c883eebbe2d7fa7e0b3dec9847871010e53e23c5d46b9158b8a045f162592d0c25f524daedeaca8c1caa555a5a HEAD_REF master PATCHES install-layout.patch @@ -12,15 +12,14 @@ vcpkg_from_github( fix-pcre2.patch gtk3-link-libraries.patch sdl2.patch - fix-listctrl-layout.patch ) # Submodule dependencies vcpkg_from_github( OUT_SOURCE_PATH lexilla_SOURCE_PATH REPO wxWidgets/lexilla - REF "0dbce0b418b8b3d2ef30304d0bf53ff58c07ed84" - SHA512 61f7b0217f4518121ecad32f015b53600e565bdd499d4020468cf6c8a533d516c6881115aa5e640afca5ea428535f47680cde426fa3dbabe9e4423b4526853fd + REF "bf6ad20062b98808ffa21419263942a427c150a9" + SHA512 08360fcd29e6c021857928375509ea48b9c8a02407bcb3c01865f57734c449fc6ff24afbe011f218b7145116e1805f8c9b4a2e3ec26f4a6298dca9453f610887 HEAD_REF wx ) file(COPY "${lexilla_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/stc/lexilla") @@ -41,9 +40,13 @@ vcpkg_check_features( secretstore wxUSE_SECRETSTORE sound wxUSE_SOUND webview wxUSE_WEBVIEW - webview wxUSE_WEBVIEW_EDGE ) +# Only use wxUSE_WEBVIEW_EDGE on Windows (webview2) +if(VCPKG_TARGET_IS_WINDOWS AND "webview" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS "-DwxUSE_WEBVIEW_EDGE=ON") +endif() + set(OPTIONS_RELEASE "") if(NOT "debug-support" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE "-DwxBUILD_DEBUG_LEVEL=0") @@ -70,8 +73,8 @@ if(VCPKG_TARGET_IS_WINDOWS) endif() endif() -if("webview" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") - list(APPEND OPTIONS -DwxUSE_WEBVIEW_EDGE_STATIC=ON) +if(VCPKG_TARGET_IS_WINDOWS AND "webview" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND OPTIONS -DwxUSE_WEBVIEW_EDGE_STATIC=ON) endif() vcpkg_find_acquire_program(PKGCONFIG) @@ -94,6 +97,7 @@ vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} + -DwxBUILD_INSTALL_USE_SYMLINK=OFF -DwxUSE_REGEX=sys -DwxUSE_ZLIB=sys -DwxUSE_EXPAT=sys @@ -219,30 +223,12 @@ endif() if("example" IN_LIST FEATURES) file(INSTALL - "${CMAKE_CURRENT_LIST_DIR}/minimal_example/CMakeLists.txt" - "${SOURCE_PATH}/samples/minimal/minimal.cpp" - "${SOURCE_PATH}/samples/sample.xpm" - "${SOURCE_PATH}/samples/sample.rc" - DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/minimal_example" - ) - - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/minimal_example/minimal.cpp" "../sample.xpm" "sample.xpm") -endif() - -if("example" IN_LIST FEATURES) - file(INSTALL - "${CMAKE_CURRENT_LIST_DIR}/listctrl_example/CMakeLists.txt" - "${SOURCE_PATH}/samples/listctrl/listtest.cpp" - "${SOURCE_PATH}/samples/listctrl/listtest.h" - "${SOURCE_PATH}/samples/listctrl/listtest.rc" + "${CMAKE_CURRENT_LIST_DIR}/example/CMakeLists.txt" + "${SOURCE_PATH}/samples/popup/popup.cpp" "${SOURCE_PATH}/samples/sample.xpm" - "${SOURCE_PATH}/samples/sample.rc" - "${SOURCE_PATH}/samples/listctrl/bitmaps" - DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/listctrl_example" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/example" ) - - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/listctrl_example/listtest.cpp" "../sample.xpm" "sample.xpm") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/listctrl_example/listtest.rc" "../sample.rc" "sample.rc") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/example/popup.cpp" "../sample.xpm" "sample.xpm") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/sdl2.patch b/dependencies/vcpkg_overlay_ports/wxwidgets/sdl2.patch index cd6fa8d0..b66bef77 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/sdl2.patch +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/sdl2.patch @@ -1,29 +1,20 @@ diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake -index 4ed7b264ef..9abf7c9d5d 100644 +index 5447d33..f5440b4 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake -@@ -667,7 +667,9 @@ if(wxUSE_GUI) - endif() - +@@ -693,3 +693,5 @@ if(wxUSE_SOUND AND wxUSE_LIBSDL AND UNIX AND NOT APPLE) - find_package(SDL2) + find_package(SDL2 CONFIG REQUIRED) + set(SDL2_INCLUDE_DIR "" CACHE INTERNAL "") + set(SDL2_LIBRARY SDL2::SDL2 CACHE INTERNAL "") if(NOT SDL2_FOUND) - find_package(SDL) - mark_as_advanced(SDL_INCLUDE_DIR SDLMAIN_LIBRARY) diff --git a/build/cmake/wxWidgetsConfig.cmake.in b/build/cmake/wxWidgetsConfig.cmake.in -index c134900764..7bcb691074 100644 --- a/build/cmake/wxWidgetsConfig.cmake.in +++ b/build/cmake/wxWidgetsConfig.cmake.in -@@ -156,6 +156,9 @@ endforeach() +@@ -179,2 +179,5 @@ include(CMakeFindDependencyMacro) - include(CMakeFindDependencyMacro) - find_dependency(NanoSVG CONFIG) +if("@wxUSE_LIBSDL@") + find_dependency(SDL2 CONFIG) +endif() - if(TARGET wx::wxnet AND @wxUSE_WEBREQUEST_CURL@) - # make sure CURL targets are available: diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/vcpkg.json b/dependencies/vcpkg_overlay_ports/wxwidgets/vcpkg.json index 542027c8..741d1126 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/vcpkg.json +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/vcpkg.json @@ -1,6 +1,6 @@ { "name": "wxwidgets", - "version": "3.3.2", + "version": "3.3.3", "description": [ "Widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. ", "Set WXWIDGETS_USE_STL in a custom triplet to build with the wxUSE_STL build option.", @@ -102,7 +102,10 @@ "webview": { "description": "The Edge backend uses Microsoft's Edge WebView2", "dependencies": [ - "webview2" + { + "name": "webview2", + "platform": "windows" + } ] } } diff --git a/vcpkg.json b/vcpkg.json index 3687d2b3..7f5cecab 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -80,7 +80,7 @@ }, { "name": "wxwidgets", - "version": "3.3.1" + "version": "3.3.3" } ] }