326ef88457391ff752167bd7e3ab7637c3a59c3b
[gentoo.git] / dev-qt / qtgui / qtgui-5.12.3.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5 QT5_MODULE="qtbase"
6 inherit qt5-build
7
8 DESCRIPTION="The GUI module and platform plugins for the Qt5 framework"
9
10 if [[ ${QT5_BUILD_TYPE} == release ]]; then
11         KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd"
12 fi
13
14 # TODO: linuxfb
15
16 IUSE="accessibility dbus egl eglfs evdev +gif gles2 ibus
17         jpeg +libinput +png tslib tuio +udev vnc +xcb"
18 REQUIRED_USE="
19         || ( eglfs xcb )
20         accessibility? ( dbus xcb )
21         eglfs? ( egl )
22         ibus? ( dbus )
23         libinput? ( udev )
24         xcb? ( gles2? ( egl ) )
25 "
26
27 RDEPEND="
28         dev-libs/glib:2
29         ~dev-qt/qtcore-${PV}
30         media-libs/fontconfig
31         >=media-libs/freetype-2.6.1:2
32         >=media-libs/harfbuzz-1.6.0:=
33         sys-libs/zlib:=
34         virtual/opengl
35         dbus? ( ~dev-qt/qtdbus-${PV} )
36         egl? ( media-libs/mesa[egl] )
37         eglfs? (
38                 media-libs/mesa[gbm]
39                 x11-libs/libdrm
40         )
41         evdev? ( sys-libs/mtdev )
42         gles2? ( media-libs/mesa[gles2] )
43         jpeg? ( virtual/jpeg:0 )
44         libinput? (
45                 dev-libs/libinput:=
46                 >=x11-libs/libxkbcommon-0.5.0
47         )
48         png? ( media-libs/libpng:0= )
49         tslib? ( x11-libs/tslib )
50         tuio? ( ~dev-qt/qtnetwork-${PV} )
51         udev? ( virtual/libudev:= )
52         vnc? ( ~dev-qt/qtnetwork-${PV} )
53         xcb? (
54                 x11-libs/libICE
55                 x11-libs/libSM
56                 x11-libs/libX11
57                 >=x11-libs/libxcb-1.12:=[xkb]
58                 >=x11-libs/libxkbcommon-0.5.0[X]
59                 x11-libs/xcb-util-image
60                 x11-libs/xcb-util-keysyms
61                 x11-libs/xcb-util-renderutil
62                 x11-libs/xcb-util-wm
63         )
64 "
65 DEPEND="${RDEPEND}
66         evdev? ( sys-kernel/linux-headers )
67         udev? ( sys-kernel/linux-headers )
68 "
69 PDEPEND="
70         ibus? ( app-i18n/ibus )
71 "
72
73 QT5_TARGET_SUBDIRS=(
74         src/tools/qvkgen
75         src/gui
76         src/openglextensions
77         src/platformheaders
78         src/platformsupport
79         src/plugins/generic
80         src/plugins/imageformats
81         src/plugins/platforms
82         src/plugins/platforminputcontexts
83 )
84
85 QT5_GENTOO_CONFIG=(
86         accessibility:accessibility-atspi-bridge
87         egl:egl:
88         eglfs:eglfs:
89         eglfs:eglfs_egldevice:
90         eglfs:eglfs_gbm:
91         evdev:evdev:
92         evdev:mtdev:
93         :fontconfig:
94         :system-freetype:FREETYPE
95         !:no-freetype:
96         !gif:no-gif:
97         gles2::OPENGL_ES
98         gles2:opengles2:OPENGL_ES_2
99         !:no-gui:
100         :system-harfbuzz:
101         !:no-harfbuzz:
102         jpeg:system-jpeg:IMAGEFORMAT_JPEG
103         !jpeg:no-jpeg:
104         libinput
105         libinput:xkbcommon:
106         :opengl
107         png:png:
108         png:system-png:IMAGEFORMAT_PNG
109         !png:no-png:
110         tslib:tslib:
111         udev:libudev:
112         xcb:xcb:
113         xcb:xcb-glx:
114         xcb:xcb-plugin:
115         xcb:xcb-render:
116         xcb:xcb-sm:
117         xcb:xcb-xlib:
118         xcb:xcb-xinput:
119 )
120
121 QT5_GENTOO_PRIVATE_CONFIG=(
122         :gui
123 )
124
125 src_prepare() {
126         # don't add -O3 to CXXFLAGS, bug 549140
127         sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/gui/gui.pro || die
128
129         # egl_x11 is activated when both egl and xcb are enabled
130         use egl && QT5_GENTOO_CONFIG+=(xcb:egl_x11:) || QT5_GENTOO_CONFIG+=(egl:egl_x11:)
131
132         qt_use_disable_config dbus dbus \
133                 src/platformsupport/themes/genericunix/genericunix.pri
134
135         qt_use_disable_config tuio tuiotouch src/plugins/generic/generic.pro
136
137         qt_use_disable_mod ibus dbus \
138                 src/plugins/platforminputcontexts/platforminputcontexts.pro
139
140         use vnc || sed -i -e '/SUBDIRS += vnc/d' \
141                 src/plugins/platforms/platforms.pro || die
142
143         qt5-build_src_prepare
144 }
145
146 src_configure() {
147         local myconf=(
148                 $(usex dbus -dbus-linked '')
149                 $(qt_use egl)
150                 $(qt_use eglfs)
151                 $(usex eglfs '-gbm -kms' '')
152                 $(qt_use evdev)
153                 $(qt_use evdev mtdev)
154                 -fontconfig
155                 -system-freetype
156                 $(usex gif '' -no-gif)
157                 -gui
158                 -system-harfbuzz
159                 $(qt_use jpeg libjpeg system)
160                 $(qt_use libinput)
161                 -opengl $(usex gles2 es2 desktop)
162                 $(qt_use png libpng system)
163                 $(qt_use tslib)
164                 $(qt_use udev libudev)
165                 $(qt_use xcb xcb system)
166                 $(usex xcb '-xcb-xlib -xcb-xinput -xkb' '')
167         )
168         if use libinput || use xcb; then
169                 myconf+=( -xkbcommon )
170         fi
171         qt5-build_src_configure
172 }