Gentoo Archives: gentoo-commits

From: Alessandro Barbieri <lssndrbarbieri@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: media-libs/skia/
Date: Sat, 25 Apr 2020 00:37:31
Message-Id: 1587775035.9d1db4a3a02af5233999f88d1fc5f9b569f03ce5.Alessandro-Barbieri@gentoo
1 commit: 9d1db4a3a02af5233999f88d1fc5f9b569f03ce5
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Thu Apr 23 13:12:09 2020 +0000
4 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
5 CommitDate: Sat Apr 25 00:37:15 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9d1db4a3
7
8 media-libs/skia: new package
9
10 Package-Manager: Portage-2.3.99, Repoman-2.3.22
11 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
12
13 media-libs/skia/Manifest | 1 +
14 media-libs/skia/metadata.xml | 13 ++++
15 media-libs/skia/skia-84.ebuild | 142 +++++++++++++++++++++++++++++++++++++++++
16 3 files changed, 156 insertions(+)
17
18 diff --git a/media-libs/skia/Manifest b/media-libs/skia/Manifest
19 new file mode 100644
20 index 0000000..f1160cc
21 --- /dev/null
22 +++ b/media-libs/skia/Manifest
23 @@ -0,0 +1 @@
24 +DIST skia-84.tar.gz 46451124 BLAKE2B f64d5a4e66307ab99214e36be402064e75acd83d9f6e4957b52c3be3c1088feb92ac53ef6a15b94d3bbd74f5567c34146cc837e750c4867c02254a5ff258b2fb SHA512 e2455d57db4de093b7ce5c0a9ef7260df7ad7bebbe7684e39153a4bd7c80169629bdb58163fec5ed304b1f8a846200ce7100a8d067540afee6eff6a230393542
25
26 diff --git a/media-libs/skia/metadata.xml b/media-libs/skia/metadata.xml
27 new file mode 100644
28 index 0000000..8e363d5
29 --- /dev/null
30 +++ b/media-libs/skia/metadata.xml
31 @@ -0,0 +1,13 @@
32 +<?xml version="1.0" encoding="UTF-8"?>
33 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
34 +
35 +<pkgmetadata>
36 + <longdescription lang="en">
37 +Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.
38 +
39 +Skia is sponsored and managed by Google, but is available for use by anyone under the BSD Free Software License. While engineering of the core components is done by the Skia development team, we consider contributions from any source.
40 + </longdescription>
41 + <use>
42 + <flag name="dawn">use Dawn, a WebGPU implementation</flag>
43 + </use>
44 +</pkgmetadata>
45
46 diff --git a/media-libs/skia/skia-84.ebuild b/media-libs/skia/skia-84.ebuild
47 new file mode 100644
48 index 0000000..ec24265
49 --- /dev/null
50 +++ b/media-libs/skia/skia-84.ebuild
51 @@ -0,0 +1,142 @@
52 +# Copyright 1999-2020 Gentoo Authors
53 +# Distributed under the terms of the GNU General Public License v2
54 +
55 +EAPI="7"
56 +
57 +PYTHON_COMPAT=( python2_7 )
58 +
59 +inherit ninja-utils python-any-r1
60 +
61 +COMMIT="2fc431eaea2979f6e6b20cdb715db8861d5a47b1"
62 +
63 +SRC_URI="https://github.com/google/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
64 +KEYWORDS="~amd64"
65 +DESCRIPTION="A complete 2D graphic library for drawing Text, Geometries, and Images"
66 +HOMEPAGE="
67 + https://skia.org
68 + https://github.com/google/skia
69 +"
70 +LICENSE="BSD"
71 +SLOT="0"
72 +IUSE="dawn expat gif jpeg png pdf webp zlib"
73 +#TODO: find out how to enable and link: angle egl ffmpeg fontconfig freetype gl harfbuzz heif icu lua opencl piex sfntly wuffs vulkan xps s
74 +
75 +#TODO: find out which deps are needed for gl/egl/vulkan/X/gif/xps
76 +# fontconfig? ( media-libs/fontconfig )
77 +# freetype? ( media-libs/freetype )
78 +# ffmpeg? ( virtual/ffmpeg )
79 +# harfbuzz? ( media-libs/harfbuzz )
80 +# heif? ( media-libs/libheif )
81 +# icu? ( dev-libs/icu )
82 +# virtual/opengl
83 +# lua? ( dev-lang/lua )
84 +# opencl? ( virtual/opencl )
85 +RDEPEND="
86 + expat? ( dev-libs/expat )
87 + jpeg? ( media-libs/libjpeg-turbo )
88 + png? ( media-libs/libpng )
89 + webp? ( media-libs/libwebp )
90 + zlib? ( sys-libs/zlib )
91 +"
92 +DEPEND="
93 + ${PYTHON_DEPS}
94 + ${RDEPEND}
95 +"
96 +BDEPEND="
97 + dev-util/gn
98 +"
99 +
100 +S="${WORKDIR}/${PN}-${COMMIT}"
101 +
102 +src_prepare() {
103 + default
104 + # https://chromium.googlesource.com/chromium/src/third_party/zlib
105 + # https://github.com/jtkukunas/zlib
106 + sed \
107 + -e '/:zlib_x86/d' \
108 + -e '/third_party("zlib_x86/,/^}/d' \
109 + -i third_party/zlib/BUILD.gn
110 +}
111 +
112 +src_configure() {
113 + python_setup
114 + tc-export AR CC CXX
115 +
116 + local myconf_gn=()
117 + passflags() {
118 + local _f _x
119 + _f=( ${1} )
120 + _x="[$(printf '"%s", ' "${_f[@]}")]"
121 + myconf_gn+=( extra_${2}="${_x}" )
122 + }
123 + passflags "${CFLAGS}" cflags_c
124 + passflags "${CXXFLAGS}" cflags_cc
125 + passflags "${CFLAGS}" ldflags
126 +
127 + myconf_gn+=(
128 + ar=\"${AR}\"
129 + cc=\"${CC}\"
130 + cxx=\"${CXX}\"
131 + is_component_build=true
132 + is_official_build=true
133 +
134 + skia_enable_pdf=$(usex pdf true false)
135 +
136 + skia_use_dawn=$(usex dawn true false)
137 + skia_use_expat=$(usex expat true false)
138 + skia_use_libgifcodec=$(usex gif true false)
139 + skia_use_libjpeg_turbo_decode=$(usex jpeg true false)
140 + skia_use_libjpeg_turbo_encode=$(usex jpeg true false)
141 + skia_use_libpng_decode=$(usex png true false)
142 + skia_use_libpng_encode=$(usex png true false)
143 + skia_use_libwebp_decode=$(usex webp true false)
144 + skia_use_libwebp_encode=$(usex webp true false)
145 + skia_use_zlib=$(usex zlib true false)
146 +
147 + skia_use_direct3d=false
148 + skia_use_dng_sdk=false
149 + skia_use_fonthost_mac=false
150 + skia_use_metal=false
151 + )
152 +# skia_use_angle=$(usex angle true false)
153 +# skia_use_egl=$(usex egl true false)
154 +# skia_use_fontconfig=$(usex fontconfig true false)
155 +# skia_use_freetype=$(usex freetype true false)
156 +# skia_use_ffmpeg=$(usex ffmpeg true false)
157 +# skia_use_gl=$(usex gl true false)
158 +# skia_use_harfbuzz=$(usex harfbuzz true false)
159 +# skia_use_icu=$(usex icu true false)
160 +# skia_use_libheif=$(usex heif true false)
161 +# skia_use_lua=$(usex lua true false)
162 +# skia_use_opencl=$(usex opencl true false)
163 +# skia_use_vulkan=$(usex vulkan true false)
164 +# skia_use_x11=$(usex X true false)
165 +# skia_use_xps=$(usex xps true false)
166 +# skia_use_piex=$(usex piex true false)
167 +# skia_use_sfntly=$(usex sfntly true false)
168 +# skia_use_wuffs=$(usex wuffs true false)
169 +
170 +# use freetype && myconf_gn+=( skia_use_system_freetype2=true )
171 +# use harfbuzz && myconf_gn+=( skia_use_system_harfbuzz=true )
172 +# use icu && myconf_gn+=( skia_use_system_icu=true )
173 + use jpeg && myconf_gn+=( skia_use_system_libjpeg_turbo=true )
174 +# use lua && myconf_gn+=( skia_use_system_lua=true )
175 + use png && myconf_gn+=( skia_use_system_libpng=true )
176 + use webp && myconf_gn+=( skia_use_system_libwebp=true )
177 + use zlib && myconf_gn+=( skia_use_system_zlib=true )
178 +
179 + myconf_gn="${myconf_gn[@]} ${EXTRA_GN}"
180 + set -- gn gen --args="${myconf_gn% }" out/Release
181 + echo "$@"
182 + "$@" || die
183 +}
184 +
185 +src_compile() {
186 + eninja -C out/Release
187 +}
188 +
189 +src_install() {
190 + dolib.so out/Release/*.so
191 + insinto "/usr/include/${PN}"
192 + doins -r include/.
193 +}