diff options
Diffstat (limited to 'meta-oe/recipes-extended/wxwidgets/wxwidgets')
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-"` |