wxwidgets: upgrade 3.2.8.1 -> 3.2.11

Upstream refactored install.cmake/config.cmake/webview's CMakeLists.txt
to derive install paths from a new library_dir variable (=
CMAKE_INSTALL_LIBDIR, from GNUInstallDirs) and a wxCONFIG_DIR helper,
both already multilib-aware on their own:

- Drop 0003-create-links-with-relative-path.patch: wx_install_symlink()
  now does "ln -s --relative" natively.
- Drop 0005-wx-config-fix-libdir-for-multilib.patch: superseded by the
  library_dir/wx_get_install_platform_dir refactor.
- Reduce 0002-fix-libdir-for-multilib.patch to its one remaining hunk
  (wxOUTPUT_DIR in CMakeLists.txt, a build-dir path untouched by the
  refactor).
- Rebase 0004-don-not-append-system-name-to-lib-name.patch (context
  shift only).
- Drop the now-unneeded wxBUILD_INSTALL_{RUNTIME,LIBRARY,PLATFORM_SUBDIR}
  EXTRA_OECMAKE overrides: forcing an absolute libdir into
  wxBUILD_INSTALL_RUNTIME_DIR broke the new install.cmake's wx-config
  symlink construction (double /usr prefix, installed-vs-shipped QA
  failure); GNUInstallDirs-based defaults are multilib-correct without
  them.
- do_install:append: guard the bindir rmdir (bindir no longer created
  at all, not just left empty) and repoint the host-contamination sed
  at the new versioned cmake/wxWidgets-3.2/ install path.

