Skip to content

[wxwidgets] Update to 3.3.3 - #53318

Open
Emily Mabrey (emabrey) wants to merge 4 commits into
microsoft:masterfrom
emabrey:wxwidgets-3.3.3
Open

[wxwidgets] Update to 3.3.3#53318
Emily Mabrey (emabrey) wants to merge 4 commits into
microsoft:masterfrom
emabrey:wxwidgets-3.3.3

Conversation

@emabrey

Copy link
Copy Markdown

Update wxwidgets from 3.3.1 to 3.3.3. Patches are refreshed against the new line context. Two hunks of install-layout.patch (create_symlink -> copy in install.cmake and utils/CMakeLists.txt) are dropped in favor of the new upstream option wxBUILD_INSTALL_USE_SYMLINK=OFF, which the port now sets. Lexilla submodule is bumped to the sha paired with 3.3.3, and vcpkg_cmake_config_fixup(CONFIG_PATH ...) moves to lib/cmake/wxWidgets-3.3 to match the versioned install layout wxWidgets 3.3 now emits.

Verified locally with a full vcpkg install wxwidgets:x64-windows build (15 min, dbg + rel, post-build validation passed).

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

Refresh install-layout.patch and sdl2.patch against new line context,
bump lexilla submodule to the sha paired with 3.3.3, and drop the two
create_symlink-to-copy hunks from install-layout.patch in favor of the
new upstream option wxBUILD_INSTALL_USE_SYMLINK=OFF. CONFIG_PATH moves
to lib/cmake/wxWidgets-3.3 to match the versioned install layout.

Signed-off-by: Emily Mabrey <emilymabrey93@gmail.com>
3.3.3 promoted the missing-libsecret condition to a hard configure
error under wxUSE_SECRETSTORE=ON, where 3.3.1 silently disabled the
feature. Add the dep behind the same platform gate the other
Linux-only feature deps use.

Signed-off-by: Emily Mabrey <emilymabrey93@gmail.com>
wx_get_dependencies leaks raw target names into wx-config's LIBS when
an imported dep has no IMPORTED_LOCATION, which is what vcpkg's
header-only NanoSVG looks like on Linux and macOS. Downstream projects
then see -lNanoSVG::nanosvg and target_link_libraries chokes. Strip
those post-install; vcpkg-cmake-wrapper.cmake re-adds the real targets
for static builds. Upstream fix targeted for 3.3.4 (wxWidgets/wxWidgets#23373).

Signed-off-by: Emily Mabrey <emilymabrey93@gmail.com>
FindLIBSECRET.cmake populates both LIBSECRET_LIBRARIES and
LIBSECRET_LIBRARY_DIRS via pkg_check_modules, but base/CMakeLists.txt
only consumed the former. When libsecret's transitive static deps
(gcrypt, gpg-error) live outside the default linker search path -- as
they do under vcpkg -- wxrc and any other downstream link fails with
"cannot find -lgcrypt". Add wx_lib_link_directories(wxbase PUBLIC
${LIBSECRET_LIBRARY_DIRS}) so the -L flows through.

Signed-off-by: Emily Mabrey <emilymabrey93@gmail.com>
@emabrey

Copy link
Copy Markdown
Author

CI turned up two failures the local x64-windows verification didn't catch. Three follow-ups:

Depend on libsecret for secretstore on Linux. 3.3.3 promoted "libsecret missing" from a silent-disable to a hard configure error under wxUSE_SECRETSTORE=ON. Adds the dep behind the same platform gate the other Linux-only feature deps use.

Strip target-name leaks from wx-config -- separate arm64_osx / x64_linux issue. wx_get_dependencies writes raw target names into wx-config's LIBS when an imported dep has no IMPORTED_LOCATION, which is what vcpkg's header-only NanoSVG looks like on Linux and macOS. Downstream then sees -lNanoSVG::nanosvg and target_link_libraries chokes. Stripped post-install; the port's vcpkg-cmake-wrapper.cmake already re-adds the real targets for static. Upstream fix targeted for 3.3.4 (wxWidgets/wxWidgets#23373).

Add LIBSECRET_LIBRARY_DIRS to wxbase link deps, as once libsecret was installed, wxrc-3.3 failed to link with "cannot find -lgcrypt / -lgpg-error". FindLIBSECRET.cmake populates both LIBSECRET_LIBRARIES and LIBSECRET_LIBRARY_DIRS via pkg_check_modules, but base/CMakeLists.txt only consumed the former. Adds a wx_lib_link_directories on the -L dirs so libsecret's transitive static deps are actually findable at link time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant