Skip to content

Commit a855b93

Browse files
committed
wxwidgets3.2: Add Qt variant.
1 parent b8a806f commit a855b93

2 files changed

Lines changed: 128 additions & 6 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
--- a/src/qt/graphics.cpp
2+
+++ b/src/qt/graphics.cpp
3+
@@ -33,6 +33,7 @@
4+
#include "wx/tokenzr.h"
5+
6+
#include "wx/private/graphics.h"
7+
+#include "wx/qt/private/converter.h"
8+
9+
namespace
10+
{
11+
@@ -395,7 +396,7 @@
12+
: wxGraphicsObjectRefData(renderer),
13+
m_color(col.GetQColor())
14+
{
15+
- m_font.setFamily(QString(facename));
16+
+ m_font.setFamily(wxQtConvertString(facename));
17+
m_font.setPixelSize(static_cast<int>(sizeInPixels));
18+
if ( flags & wxFONTFLAG_LIGHT )
19+
m_font.setWeight(QFont::Light);
20+
@@ -967,7 +968,7 @@
21+
m_qtPainter->setFont(fontData->GetFont());
22+
23+
const QFontMetrics metrics = m_qtPainter->fontMetrics();
24+
- const QRect boundingRect = metrics.boundingRect(QString(str));
25+
+ const QRect boundingRect = metrics.boundingRect(wxQtConvertString(str));
26+
27+
if ( width )
28+
*width = boundingRect.width();
29+
@@ -1003,7 +1004,7 @@
30+
{
31+
const wxString subString = text.substr(0, i+1);
32+
const QRect
33+
- boundingRect = metrics.boundingRect(QString(subString));
34+
+ boundingRect = metrics.boundingRect(wxQtConvertString(subString));
35+
widths[i] = boundingRect.width();
36+
}
37+
}
38+
@@ -1027,7 +1028,7 @@
39+
while ( tokenizer.HasMoreTokens() )
40+
{
41+
const wxString line = tokenizer.GetNextToken();
42+
- m_qtPainter->drawText(x, y + metrics.ascent(), QString(line));
43+
+ m_qtPainter->drawText(x, y + metrics.ascent(), wxQtConvertString(line));
44+
y += metrics.lineSpacing();
45+
}
46+
}

