dev-libs/efl: bump to 1.24.1
[gentoo.git] / dev-libs / efl / efl-1.24.0.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit flag-o-matic meson xdg-utils
7
8 DESCRIPTION="Enlightenment Foundation Libraries all-in-one package"
9 HOMEPAGE="https://www.enlightenment.org"
10 SRC_URI="https://download.enlightenment.org/rel/libs/${PN}/${P}.tar.xz"
11
12 LICENSE="BSD-2 GPL-2 LGPL-2.1 ZLIB"
13 SLOT="0"
14 KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
15 IUSE="+X bmp connman dds debug doc drm +eet elogind examples fbcon fontconfig
16         fribidi gif gles2 gnutls glib +gstreamer harfbuzz hyphen ibus ico libressl
17         lua +luajit jpeg2k json nls mono opengl +pdf physics pmaps postscript psd
18         pulseaudio raw scim sdl +sound +ssl +svg +system-lz4 systemd tga tgv tiff
19         tslib unwind v4l vnc wayland webp xcf xim xpm xpresent zeroconf"
20
21 REQUIRED_USE="
22         ?? ( elogind systemd )
23         ?? ( gles2 opengl )
24         ^^ ( lua luajit )
25         ssl
26         drm? ( gles2 )
27         examples? ( eet svg )
28         gles2? ( || ( wayland X ) )
29         pulseaudio? ( sound )
30         wayland? ( gles2 !opengl )
31         xim? ( X )
32         xpresent? ( X )
33 "
34
35 # Requires everything to be enabled unconditionally.
36 RESTRICT="test"
37
38 RDEPEND="
39         dev-libs/check
40         net-misc/curl
41         media-libs/giflib:=
42         media-libs/libpng:0=
43         sys-apps/dbus
44         sys-libs/zlib
45         virtual/jpeg:0=
46         X? (
47                 media-libs/freetype
48                 x11-libs/libX11
49                 x11-libs/libXcomposite
50                 x11-libs/libXcursor
51                 x11-libs/libXdamage
52                 x11-libs/libXdmcp
53                 x11-libs/libXext
54                 x11-libs/libXfixes
55                 x11-libs/libXi
56                 x11-libs/libXinerama
57                 x11-libs/libXrandr
58                 x11-libs/libXrender
59                 x11-libs/libXtst
60                 x11-libs/libXScrnSaver
61                 wayland? ( x11-libs/libxkbcommon[X] )
62         )
63         connman? ( net-misc/connman )
64         drm? (
65                 dev-libs/libinput
66                 dev-libs/wayland
67                 media-libs/mesa[gbm]
68                 x11-libs/libdrm
69                 x11-libs/libxkbcommon
70         )
71         elogind? (
72                 sys-auth/elogind
73                 virtual/libudev
74         )
75         fontconfig? ( media-libs/fontconfig )
76         fribidi? ( dev-libs/fribidi )
77         gles2? (
78                 media-libs/mesa[egl,gles2]
79                 virtual/opengl
80         )
81         glib? ( dev-libs/glib:2 )
82         gstreamer? (
83                 media-libs/gstreamer:1.0
84                 media-libs/gst-plugins-base:1.0
85         )
86         hyphen? ( dev-libs/hyphen )
87         ibus? ( app-i18n/ibus )
88         jpeg2k? ( media-libs/openjpeg:= )
89         json? ( >=media-libs/rlottie-0.0.1_pre20200424 )
90         lua? ( dev-lang/lua:* )
91         luajit? ( dev-lang/luajit:* )
92         mono? ( dev-lang/mono )
93         opengl? ( virtual/opengl )
94         pdf? ( app-text/poppler:=[cxx] )
95         physics? ( sci-physics/bullet:= )
96         postscript? ( app-text/libspectre )
97         pulseaudio? ( media-sound/pulseaudio )
98         raw? ( media-libs/libraw:= )
99         scim? ( app-i18n/scim )
100         sdl? ( media-libs/libsdl2 )
101         sound? ( media-libs/libsndfile )
102         ssl? (
103                 gnutls? ( net-libs/gnutls:= )
104                 !gnutls? (
105                         !libressl? ( dev-libs/openssl:0= )
106                         libressl? ( dev-libs/libressl:= )
107                 )
108         )
109         svg? ( gnome-base/librsvg )
110         system-lz4? ( app-arch/lz4 )
111         systemd? ( sys-apps/systemd:= )
112         tiff? ( media-libs/tiff:0= )
113         tslib? ( x11-libs/tslib:= )
114         unwind? ( sys-libs/libunwind )
115         v4l? ( media-libs/libv4l )
116         vnc? ( net-libs/libvncserver )
117         wayland? (
118                 dev-libs/wayland
119                 media-libs/mesa[gles2,wayland]
120                 x11-libs/libxkbcommon
121         )
122         webp? ( media-libs/libwebp:= )
123         xpm? ( x11-libs/libXpm )
124         xpresent? ( x11-libs/libXpresent )
125         zeroconf? ( net-dns/avahi )
126 "
127 DEPEND="${RDEPEND}"
128 BDEPEND="virtual/pkgconfig
129         doc? ( app-doc/doxygen )
130         nls? ( sys-devel/gettext )"
131
132 src_configure() {
133         local emesonargs=(
134                 --buildtype=release
135
136                 -D buffer=false
137                 -D cocoa=false
138                 -D drm-deprecated=false
139                 -D g-mainloop=false
140                 -D install-eo-files=true
141                 -D mono-beta=false
142                 -D dotnet=false
143                 -D pixman=false
144                 -D wl-deprecated=false
145                 -D dotnet-stylecop-severity=Warning
146
147                 -D edje-sound-and-video=true
148                 -D eeze=true
149                 -D libmount=true
150                 -D native-arch-optimization=true
151                 -D xinput2=true
152                 -D xinput22=true
153
154                 $(meson_use X x11)
155                 $(meson_use debug debug-threads)
156                 $(meson_use drm)
157                 $(meson_use elogind)
158                 $(meson_use examples build-examples)
159                 $(meson_use fbcon fb)
160                 $(meson_use fontconfig)
161                 $(meson_use fribidi)
162                 $(meson_use glib)
163                 $(meson_use gstreamer)
164                 $(meson_use harfbuzz)
165                 $(meson_use hyphen)
166                 $(meson_use luajit elua)
167                 $(meson_use nls)
168                 $(meson_use physics)
169                 $(meson_use pulseaudio)
170                 $(meson_use sdl)
171                 $(meson_use sound audio)
172                 $(meson_use systemd)
173                 $(meson_use tslib)
174                 $(meson_use v4l v4l2)
175                 $(meson_use vnc vnc-server)
176                 $(meson_use wayland wl)
177                 $(meson_use xpresent)
178                 $(meson_use zeroconf avahi)
179
180                 $(meson_use !system-lz4 embedded-lz4)
181         )
182
183         if use opengl; then
184                 emesonargs+=( -D opengl=full )
185         elif use gles2; then
186                 emesonargs+=( -D opengl=es-egl )
187         else
188                 emesonargs+=( -D opengl=none )
189         fi
190
191         if use gnutls; then
192                 emesonargs+=( -D crypto=gnutls )
193         else
194                 emesonargs+=( -D crypto=openssl )
195         fi
196
197         if use connman; then
198                 emesonargs+=( -D network-backend=connman )
199         else
200                 emesonargs+=( -D network-backend=none )
201         fi
202
203         local disabledEvasLoaders=""
204         ! use bmp && disabledEvasLoaders+="bmp,wbmp,"
205         ! use dds && disabledEvasLoaders+="dds,"
206         ! use eet && disabledEvasLoaders+="eet,"
207         ! use gstreamer && disabledEvasLoaders+="gst,"
208         ! use ico && disabledEvasLoaders+="ico,"
209         ! use jpeg2k && disabledEvasLoaders+="jp2k,"
210         ! use json && disabledEvasLoaders+="json,"
211         ! use pdf && disabledEvasLoaders+="pdf,"
212         ! use pmaps && disabledEvasLoaders+="pmaps,"
213         ! use postscript && disabledEvasLoaders+="ps,"
214         ! use psd && disabledEvasLoaders+="psd,"
215         ! use raw && disabledEvasLoaders+="raw,"
216         ! use svg && disabledEvasLoaders+="rsvg,svg,"
217         ! use tga && disabledEvasLoaders+="tga,"
218         ! use tgv && disabledEvasLoaders+="tgv,"
219         ! use tiff && disabledEvasLoaders+="tiff,"
220         ! use webp && disabledEvasLoaders+="webp,"
221         ! use xcf && disabledEvasLoaders+="xcf,"
222         ! use xpm && disabledEvasLoaders+="xpm,"
223         [[ ! -z "$disabledEvasLoaders" ]] && disabledEvasLoaders=${disabledEvasLoaders::-1}
224         emesonargs+=( -D evas-loaders-disabler="${disabledEvasLoaders}" )
225
226         local disabledImfLoaders=""
227         ! use ibus && disabledImfLoaders+="ibus,"
228         ! use scim && disabledImfLoaders+="scim,"
229         ! use xim && disabledImfLoaders+="xim,"
230         [[ ! -z "$disabledImfLoaders" ]] && disabledImfLoaders=${disabledImfLoaders::-1}
231         emesonargs+=( -D ecore-imf-loaders-disabler="${disabledImfLoaders}" )
232
233         local bindingsList="cxx,"
234         use luajit && bindingsList+="luajit,"
235         use mono && bindingsList+="mono,"
236         [[ ! -z "$bindingsList" ]] && bindingsList=${bindingsList::-1}
237         emesonargs+=( -D bindings="${bindingsList}" )
238
239         local luaChoice=""
240         if use luajit; then
241                 luaChoice+="luajit"
242         else
243                 luaChoice+="lua"
244         fi
245         emesonargs+=( -D lua-interpreter="${luaChoice}" )
246
247         append-cflags -fcommon
248
249         meson_src_configure
250 }
251
252 src_compile() {
253         meson_src_compile
254
255         if use doc; then
256                 cd doc/ || die "Failed to switch into doc/ dir."
257                 doxygen . || die "Doxygen failed to run."
258         fi
259 }
260
261 src_install() {
262         use doc && local HTML_DOCS=( "${S}"/doc/html/. )
263         meson_src_install
264
265         if use examples; then
266                 docompress -x /usr/share/doc/${PF}/examples/
267                 dodoc -r "${BUILD_DIR}"/src/examples/
268         fi
269 }
270
271 pkg_postinst() {
272         xdg_icon_cache_update
273         xdg_mimeinfo_database_update
274 }
275
276 pkg_postrm() {
277         xdg_icon_cache_update
278         xdg_mimeinfo_database_update
279 }