Build-verified for qemux86-64 (do_package_qa green).

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Khem Raj
2026-08-06 03:55:31 +00:00
parent 339c7b641d
commit ac3b158259
5 changed files with 24 additions and 227 deletions
@@ -15,18 +15,22 @@ Rebase for wxWidgets 3.2.1. Replace wxPLATFORM_LIB_DIR with LIB_SUFFIX
in this patch that LIB_SUFFIX has been passed to cmake in cmake.bbclass.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Rebased on 3.2.11: upstream refactored install.cmake/config.cmake/
webview/CMakeLists.txt to derive their install paths from a new
library_dir variable (= CMAKE_INSTALL_LIBDIR, from GNUInstallDirs) and
wxCONFIG_DIR (derived from wxOUTPUT_DIR), which are already multilib-aware
on their own -- dropped those 3 now-redundant hunks. Only wxOUTPUT_DIR
in CMakeLists.txt (a build-dir path, not an install path, so untouched by
that refactor) still needs the LIB_SUFFIX fix.
---
CMakeLists.txt | 2 +-
build/cmake/config.cmake | 2 +-
build/cmake/install.cmake | 12 ++++++------
build/cmake/lib/webview/CMakeLists.txt | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d6a4b49..9e86b87 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,7 +43,7 @@ include(build/cmake/policies.cmake NO_POLICY_SCOPE)
@@ -48,7 +48,7 @@
# Initialize variables for quick access to wx root dir in sub dirs
set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(wxBINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
@@ -35,80 +39,5 @@ index d6a4b49..9e86b87 100644
# parse the version number from wx/version.h and include in wxMAJOR_VERSION and wxMINOR_VERSION
file(READ "${wxSOURCE_DIR}/include/wx/version.h" WX_VERSION_H_CONTENTS)
diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
index addd8d6..9ec6775 100644
--- a/build/cmake/config.cmake
+++ b/build/cmake/config.cmake
@@ -100,7 +100,7 @@ function(wx_write_config_inplace)
execute_process(
COMMAND
"${CMAKE_COMMAND}" -E ${COPY_CMD}
- "${wxBINARY_DIR}/lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
+ "${wxBINARY_DIR}/lib${LIB_SUFFIX}/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
"${wxBINARY_DIR}/wx-config"
)
endfunction()
diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
index 202d054..e255e0b 100644
--- a/build/cmake/install.cmake
+++ b/build/cmake/install.cmake
@@ -44,11 +44,11 @@ if(WIN32_MSVC_NAMING)
else()
install(
DIRECTORY "${wxSETUP_HEADER_PATH}"
- DESTINATION "lib/wx/include")
+ DESTINATION "lib${LIB_SUFFIX}/wx/include")
install(
FILES "${wxOUTPUT_DIR}/wx/config/${wxBUILD_FILE_ID}"
- DESTINATION "lib/wx/config"
+ DESTINATION "lib${LIB_SUFFIX}/wx/config"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ
@@ -57,13 +57,13 @@ else()
install(DIRECTORY DESTINATION "bin")
install(CODE "execute_process( \
COMMAND ${CMAKE_COMMAND} -E create_symlink \
- \"${CMAKE_INSTALL_PREFIX}/lib/wx/config/${wxBUILD_FILE_ID}\" \
+ \"${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \
)"
)
endif()
-install(EXPORT wxWidgetsTargets NAMESPACE wx:: DESTINATION "lib/cmake/wxWidgets/${wxPLATFORM_LIB_DIR}")
+install(EXPORT wxWidgetsTargets NAMESPACE wx:: DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets/${wxPLATFORM_LIB_DIR}")
# find_package config file
include(CMakePackageConfigHelpers)
@@ -86,11 +86,11 @@ write_basic_package_version_file(
configure_package_config_file(
"${wxSOURCE_DIR}/build/cmake/wxWidgetsConfig.cmake.in"
"${projectConfig}"
- INSTALL_DESTINATION "lib/cmake/wxWidgets"
+ INSTALL_DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets"
)
install(
FILES "${projectConfig}" "${versionConfig}"
- DESTINATION "lib/cmake/wxWidgets"
+ DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets"
)
# uninstall target
diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt
index 2cb35e7..7977a84 100644
--- a/build/cmake/lib/webview/CMakeLists.txt
+++ b/build/cmake/lib/webview/CMakeLists.txt
@@ -146,7 +146,7 @@ if(WXGTK AND wxUSE_WEBVIEW_WEBKIT2)
${WEBKIT2_LIBRARIES}
)
- wx_install(TARGETS wxwebkit2_ext LIBRARY DESTINATION "lib/wx/${WX_WEB_EXT_VERSION}/web-extensions")
+ wx_install(TARGETS wxwebkit2_ext LIBRARY DESTINATION "lib${LIB_SUFFIX}/wx/${WX_WEB_EXT_VERSION}/web-extensions")
wx_add_dependencies(wxwebview wxwebkit2_ext)
endif()
--
--
2.49.0
@@ -1,60 +0,0 @@
From b86806ef34d4c9171165c1533064bf34ad822e20 Mon Sep 17 00:00:00 2001
From: Kai Kang <kai.kang@windriver.com>
Date: Sat, 12 Oct 2024 18:43:25 +0800
Subject: [PATCH] create links with relative path
It fails to build python3-wxgtk4 which depends on wxwidgets:
| ERROR: wxwidgets-native-3.2.1-r0 do_populate_sysroot: sstate found an
absolute path symlink /path/to/build/tmp-glibc/work/x86_64-linux
/wxwidgets-native/3.2.1-r0/sysroot-destdir/path/to/build/tmp-glibc/work
/x86_64-linux/wxwidgets-native/3.2.1-r0/recipe-sysroot-native/usr/bin/wx-config
pointing at /path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native/3.2.1-r0
/recipe-sysroot-native/usr/lib/wx/config/gtk3-unicode-3.2.
Please replace this with a relative link.
| ERROR: wxwidgets-native-3.2.1-r0 do_populate_sysroot: sstate found an
absolute path symlink /path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native
/3.2.1-r0/sysroot-destdir/path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native
/3.2.1-r0/recipe-sysroot-native/usr/bin/wxrc pointing at /path/to/build/tmp-glibc
/work/x86_64-linux/wxwidgets-native/3.2.1-r0/recipe-sysroot-native/usr/bin/wxrc-3.2.
Please replace this with a relative link.
Create symlink with relative path to fix the issues.
Upstream-Status: Pending
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
build/cmake/install.cmake | 2 +-
build/cmake/utils/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
index d3303faabb..c79e187f37 100644
--- a/build/cmake/install.cmake
+++ b/build/cmake/install.cmake
@@ -42,7 +42,7 @@ else()
install(DIRECTORY DESTINATION "bin")
install(CODE "execute_process( \
COMMAND ${CMAKE_COMMAND} -E create_symlink \
- \"${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
+ \"../lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \
)"
)
diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt
index dbed8cc9b3..1dbc3261d3 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 \
- \"${CMAKE_INSTALL_PREFIX}/bin/${wxrc_output_name}${EXE_SUFFIX}\" \
+ \"./${wxrc_output_name}${EXE_SUFFIX}\" \
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX}\" \
)"
)
--
2.25.1
@@ -14,15 +14,16 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
Rebase for wxWidgets 3.2.1.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Rebased on 3.2.11: context shifted by 109 lines (offset only, same change).
---
build/cmake/functions.cmake | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake
index 81ede7d8ae..23eebeb914 100644
--- a/build/cmake/functions.cmake
+++ b/build/cmake/functions.cmake
@@ -243,9 +243,9 @@ function(wx_set_target_properties target_name)
@@ -352,9 +352,9 @@
endif()
set(cross_target)
@@ -34,7 +35,6 @@ index 81ede7d8ae..23eebeb914 100644
+ #endif()
set(lib_prefix "lib")
if(MSVC OR (WIN32 AND wxBUILD_SHARED))
--
if(WIN32_MSVC_NAMING OR (WIN32 AND wxBUILD_SHARED))
--
2.25.1
@@ -1,69 +0,0 @@
From 4230cd84f156f9eb5c9b80ffbc69dd55fa7c7ca7 Mon Sep 17 00:00:00 2001
From: Kai Kang <kai.kang@windriver.com>
Date: Sat, 12 Oct 2024 18:43:25 +0800
Subject: [PATCH] wx-config: fix libdir for multilib
It sets 'libdir' with path element 'lib' directly which is not suitable
for multilib. Add an option '--baselib' for wx-config to support
multilib when cross compile. And set default value of baselib with
"lib${wxPLATFORM_LIB_DIR}".
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Rebase for wxWidgets 3.2.1. Replace wxPLATFORM_LIB_DIR with variable LIB_SUFFIX.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
build/cmake/config.cmake | 2 +-
wx-config.in | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
index 9ec677534b..ee61cf7572 100644
--- a/build/cmake/config.cmake
+++ b/build/cmake/config.cmake
@@ -110,7 +110,7 @@ function(wx_write_config)
set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix "\${prefix}")
set(includedir "\${prefix}/include")
- set(libdir "\${exec_prefix}/lib")
+ set(libdir "\${exec_prefix}/\${baselib}")
set(bindir "\${exec_prefix}/bin")
if(wxBUILD_MONOLITHIC)
diff --git a/wx-config.in b/wx-config.in
index 1173d89685..8364a33e9d 100755
--- a/wx-config.in
+++ b/wx-config.in
@@ -42,7 +42,8 @@ usage()
{
cat 1>&2 <<EOF
- wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--release] [--version-full]
+ wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]][--baselib=DIR]
+ [--release] [--version-full]
[--list] [--selected-config] [--host=HOST] [--toolkit=TOOLKIT]
[--universal[=yes|no]] [--unicode[=yes|no]] [--static[=yes|no]]
[--debug[=yes|no]] [--version[=VERSION]] [--flavour=FLAVOUR]
@@ -133,7 +134,7 @@ wxconfig_output_options="prefix exec_prefix
# Options that permit the user to supply hints that may affect the output.
# These options all accept arbitrary values, to interpret as they please.
-wxconfig_input_options="prefix exec_prefix utility $wxconfig_schema"
+wxconfig_input_options="prefix exec_prefix baselib utility $wxconfig_schema"
# Input options that accept only a yes or no argument.
#
@@ -400,6 +401,7 @@ is_cross() { [ "xno" = "xyes" ]; }
# Determine the base directories we require.
prefix=${input_option_prefix-${this_prefix:-@prefix@}}
exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-@exec_prefix@}}}
+baselib=${input_option_baselib:-lib${LIB_SUFFIX}}
wxconfdir="@libdir@/wx/config"
installed_configs=`cd "$wxconfdir" 2> /dev/null && ls | grep -v "^inplace-"`
--
2.25.1
@@ -18,16 +18,14 @@ DEPENDS += " \
tiff \
"
SRC_URI = "gitsm://github.com/wxWidgets/wxWidgets.git;branch=3.2.8-hotfix;protocol=https;tag=v${PV} \
SRC_URI = "gitsm://github.com/wxWidgets/wxWidgets.git;branch=3.2;protocol=https;tag=v${PV} \
file://0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch \
file://0002-fix-libdir-for-multilib.patch \
file://0003-create-links-with-relative-path.patch \
file://0004-don-not-append-system-name-to-lib-name.patch \
file://0005-wx-config-fix-libdir-for-multilib.patch \
file://0006-Fix-locale-on-musl.patch \
file://0007-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch \
"
SRCREV = "896e4f587615b832ce27b8325357cb504997e1d3"
SRCREV = "749625e0ea4d70d1f75494aa52231d835531a618"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
@@ -40,9 +38,6 @@ EXTRA_OECMAKE += " \
-DwxUSE_LIBPNG=sys \
-DwxUSE_LIBTIFF=sys \
-DwxUSE_REGEX=builtin \
-DwxBUILD_INSTALL_RUNTIME_DIR=${libdir} \
-DwxBUILD_INSTALL_LIBRARY_DIR=${libdir} \
-DwxBUILD_INSTALL_PLATFORM_SUBDIR=${libdir} \
"
EXTRA_OECMAKE:append:class-target = ' -DEGREP="/bin/grep -E"'
@@ -110,14 +105,16 @@ do_compile:append() {
}
do_install:append() {
# do not ship bindir if empty
rmdir --ignore-fail-on-non-empty ${D}${bindir}
# do not ship bindir if empty (may not exist at all)
if [ -d ${D}${bindir} ]; then
rmdir --ignore-fail-on-non-empty ${D}${bindir}
fi
# fix host contamination
sed -i -e "s#${STAGING_DIR_NATIVE}##g" \
-e "s#${STAGING_DIR_TARGET}##g" \
${D}${libdir}/wx/config/*-unicode-3.2 \
${D}${libdir}/cmake/wxWidgets/wxWidgetsTargets.cmake
${D}${libdir}/cmake/wxWidgets-3.2/wxWidgetsTargets.cmake
}
FILES:${PN} += " \