forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
qtcore-5.15.2-r2.ebuild
110 lines (91 loc) · 2.55 KB
/
qtcore-5.15.2-r2.ebuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
QT5_MODULE="qtbase"
inherit linux-info qt5-build
DESCRIPTION="Cross-platform application development framework"
SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/qtbase-${PV}-gcc11.patch.xz"
SLOT=5/$(ver_cut 1-3)
if [[ ${QT5_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
fi
IUSE="icu old-kernel systemd"
DEPEND="
dev-libs/double-conversion:=
dev-libs/glib:2
dev-libs/libpcre2[pcre16,unicode]
sys-libs/zlib:=
icu? ( dev-libs/icu:= )
!icu? ( virtual/libiconv )
systemd? ( sys-apps/systemd:= )
"
RDEPEND="${DEPEND}
!<dev-qt/qtcore-4.8.7-r4:4
dev-qt/qtchooser
"
QT5_TARGET_SUBDIRS=(
src/tools/bootstrap
src/tools/moc
src/tools/rcc
src/corelib
src/tools/qlalr
doc
)
QT5_GENTOO_PRIVATE_CONFIG=(
!:network
!:sql
!:testlib
!:xml
)
PATCHES=(
"${FILESDIR}"/${PN}-5.14.1-cmake-macro-backward-compat.patch # bug 703306
"${FILESDIR}"/${PN}-5.15.1-timezone-{1,2}.patch # bug 737914
"${FILESDIR}"/${P}-fix-UB-in-QDateTime.patch # QTBUG-88656
"${FILESDIR}"/${P}-fix-alloc-mem-of-QByteArray.patch # QTBUG-87010
"${FILESDIR}"/${P}-gcc11.patch # bug 768342, 768354
"${WORKDIR}"/qtbase-${PV}-gcc11.patch # bug 752012
)
pkg_pretend() {
use kernel_linux || return
get_running_version
if kernel_is -lt 4 11 && ! use old-kernel; then
ewarn "The running kernel is older than 4.11. USE=old-kernel is needed for"
ewarn "dev-qt/qtcore to function on this kernel properly. Bugs #669994, #672856"
fi
}
src_prepare() {
# don't add -O3 to CXXFLAGS, bug 549140
sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || die
# fix missing qt_version_tag symbol w/ LTO, bug 674382
sed -i -e 's/^gcc:ltcg/gcc/' src/corelib/global/global.pri || die
qt5-build_src_prepare
}
src_configure() {
local myconf=(
$(qt_use icu)
$(qt_use !icu iconv)
$(qt_use systemd journald)
)
use old-kernel && myconf+=(
-no-feature-renameat2 # needs Linux 3.16, bug 669994
-no-feature-getentropy # needs Linux 3.17, bug 669994
-no-feature-statx # needs Linux 4.11, bug 672856
)
qt5-build_src_configure
}
src_install() {
qt5-build_src_install
local flags=(
DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG
OPENGL OPENSSL SSL WIDGETS
)
for flag in ${flags[@]}; do
cat >> "${D}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die
#if defined(QT_NO_${flag}) && defined(QT_${flag})
# undef QT_NO_${flag}
#elif !defined(QT_NO_${flag}) && !defined(QT_${flag})
# define QT_NO_${flag}
#endif
_EOF_
done
}