diff options
author | Kai Kang <kai.kang@windriver.com> | 2022-03-30 17:39:33 +0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2022-03-30 07:51:38 -0700 |
commit | 6eb78d932f29efb52961c045d4b8b2ea4a2bd7f6 (patch) | |
tree | 60bfc0b2b6733e917136cba7666cbba38a7fadef /meta-python/recipes-devtools | |
parent | ce604d453c9d119e992bdcd7e0e0a01960b8d2de (diff) | |
download | meta-openembedded-contrib-6eb78d932f29efb52961c045d4b8b2ea4a2bd7f6.tar.gz |
python3-wxgtk4: add recipe
Add recipe for python3-wxgtk4 which is a python3 interface to the
wxWidgets Cross-platform C++ GUI toolkit.
Add patches to
* add back build options for oe
* fixup build scripts for cross compile
* fix sip oevrride functions compile errors
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-python/recipes-devtools')
4 files changed, 142 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/add-back-option-build-base.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/add-back-option-build-base.patch new file mode 100644 index 0000000000..a46f3f870a --- /dev/null +++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/add-back-option-build-base.patch @@ -0,0 +1,22 @@ +Add back default user options for cross build. + +Upstream-Status: Pending [oe specific] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index a215da7..dccfeb3 100644 +--- a/setup.py ++++ b/setup.py +@@ -105,7 +105,7 @@ class wx_build(orig_build): + Delegate to build.py for doing the actual build, (including wxWidgets) + instead of letting distutils do it all. + """ +- user_options = [ ++ user_options = orig_build.user_options + [ + ('skip-build', None, 'skip building the C/C++ code (assumes it has already been done)'), + ] + boolean_options = ['skip-build'] diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch new file mode 100644 index 0000000000..51b9a462b1 --- /dev/null +++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch @@ -0,0 +1,35 @@ +It fails to compile with errors: + +| ../../../../sip/cpp/sip_gridwxGridEvent.cpp:35:9: error: 'int sipwxGridEvent::GetRow()' + marked 'override', but does not override +| 35 | int GetRow() SIP_OVERRIDE; +| | ^~~~~~ +| ../../../../sip/cpp/sip_gridwxGridEvent.cpp:36:9: error: 'int sipwxGridEvent::GetCol()' + marked 'override', but does not over ride +| 36 | int GetCol() SIP_OVERRIDE; +| | ^~~~~~ + +Make these functions non-override. + +Upstream-Status: Pending + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + sip/cpp/sip_gridwxGridEvent.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sip/cpp/sip_gridwxGridEvent.cpp b/sip/cpp/sip_gridwxGridEvent.cpp +index 0830b677..314aec94 100644 +--- a/sip/cpp/sip_gridwxGridEvent.cpp ++++ b/sip/cpp/sip_gridwxGridEvent.cpp +@@ -32,8 +32,8 @@ public: + * this class. + */ + protected: +- int GetRow() SIP_OVERRIDE; +- int GetCol() SIP_OVERRIDE; ++ int GetRow() ; ++ int GetCol() ; + ::wxEvent* Clone() const SIP_OVERRIDE; + ::wxEventCategory GetEventCategory() const SIP_OVERRIDE; + diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/wxgtk-fixup-build-scripts.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/wxgtk-fixup-build-scripts.patch new file mode 100644 index 0000000000..0d65ebb598 --- /dev/null +++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/wxgtk-fixup-build-scripts.patch @@ -0,0 +1,53 @@ +Fix issues in build scripts: + +* remove hardcode lib path from buildtools/config.py which is not suitable for + cross build +* only build target 'build_py' in setup.py +* do not override self.install_lib with self.install_platlib which causes + package issue when multilib is enabled. + +Upstream-Status: Pending [cross build specific] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + buildtools/config.py | 4 ++-- + setup.py | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/buildtools/config.py b/buildtools/config.py +index c837e5d..d426005 100644 +--- a/buildtools/config.py ++++ b/buildtools/config.py +@@ -312,8 +312,8 @@ class Configuration(object): + # wx-config doesn't output that for some reason. For now, just + # add it unconditionally but we should really check if the lib is + # really found there or wx-config should be fixed. +- if self.WXPORT != 'msw': +- self.libdirs.append("/usr/X11R6/lib") ++ #if self.WXPORT != 'msw': ++ # self.libdirs.append("/usr/X11R6/lib") + + # Move the various -I, -D, etc. flags we got from the config scripts + # into the distutils lists. +diff --git a/setup.py b/setup.py +index 64bec4b..fb29253 100644 +--- a/setup.py ++++ b/setup.py +@@ -130,7 +130,7 @@ class wx_build(orig_build): + 'message and the wxWidgets and Phoenix build steps in the future.\n') + + # Use the same Python that is running this script. +- cmd = ['"{}"'.format(sys.executable), '-u', 'build.py', 'build'] ++ cmd = ['"{}"'.format(sys.executable), '-u', 'build.py', 'build_py'] + cmd = ' '.join(cmd) + runcmd(cmd) + +@@ -233,7 +233,7 @@ if haveWheel: + class wx_install(orig_install): + def finalize_options(self): + orig_install.finalize_options(self) +- self.install_lib = self.install_platlib ++ #self.install_lib = self.install_platlib + + def run(self): + self.run_command("build") diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb new file mode 100644 index 0000000000..af7b51d83b --- /dev/null +++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "Python3 interface to the wxWidgets Cross-platform C++ GUI toolkit." +HOMEPAGE = "http://www.wxpython.org" + +LICENSE = "WXwindows" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fce1d18e2d633d41786c0a8dfbc80917" + +DEPENDS = "wxwidgets-native wxwidgets" + +PYPI_PACKAGE = "wxPython" + +SRC_URI += "file://add-back-option-build-base.patch \ + file://wxgtk-fixup-build-scripts.patch \ + file://sip-fix-override-functions.patch \ + " +SRC_URI[sha256sum] = "00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528" + +S = "${WORKDIR}/wxPython-${PV}" + +inherit pypi setuptools3 pkgconfig + +export WX_CONFIG = "${RECIPE_SYSROOT_NATIVE}${bindir}/wx-config" + +RDEPENDS:${PN} = "\ + python3-difflib \ + python3-image \ + python3-numpy \ + python3-pillow \ + python3-pprint \ + python3-pycairo \ + python3-six \ + python3-xml \ +" |