1 |
1 |
# Copyright 1999-2023 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
|
EAPI=7
|
|
4 |
EAPI=8
|
5 |
5 |
|
6 |
6 |
inherit multilib-minimal
|
7 |
7 |
|
8 |
|
WXSUBVERSION=${PV}-gtk3 # 3.0.5.1-gtk3
|
9 |
|
WXVERSION=${WXSUBVERSION%.*} # 3.0.5
|
10 |
|
WXRELEASE=${WXVERSION%.*}-gtk3 # 3.0-gtk3
|
11 |
|
WXRELEASE_NODOT=${WXRELEASE//./} # 30-gtk3
|
|
8 |
WXSUBVERSION=${PV}-gtk3 # 3.2.1-gtk3
|
|
9 |
WXVERSION=${PV} # 3.2.1
|
|
10 |
WXRELEASE=${WXVERSION%.*}-gtk3 # 3.2-gtk3
|
|
11 |
WXRELEASE_NODOT=${WXRELEASE//./} # 32-gtk3
|
12 |
12 |
|
13 |
|
DESCRIPTION="GTK+ version of wxWidgets, a cross-platform C++ GUI toolkit"
|
|
13 |
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
|
14 |
14 |
HOMEPAGE="https://wxwidgets.org/"
|
15 |
15 |
SRC_URI="
|
16 |
16 |
https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
|
17 |
|
https://dev.gentoo.org/~leio/distfiles/wxGTK-3.0.5_p20210214.tar.xz
|
18 |
|
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${WXVERSION}/wxWidgets-${WXVERSION}-docs-html.tar.bz2 )"
|
|
17 |
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
|
19 |
18 |
S="${WORKDIR}/wxWidgets-${PV}"
|
20 |
19 |
|
21 |
20 |
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
|
22 |
21 |
SLOT="${WXRELEASE}"
|
23 |
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
|
24 |
|
IUSE="+X doc debug gstreamer libnotify opengl pch sdl test tiff webkit"
|
25 |
|
REQUIRED_USE="test? ( tiff ) tiff? ( X )"
|
|
22 |
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
|
|
23 |
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit"
|
|
24 |
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
|
26 |
25 |
RESTRICT="!test? ( test )"
|
27 |
26 |
|
28 |
27 |
RDEPEND="
|
29 |
28 |
>=app-eselect/eselect-wxwidgets-20131230
|
30 |
29 |
dev-libs/expat[${MULTILIB_USEDEP}]
|
|
30 |
dev-libs/libpcre2[pcre16,pcre32,unicode]
|
31 |
31 |
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
|
|
32 |
curl? ( net-misc/curl )
|
|
33 |
lzma? ( app-arch/xz-utils )
|
32 |
34 |
X? (
|
33 |
35 |
>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
|
34 |
36 |
media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
|
35 |
37 |
media-libs/libpng:0=[${MULTILIB_USEDEP}]
|
36 |
38 |
sys-libs/zlib[${MULTILIB_USEDEP}]
|
37 |
39 |
x11-libs/cairo[${MULTILIB_USEDEP}]
|
38 |
|
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
39 |
|
x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
|
|
40 |
x11-libs/gtk+:3[wayland?,${MULTILIB_USEDEP}]
|
|
41 |
x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
|
40 |
42 |
x11-libs/libSM[${MULTILIB_USEDEP}]
|
41 |
43 |
x11-libs/libX11[${MULTILIB_USEDEP}]
|
|
44 |
x11-libs/libXtst
|
42 |
45 |
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
|
46 |
media-libs/fontconfig
|
43 |
47 |
x11-libs/pango[${MULTILIB_USEDEP}]
|
|
48 |
keyring? ( app-crypt/libsecret )
|
44 |
49 |
gstreamer? (
|
45 |
50 |
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
46 |
51 |
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
|
52 |
media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
|
47 |
53 |
)
|
48 |
54 |
libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
|
49 |
|
opengl? ( virtual/opengl[${MULTILIB_USEDEP}] )
|
|
55 |
opengl? (
|
|
56 |
virtual/opengl[${MULTILIB_USEDEP}]
|
|
57 |
wayland? ( dev-libs/wayland )
|
|
58 |
)
|
|
59 |
spell? ( app-text/gspell:= )
|
50 |
60 |
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
|
51 |
|
webkit? ( net-libs/webkit-gtk:4 )
|
|
61 |
webkit? ( net-libs/webkit-gtk:4= )
|
52 |
62 |
)"
|
53 |
63 |
DEPEND="${RDEPEND}
|
54 |
64 |
opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
|
... | ... | |
58 |
68 |
>=app-eselect/eselect-wxwidgets-20131230
|
59 |
69 |
virtual/pkgconfig"
|
60 |
70 |
|
|
71 |
# Note about the gst-plugin-base dep: The build system queries for it,
|
|
72 |
# but doesn't link it for some reason? Either way - probably best to
|
|
73 |
# depend on it anyway.
|
|
74 |
# Note about the wayland dep: Appears to be only required for the OpenGL
|
|
75 |
# canvas, and it seems impossible to disable the X dependency, unless
|
|
76 |
# I'm missing something. This is an automagic header dep, though.
|
|
77 |
|
61 |
78 |
PATCHES=(
|
62 |
|
"${WORKDIR}"/wxGTK-3.0.5_p20210214/
|
63 |
|
"${FILESDIR}"/wxGTK-${SLOT}-translation-domain.patch
|
64 |
|
"${FILESDIR}"/wxGTK-ignore-c++-abi.patch #676878
|
65 |
|
"${FILESDIR}"/${PN}-configure-tests.patch
|
66 |
|
"${FILESDIR}"/${PN}-3.0.5.1-configure-modern-c.patch
|
|
79 |
#"${WORKDIR}"/wxGTK-3.0.5_p20210214/
|
|
80 |
"${FILESDIR}"/${P}-gtk3-translation-domain.patch
|
|
81 |
#"${FILESDIR}"/wxGTK-ignore-c++-abi.patch #676878
|
|
82 |
"${FILESDIR}/${P}-configure-tests.patch"
|
|
83 |
"${FILESDIR}/${P}"-wayland-control.patch
|
|
84 |
"${FILESDIR}/${P}"-prefer-lib64-in-tests.patch
|
67 |
85 |
)
|
68 |
86 |
|
69 |
87 |
src_prepare() {
|
70 |
88 |
default
|
71 |
89 |
|
|
90 |
# find . -iname Makefile.in -not -path ./samples'/*' \
|
|
91 |
# | xargs grep -l WX_RELEASE
|
|
92 |
local versioned_makefiles=(
|
|
93 |
./tests/benchmarks/Makefile.in
|
|
94 |
./tests/Makefile.in
|
|
95 |
./utils/emulator/src/Makefile.in
|
|
96 |
./utils/execmon/Makefile.in
|
|
97 |
./utils/wxrc/Makefile.in
|
|
98 |
./utils/helpview/src/Makefile.in
|
|
99 |
./utils/hhp2cached/Makefile.in
|
|
100 |
./utils/screenshotgen/src/Makefile.in
|
|
101 |
./utils/ifacecheck/src/Makefile.in
|
|
102 |
./Makefile.in
|
|
103 |
./demos/life/Makefile.in
|
|
104 |
./demos/bombs/Makefile.in
|
|
105 |
./demos/fractal/Makefile.in
|
|
106 |
./demos/forty/Makefile.in
|
|
107 |
./demos/poem/Makefile.in
|
|
108 |
)
|
|
109 |
|
72 |
110 |
# Versionating
|
73 |
111 |
sed -i \
|
74 |
112 |
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
|
75 |
113 |
-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
|
76 |
114 |
-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
|
77 |
115 |
-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
|
78 |
|
-e "s:wxstd.mo:wxstd${WXRELEASE_NODOT}.mo:" \
|
79 |
|
-e "s:wxmsw.mo:wxmsw${WXRELEASE_NODOT}.mo:" \
|
80 |
|
Makefile.in tests/Makefile.in || die
|
81 |
|
|
82 |
|
sed -i \
|
83 |
|
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
|
84 |
|
utils/wxrc/Makefile.in || die
|
|
116 |
"${versioned_makefiles[@]}" || die
|
85 |
117 |
|
86 |
118 |
sed -i \
|
87 |
119 |
-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
|
... | ... | |
96 |
128 |
local myeconfargs=(
|
97 |
129 |
--with-zlib=sys
|
98 |
130 |
--with-expat=sys
|
99 |
|
--enable-compat28
|
|
131 |
--enable-compat30
|
100 |
132 |
$(use_with sdl)
|
|
133 |
$(use_with lzma liblzma)
|
|
134 |
# Currently defaults to curl, could change. Watch the VDB!
|
|
135 |
$(use_enable curl webrequest)
|
101 |
136 |
|
102 |
137 |
# PCHes are unstable and are disabled in-tree where possible
|
103 |
138 |
# See bug #504204
|
... | ... | |
127 |
162 |
--with-gtk=3
|
128 |
163 |
--with-libpng=sys
|
129 |
164 |
--with-libjpeg=sys
|
|
165 |
|
|
166 |
# Choosing to enable this unconditionally seems fair, pcre2 is
|
|
167 |
# almost certain to be installed.
|
|
168 |
--with-regex=sys
|
130 |
169 |
--without-gnomevfs
|
131 |
170 |
$(use_enable gstreamer mediactrl)
|
132 |
171 |
$(multilib_native_use_enable webkit webview)
|
133 |
172 |
$(use_with libnotify)
|
134 |
173 |
$(use_with opengl)
|
135 |
174 |
$(use_with tiff libtiff sys)
|
|
175 |
$(use_enable keyring secretstore)
|
|
176 |
$(use_enable spell spellcheck)
|
136 |
177 |
$(use_enable test tests)
|
|
178 |
$(use_enable wayland)
|
137 |
179 |
)
|
138 |
180 |
|
139 |
181 |
# wxBase options
|
... | ... | |
144 |
186 |
|
145 |
187 |
multilib_src_test() {
|
146 |
188 |
emake -C tests
|
147 |
|
(cd tests && ./test) || die
|
|
189 |
(cd tests && ./test '~[.]~[net]') || die
|
148 |
190 |
}
|
149 |
191 |
|
150 |
192 |
multilib_src_install_all() {
|
... | ... | |
156 |
198 |
use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${WXVERSION}-docs-html/. )
|
157 |
199 |
einstalldocs
|
158 |
200 |
|
159 |
|
# Stray windows locale file, bug #650118
|
160 |
|
rm -f "${ED}"/usr/share/locale/it/LC_MESSAGES/wxmsw30-gtk3.mo || die
|
161 |
|
|
162 |
201 |
# Unversioned links
|
163 |
202 |
rm "${ED}"/usr/bin/wx-config || die
|
164 |
203 |
use X && { rm "${ED}"/usr/bin/wxrc || die; }
|
... | ... | |
167 |
206 |
pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
|
168 |
207 |
local f
|
169 |
208 |
for f in wx*; do
|
170 |
|
mv "${f}" "${f/wx/wx30gtk3}" || die
|
|
209 |
mv "${f}" "${f/wx/wx32gtk3}" || die
|
171 |
210 |
done
|
172 |
211 |
popd >/dev/null || die
|
173 |
212 |
}
|