mingw-w64-wxwidgets3.2/PKGBUILD

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-common"
1212
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw-libs"
1313
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw"
1414
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-gtk3-libs"
15-
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-gtk3")
15+
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-gtk3"
16+
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-qt-libs"
17+
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-qt")
1618
pkgver=${_wx_basever}.8.1
1719
pkgrel=2
1820
pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)"
@@ -40,6 +42,7 @@ makedepends=(
4042
"${MINGW_PACKAGE_PREFIX}-libtiff"
4143
"${MINGW_PACKAGE_PREFIX}-pcre2"
4244
"${MINGW_PACKAGE_PREFIX}-zlib"
45+
"${MINGW_PACKAGE_PREFIX}-qt5-base"
4346
)
4447
#options=('!strip' 'debug') # Best options for debugging CodeLite crashes
4548
source=(
@@ -50,6 +53,8 @@ source=(
5053
004-use-copy-instead-of-symlink-on-windows.patch
5154
005-keep-autotools-dll-naming-for-clang.patch
5255
006-Check-for-CURL-in-wxWidgetsConfig_cmake.patch::https://github.com/wxWidgets/wxWidgets/commit/3c1a2506.patch
56+
# https://github.com/wxWidgets/wxWidgets/commit/2d1d2da1
57+
007-Fix-compilation-error-wxString-to-QString-conversion.patch
5358
https://github.com/wxWidgets/wxWidgets/commit/40b67f0e.patch
5459
)
5560
sha256sums=('ad0cf6c18815dcf1a6a89ad3c3d21a306cd7b5d99a602f77372ef1d92cb7d756'
@@ -59,6 +64,7 @@ sha256sums=('ad0cf6c18815dcf1a6a89ad3c3d21a306cd7b5d99a602f77372ef1d92cb7d756'
5964
'ff9e4a7f6611f403cdf0ef480adfef59678fe1240960b36304cfb5cbf4426de4'
6065
'38498e1d89944a6024d3b215a0af59b87085e64c442ffe9029c6609376e9267f'
6166
'4bed73f6e89f289b82979c50b853c5ab3a3fdc6e9742204c1cdec23576e5bf44'
67+
'925c77ce164538fbc7c529336a9f99108fc1ec18a941a750bc46609d6ca66983'
6268
'199d48213c2d69313c42e8552e792f31a384996faaba291fae1c0f82d23fbb6d')
6369

6470
apply_patch_with_msg() {
@@ -81,7 +87,8 @@ prepare() {
8187
003-install-dlls-on-bin.patch \
8288
004-use-copy-instead-of-symlink-on-windows.patch \
8389
005-keep-autotools-dll-naming-for-clang.patch \
84-
006-Check-for-CURL-in-wxWidgetsConfig_cmake.patch
90+
006-Check-for-CURL-in-wxWidgetsConfig_cmake.patch \
91+
007-Fix-compilation-error-wxString-to-QString-conversion.patch
8592

8693
# Revert a commit that broke building gtk3 on MinGW-w64
8794
# the commit was meant to fix an issue on wayland
@@ -148,6 +155,30 @@ build() {
148155

149156
CXXFLAGS+=" -Wno-ignored-attributes"
150157

158+
mkdir -p "${srcdir}"/build-qt-${MSYSTEM}-shared && cd "${srcdir}"/build-qt-${MSYSTEM}-shared
159+
160+
CXXFLAGS+=" -Wno-deprecated-declarations" \
161+
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
162+
cmake \
163+
-DBUILD_SHARED_LIBS=ON \
164+
-DwxBUILD_SHARED=ON \
165+
-DwxBUILD_TOOLKIT=qt \
166+
-DwxUSE_EXPAT=sys \
167+
-DwxUSE_LIBJPEG=sys \
168+
-DwxUSE_LIBPNG=sys \
169+
-DwxUSE_LIBTIFF=sys \
170+
-DwxUSE_REGEX=sys \
171+
-DwxUSE_ZLIB=sys \
172+
-DwxUSE_OPENGL=ON \
173+
"${_common_config[@]}" \
174+
../${_realname}-${pkgver}${_wx_buildver}
175+
176+
cmake --build .
177+
178+
mkdir -p "${srcdir}"/install-qt-${MSYSTEM}-shared
179+
180+
DESTDIR="${srcdir}"/install-qt-${MSYSTEM}-shared cmake --install .
181+
151182
mkdir -p "${srcdir}"/build-gtk3-${MSYSTEM}-shared && cd "${srcdir}"/build-gtk3-${MSYSTEM}-shared
152183

153184
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
@@ -256,7 +287,7 @@ package_wxwidgets3.2-common-libs() {
256287
conflicts=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-base-libs")
257288
depends=("${MINGW_PACKAGE_PREFIX}-curl"
258289
"${MINGW_PACKAGE_PREFIX}-expat"
259-
"${MINGW_PACKAGE_PREFIX}-gcc-libs"
290+
"${MINGW_PACKAGE_PREFIX}-cc-libs"
260291
"${MINGW_PACKAGE_PREFIX}-pcre2"
261292
"${MINGW_PACKAGE_PREFIX}-xz"
262293
"${MINGW_PACKAGE_PREFIX}-zlib")
@@ -330,7 +361,7 @@ package_wxwidgets3.2-msw() {
330361

331362
package_wxwidgets3.2-msw-libs() {
332363
pkgdesc="wxMSW shared libraries for wxwidgets ${_wx_basever} (mingw-w64)"
333-
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
364+
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
334365
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
335366
"${MINGW_PACKAGE_PREFIX}-libpng"
336367
"${MINGW_PACKAGE_PREFIX}-libtiff"
@@ -375,7 +406,7 @@ package_wxwidgets3.2-gtk3-libs() {
375406
pkgdesc="GTK+3 implementated shared libraries for wxwidgets ${_wx_basever} (mingw-w64)"
376407
depends=("${MINGW_PACKAGE_PREFIX}-cairo"
377408
"${MINGW_PACKAGE_PREFIX}-fontconfig"
378-
"${MINGW_PACKAGE_PREFIX}-gcc-libs"
409+
"${MINGW_PACKAGE_PREFIX}-cc-libs"
379410
"${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
380411
"${MINGW_PACKAGE_PREFIX}-gettext-runtime"
381412
"${MINGW_PACKAGE_PREFIX}-glib2"
@@ -394,16 +425,60 @@ package_wxwidgets3.2-gtk3-libs() {
394425
rm "$pkgdir"${MINGW_PREFIX}/bin/wxbase*.dll # in base libs package
395426
}
396427

428+
package_wxwidgets3.2-qt() {
429+
pkgdesc="Qt implementation of wxWidgets ${_wx_basever} C++ GUI API (mingw-w64)"
430+
depends=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-qt-libs"
431+
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-common")
432+
433+
mkdir -p "${pkgdir}"${MINGW_PREFIX}/lib
434+
cp -a --recursive "${srcdir}"/install-qt-${MSYSTEM}-shared${MINGW_PREFIX}/lib/wx/ \
435+
"${pkgdir}"${MINGW_PREFIX}/lib
436+
437+
mkdir -p "${pkgdir}"${MINGW_PREFIX}/bin
438+
cp -a "${srcdir}"/install-qt-${MSYSTEM}-shared${MINGW_PREFIX}/bin/wx-config* "${pkgdir}"${MINGW_PREFIX}/bin/
439+
440+
mv "$pkgdir"${MINGW_PREFIX}/bin/wx-config{,-qt} # Conflicts with msw
441+
442+
# Replace real full path with psuedo full path; to prevent
443+
# WARNING: Package contains reference to $(cygpath -m /)
444+
local MINGW_PREFIX_WIN=$(cygpath -am ${MINGW_PREFIX})
445+
sed -s "s|${MINGW_PREFIX_WIN}|\$\{prefix\}|g" -i "${pkgdir}${MINGW_PREFIX}/bin/wx-config-qt"
446+
sed -s "s|${MINGW_PREFIX_WIN}|\$\{prefix\}|g" -i "${pkgdir}${MINGW_PREFIX}/lib/wx/config/qt-unicode-${_wx_basever}"
447+
448+
# create wx-config-qt copy with version file suffix
449+
cp -a "${pkgdir}"${MINGW_PREFIX}/bin/wx-config-qt{,-${_wx_basever}}
450+
}
451+
452+
package_wxwidgets3.2-qt-libs() {
453+
pkgdesc="Qt implementated shared libraries for wxwidgets ${_wx_basever} (mingw-w64)"
454+
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
455+
"${MINGW_PACKAGE_PREFIX}-qt5-base"
456+
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
457+
"${MINGW_PACKAGE_PREFIX}-libpng"
458+
"${MINGW_PACKAGE_PREFIX}-libtiff"
459+
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-common-libs")
460+
461+
mkdir -p "${pkgdir}"${MINGW_PREFIX}/bin
462+
cp -a "${srcdir}"/install-qt-${MSYSTEM}-shared${MINGW_PREFIX}/bin/*.dll "${pkgdir}"${MINGW_PREFIX}/bin/
463+
464+
rm "$pkgdir"${MINGW_PREFIX}/bin/wxbase*.dll # in base libs package
465+
}
466+
397467
package_wxwidgets3.2-common() {
398468
pkgdesc="Static libraries and headers for wxWidgets ${_wx_basever} (mingw-w64)"
399-
depends=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-common-libs")
469+
depends=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-common-libs"
470+
"${MINGW_PACKAGE_PREFIX}-cc-libs")
400471
provides=("${MINGW_PACKAGE_PREFIX}-wxwidgets-common")
401472
conflicts=("${MINGW_PACKAGE_PREFIX}-wxwidgets-common")
402473

403474
mkdir -p "${pkgdir}"${MINGW_PREFIX}/share
404475
cp -a --recursive "${srcdir}/install-msw-${MSYSTEM}-shared${MINGW_PREFIX}/share/" \
405476
"${pkgdir}"${MINGW_PREFIX}/
406477

478+
mkdir -p "${pkgdir}"${MINGW_PREFIX}/include
479+
cp -a --recursive "${srcdir}/install-qt-${MSYSTEM}-shared${MINGW_PREFIX}/include/" \
480+
"${pkgdir}"${MINGW_PREFIX}/
481+
407482
mkdir -p "${pkgdir}"${MINGW_PREFIX}/include
408483
cp -a --recursive "${srcdir}/install-gtk3-${MSYSTEM}-shared${MINGW_PREFIX}/include/" \
409484
"${pkgdir}"${MINGW_PREFIX}/
@@ -416,6 +491,7 @@ package_wxwidgets3.2-common() {
416491
cp -a "${srcdir}"/install-msw-${MSYSTEM}-shared${MINGW_PREFIX}/bin/wxrc*.* "${pkgdir}"${MINGW_PREFIX}/bin/
417492

418493
mkdir -p "${pkgdir}"${MINGW_PREFIX}/lib
494+
cp -a "${srcdir}"/install-qt-${MSYSTEM}-shared${MINGW_PREFIX}/lib/*.a "${pkgdir}"${MINGW_PREFIX}/lib/
419495
cp -a "${srcdir}"/install-gtk3-${MSYSTEM}-static${MINGW_PREFIX}/lib/*.a "${pkgdir}"${MINGW_PREFIX}/lib/
420496
cp -a "${srcdir}"/install-gtk3-${MSYSTEM}-shared${MINGW_PREFIX}/lib/*.a "${pkgdir}"${MINGW_PREFIX}/lib/
421497
cp -a "${srcdir}"/install-msw-${MSYSTEM}-static${MINGW_PREFIX}/lib/*.a "${pkgdir}"${MINGW_PREFIX}/lib/

0 commit comments

Comments
 (0)