aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/wxwidgets/wxwidgets
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-extended/wxwidgets/wxwidgets')
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch30
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch26
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch52
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch107
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch34
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch32
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch60
7 files changed, 341 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch
new file mode 100644
index 0000000000..5160f2e1fe
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch
@@ -0,0 +1,30 @@
+From e108aff9d6dae613f486c1b1681f4a3cdf17b845 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 19 Dec 2022 15:07:55 -0800
+Subject: [PATCH] Set HAVE_LARGEFILE_SUPPORT to 1 explicitly
+
+nothing sets this to 0, but for some reason it gets undef'd
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build/cmake/setup.h.in | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/build/cmake/setup.h.in b/build/cmake/setup.h.in
+index bce33a73f3..22afb4cfa0 100644
+--- a/build/cmake/setup.h.in
++++ b/build/cmake/setup.h.in
+@@ -869,8 +869,7 @@
+ /*
+ * Define if large (64 bit file offsets) files are supported.
+ */
+-#cmakedefine HAVE_LARGEFILE_SUPPORT 1
+-
++#define HAVE_LARGEFILE_SUPPORT 1
+ /*
+ * Use OpenGL
+ */
+--
+2.39.0
+
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch
new file mode 100644
index 0000000000..52f4449339
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch
@@ -0,0 +1,26 @@
+From 72c3b7324f00047e6dc5d8380ed2f6ff2494a6f9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 18 Dec 2022 14:51:34 -0800
+Subject: [PATCH] locale: Avoid using glibc specific defines on musl
+
+musl does not provide some glibc-only enum members e.g. _NL_ADDRESS_LANG_NAME
+
+Upstream-Status: Submitted [https://github.com/wxWidgets/wxWidgets/pull/23050]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/uilocale.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unix/uilocale.cpp b/src/unix/uilocale.cpp
+index 57773e17f5..86816ba896 100644
+--- a/src/unix/uilocale.cpp
++++ b/src/unix/uilocale.cpp
+@@ -619,7 +619,7 @@ wxString
+ wxUILocaleImplUnix::GetLocalizedName(wxLocaleName name, wxLocaleForm form) const
+ {
+ wxString str;
+-#if defined(HAVE_LANGINFO_H) && defined(__LINUX__)
++#if defined(HAVE_LANGINFO_H) && defined(__LINUX__) && defined(__GLIBC__)
+ switch (name)
+ {
+ case wxLOCALE_NAME_LOCALE:
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch
new file mode 100644
index 0000000000..6eef0b6790
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch
@@ -0,0 +1,52 @@
+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}\" \
+ )"
+ )
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
new file mode 100644
index 0000000000..ea204ed3b1
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
@@ -0,0 +1,107 @@
+wxWidgets hardcodes libdir with 'lib' and does not support multilib which will
+change it. Respect variable wxPLATFORM_LIB_DIR to support libdir be configurable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+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>
+---
+ CMakeLists.txt | 2 +-
+ build/cmake/config.cmake | 2 +-
+ build/cmake/functions.cmake | 4 ++--
+ build/cmake/install.cmake | 12 ++++++------
+ 4 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a49ecd3883..d469471f38 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -45,7 +45,7 @@ include(build/cmake/policies.cmake NO_POLICY_SCOPE)
+ # Initialize variables for quick access to wx root dir in sub dirs
+ set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+ set(wxBINARY_DIR ${CMAKE_BINARY_DIR})
+-set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib)
++set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib${LIB_SUFFIX})
+
+ # 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 b359560bc0..c59ea60923 100644
+--- a/build/cmake/config.cmake
++++ b/build/cmake/config.cmake
+@@ -76,7 +76,7 @@ function(wx_write_config_inplace)
+ execute_process(
+ COMMAND
+ "${CMAKE_COMMAND}" -E ${COPY_CMD}
+- "${CMAKE_CURRENT_BINARY_DIR}/lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
++ "${CMAKE_CURRENT_BINARY_DIR}/lib${LIB_SUFFIX}/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
+ "${CMAKE_CURRENT_BINARY_DIR}/wx-config"
+ )
+ endfunction()
+diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake
+index 7182364e5e..55fbebc7ee 100644
+--- a/build/cmake/functions.cmake
++++ b/build/cmake/functions.cmake
+@@ -435,8 +435,8 @@ macro(wx_add_library name)
+ endif()
+ wx_install(TARGETS ${name}
+ EXPORT wxWidgetsTargets
+- LIBRARY DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+- ARCHIVE DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
++ LIBRARY DESTINATION "lib${LIB_SUFFIX}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
++ ARCHIVE DESTINATION "lib${LIB_SUFFIX}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+ RUNTIME DESTINATION "${runtime_dir}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+ BUNDLE DESTINATION Applications/wxWidgets
+ )
+diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
+index 384c6837b8..d3303faabb 100644
+--- a/build/cmake/install.cmake
++++ b/build/cmake/install.cmake
+@@ -29,11 +29,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
+@@ -42,13 +42,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)
+@@ -71,11 +71,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/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch
new file mode 100644
index 0000000000..e4ca6579f8
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Pending
+
+these macro'd away functions don't exist in musl (yet)
+diff --git a/include/wx/xlocale.h b/include/wx/xlocale.h
+index c433d25..3ab9d84 100644
+--- a/include/wx/xlocale.h
++++ b/include/wx/xlocale.h
+@@ -33,6 +33,26 @@
+ #include "wx/crt.h" // Includes wx/chartype.h, wx/wxcrt.h(wx/string.h)
+ #include "wx/intl.h" // wxLanguage
+
++#ifndef strtol_l
++#define strtol_l(s, p, base, l) strtol(s, p, base)
++#endif
++
++#ifndef strtoul_l
++#define strtoul_l(s, p, base, l) strtoul(s, p, base)
++#endif
++
++#ifndef wcstod_l
++#define wcstod_l(s, p, l) wcstod(s, p)
++#endif
++
++#ifndef wcstol_l
++#define wcstol_l(s, p, base, l) wcstol(s, p, base)
++#endif
++
++#ifndef wcstoul_l
++#define wcstoul_l(s, p, base, l) wcstoul(s, p, base)
++#endif
++
+ // The platform-specific locale type
+ // If wxXLocale_t is not defined, then only "C" locale support is provided
+ #ifdef wxHAS_XLOCALE_SUPPORT
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
new file mode 100644
index 0000000000..6329256b0c
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
@@ -0,0 +1,32 @@
+It appends system name to library names for cross compile. For example, the
+library name is libwx_baseu-3.1-Linux.so rather than libwx_baseu-3.1.so. It is
+not appropriate for oe.
+
+Upstream-Status: Pending [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Rebase for wxWidgets 3.2.1.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ 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 e374d9a273..c6b1908bd6 100644
+--- a/build/cmake/functions.cmake
++++ b/build/cmake/functions.cmake
+@@ -219,9 +219,9 @@ function(wx_set_target_properties target_name)
+ endif()
+
+ set(cross_target)
+- if (CMAKE_CROSSCOMPILING)
+- set(cross_target "-${CMAKE_SYSTEM_NAME}")
+- endif()
++ #if (CMAKE_CROSSCOMPILING)
++ # set(cross_target "-${CMAKE_SYSTEM_NAME}")
++ #endif()
+
+ set(lib_prefix "lib")
+ if(MSVC OR (WIN32 AND wxBUILD_SHARED))
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
new file mode 100644
index 0000000000..628f8dee56
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
@@ -0,0 +1,60 @@
+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: Pending [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 52ae69d3f6..28aa733eb0 100644
+--- a/build/cmake/config.cmake
++++ b/build/cmake/config.cmake
+@@ -86,7 +86,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")
+
+ find_program(EGREP egrep)
+diff --git a/wx-config.in b/wx-config.in
+index e3f7d115bb..0e78af03c7 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]
+@@ -137,7 +138,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.
+ #
+@@ -404,6 +405,7 @@ is_cross() { [ "x@cross_compiling@" = "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-"`