Add working wxWidgets(!!!) port.

Turns out, wxWidgets has a nearly-complete Qt backend, which works just fine
with our Qt port. There are a few hiccups (e.g. wx-config doesn't seem
to add Qt libs to command line...) but other than that, this is fully
functional.
This commit is contained in:
Augustin Cavalier
2017-02-12 16:15:08 -05:00
parent 81f95b3b99
commit 24bd7db1d1
2 changed files with 168 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
From 006dc02277d977d13a67f31a1c5fbb3f2e155cb9 Mon Sep 17 00:00:00 2001
From: Augustin Cavalier <waddlesplash@gmail.com>
Date: Sun, 12 Feb 2017 15:40:59 -0500
Subject: [PATCH] sckaddr: Fix build on Haiku.
---
src/common/sckaddr.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/common/sckaddr.cpp b/src/common/sckaddr.cpp
index 0388132..49a6481 100644
--- a/src/common/sckaddr.cpp
+++ b/src/common/sckaddr.cpp
@@ -109,6 +109,11 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress);
#endif
#endif // __WINDOWS__
+#ifdef __HAIKU__
+ #define HAVE_GETHOSTBYNAME
+ #define HAVE_GETSERVBYNAME
+#endif
+
// we assume that we have gethostbyaddr_r() if and only if we have
// gethostbyname_r() and that it uses the similar conventions to it (see
// comment in configure)
--
2.7.0

View File

@@ -0,0 +1,140 @@
SUMMARY="Cross-platform GUI library"
DESCRIPTION="wxWidgets is a C++ library that lets developers create \
applications for Windows, Mac OS X, Linux and other platforms with a single \
code base. It has popular language bindings for Python, Perl, Ruby and many \
other languages, and unlike other cross-platform toolkits, wxWidgets gives \
applications a truly native look and feel because it uses the platform's \
native API rather than emulating the GUI. It's also extensive, free, \
open-source and mature."
HOMEPAGE="https://www.wxwidgets.org"
COPYRIGHT="1998-2017 Julian Smart, Robert Roebling et al"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2"
CHECKSUM_SHA256="e082460fb6bf14b7dd6e8ac142598d1d3d0b08a7b5ba402fdbf8711da7e66da8"
SOURCE_DIR="wxWidgets-3.1.0"
PATCHES="wxwidgets-sckaddr.patch"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
wxwidgets$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_baseu_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_baseu_net_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_baseu_xml_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_adv_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_aui_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_core_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_html_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_media_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_propgrid_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_qa_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_ribbon_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_richtext_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_stc_3.1$secondaryArchSuffix = $portVersion compat >= 3
lib:libwx_qtu_xrc_3.1$secondaryArchSuffix = $portVersion compat >= 3
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
wxwidgets${secondaryArchSuffix}_devel = $portVersion compat >= 3
cmd:wx_config$secondaryArchSuffix = $portVersion compat >= 3
cmd:wxrc_3.1$secondaryArchSuffix = $portVersion compat >= 3
cmd:wxrc$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_baseu_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_baseu_net_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_baseu_xml_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_adv_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_aui_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_core_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_html_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_media_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_propgrid_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_qa_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_ribbon_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_richtext_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_stc_3.1$secondaryArchSuffix = $portVersion compat >= 3
devel:libwx_qtu_xrc_3.1$secondaryArchSuffix = $portVersion compat >= 3
"
REQUIRES_devel="
wxwidgets$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:grep
cmd:gawk
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
PATCH()
{
# autoconf chokes for whatever reason while trying to reconfigure,
# so just sed-patch the configure script.
sed -i s/lsocket/lnetwork/g configure
sed -i s/INET_LINK=\"socket\"/INET_LINK=\"network\"/g configure
sed -i 's@\*-\*-freebsd\* | \*-\*-openbsd\*@\*-\*-haiku\* | \*-\*-openbsd\*@' \
configure
}
BUILD()
{
runConfigure ./configure --with-qt --enable-shared
make $jobArgs
}
INSTALL()
{
make install
prepareInstalledDevelLibs \
libwx_baseu-3.1 \
libwx_baseu_net-3.1 \
libwx_baseu_xml-3.1 \
libwx_qtu_adv-3.1 \
libwx_qtu_aui-3.1 \
libwx_qtu_core-3.1 \
libwx_qtu_html-3.1 \
libwx_qtu_media-3.1 \
libwx_qtu_propgrid-3.1 \
libwx_qtu_qa-3.1 \
libwx_qtu_ribbon-3.1 \
libwx_qtu_richtext-3.1 \
libwx_qtu_stc-3.1 \
libwx_qtu_xrc-3.1
packageEntries devel \
$developDir \
$libDir/wx \
$prefix/bin \
$dataDir/aclocal
}