media-libs/skia: update EAPI 7 -> 8

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2022-03-10 01:39:20 +01:00
parent 80c8b4d2e9
commit 49e50a8a5c
7 changed files with 675 additions and 2 deletions

View File

@@ -0,0 +1,52 @@
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gn/skia/BUILD.gn
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gn/skia/BUILD.gn
@@ -335,7 +335,7 @@
config("no_exceptions") {
# Exceptions are disabled by default on Windows. (Use /EHsc to enable them.)
if (!is_win) {
- cflags_cc = [ "-fno-exceptions" ]
+ cflags_cc = [ "" ]
}
}
@@ -572,7 +572,7 @@
if (is_win) {
cflags_cc = [ "/GR-" ]
} else {
- cflags_cc = [ "-fno-rtti" ]
+ cflags_cc = [ "" ]
}
}
}
@@ -592,10 +592,6 @@
if (is_mac || is_ios) {
ldflags = [ "-dead_strip" ]
} else {
- cflags += [
- "-fdata-sections",
- "-ffunction-sections",
- ]
ldflags = [ "-Wl,--gc-sections" ]
}
if (target_cpu == "wasm") {
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/canvaskit/compile.sh
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/canvaskit/compile.sh
@@ -358,7 +358,6 @@
-DSK_DISABLE_AAA \
-DSK_FORCE_8_BYTE_ALIGNMENT \
-DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 \
- -fno-rtti \
$WASM_GPU \
$WASM_PATHOPS \
$WASM_RT_SHADER \
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/pathkit/compile.sh
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/pathkit/compile.sh
@@ -113,7 +113,7 @@
--no-entry \
--pre-js $BASE_DIR/helper.js \
--pre-js $BASE_DIR/chaining.js \
--fno-rtti -fno-exceptions -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 \
+-DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 \
$WASM_CONF \
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
-s EXPORT_NAME="PathKitInit" \

View File

@@ -0,0 +1,232 @@
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/dm/DMSrcSink.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/dm/DMSrcSink.cpp
@@ -28,7 +28,7 @@
#include "include/ports/SkImageGeneratorWIC.h"
#include "include/private/SkImageInfoPriv.h"
#include "include/private/SkTLogic.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "include/utils/SkNullCanvas.h"
#include "include/utils/SkPaintFilterCanvas.h"
#include "include/utils/SkRandom.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/experimental/wasm-skp-debugger/compile.sh
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/experimental/wasm-skp-debugger/compile.sh
@@ -130,7 +130,7 @@
$RELEASE_CONF \
-I. \
-Ithird_party/icu \
- -Ithird_party/skcms \
+ -lskcms \
-DSK_DISABLE_AAA \
-DSK_FORCE_8_BYTE_ALIGNMENT \
-std=c++17 \
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gm/pictureshadercache.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gm/pictureshadercache.cpp
@@ -22,7 +22,7 @@
#include "include/core/SkString.h"
#include "include/core/SkSurface.h"
#include "include/core/SkTileMode.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include <utility>
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gm/readpixels.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gm/readpixels.cpp
@@ -23,7 +23,7 @@
#include "include/core/SkString.h"
#include "include/core/SkTypes.h"
#include "include/gpu/GrDirectContext.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "tools/Resources.h"
#include <string.h>
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gn/gn_to_bp.py
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/gn/gn_to_bp.py
@@ -485,10 +485,6 @@
gn_to_bp_utils.GrabDependentValues(js, '//:nanobench', 'sources',
nanobench_srcs, 'skia')
-# skcms is a little special, kind of a second-party library.
-local_includes.add("include/third_party/skcms")
-dm_includes .add("include/third_party/skcms")
-
# Android's build will choke if we list headers.
def strip_headers(sources):
return {s for s in sources if not s.endswith('.h')}
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/core/SkColorSpace.h
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/core/SkColorSpace.h
@@ -11,7 +11,7 @@
#include "include/core/SkRefCnt.h"
#include "include/private/SkFixed.h"
#include "include/private/SkOnce.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include <memory>
class SkData;
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/private/SkEncodedInfo.h
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/private/SkEncodedInfo.h
@@ -12,7 +12,7 @@
#include "include/core/SkData.h"
#include "include/core/SkImageInfo.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
struct SkEncodedInfo {
public:
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/canvaskit/compile.sh
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/canvaskit/compile.sh
@@ -353,7 +353,7 @@
$RELEASE_CONF \
-I. \
-Ithird_party/icu \
- -Ithird_party/skcms \
+ -lskcms \
-Ithird_party/externals/icu/source/common/ \
-DSK_DISABLE_AAA \
-DSK_FORCE_8_BYTE_ALIGNMENT \
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/public.bzl
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/public.bzl
@@ -534,7 +534,6 @@
"include/pathops",
"include/ports",
"include/private",
- "include/third_party/skcms",
"include/utils",
"include/utils/mac",
"src/codec",
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/core/SkColorSpace.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/core/SkColorSpace.cpp
@@ -8,7 +8,7 @@
#include "include/core/SkColorSpace.h"
#include "include/core/SkData.h"
#include "include/private/SkTemplates.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpacePriv.h"
#include "src/core/SkOpts.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/core/SkColorSpaceXformSteps.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/core/SkColorSpaceXformSteps.cpp
@@ -5,7 +5,7 @@
* found in the LICENSE file.
*/
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpacePriv.h"
#include "src/core/SkColorSpaceXformSteps.h"
#include "src/core/SkRasterPipeline.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/gpu/GrDataUtils.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/gpu/GrDataUtils.cpp
@@ -8,7 +8,7 @@
#include "src/gpu/GrDataUtils.h"
#include "include/private/SkTPin.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpaceXformSteps.h"
#include "src/core/SkCompressedDataUtils.h"
#include "src/core/SkConvertPixels.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/images/SkImageEncoderFns.h
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/src/images/SkImageEncoderFns.h
@@ -12,7 +12,7 @@
#include "include/core/SkICC.h"
#include "include/core/SkTypes.h"
#include "include/private/SkColorData.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
typedef void (*transform_scanline_proc)(char* dst, const char* src, int width, int bpp);
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/AndroidCodecTest.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/AndroidCodecTest.cpp
@@ -18,7 +18,7 @@
#include "include/core/SkSize.h"
#include "include/core/SkString.h"
#include "include/core/SkTypes.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/codec/SkCodecImageGenerator.h"
#include "src/core/SkPixmapPriv.h"
#include "tests/Test.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/CodecTest.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/CodecTest.cpp
@@ -37,7 +37,7 @@
#include "include/encode/SkWebpEncoder.h"
#include "include/private/SkMalloc.h"
#include "include/private/SkTemplates.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "include/utils/SkRandom.h"
#include "src/codec/SkCodecImageGenerator.h"
#include "src/core/SkAutoMalloc.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/ColorSpaceTest.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/ColorSpaceTest.cpp
@@ -12,7 +12,7 @@
#include "include/core/SkRefCnt.h"
#include "include/core/SkStream.h"
#include "include/core/SkTypes.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpacePriv.h"
#include "tests/Test.h"
#include "tools/Resources.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/ICCTest.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/ICCTest.cpp
@@ -9,7 +9,7 @@
#include "include/core/SkICC.h"
#include "include/core/SkString.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpacePriv.h"
#include "tests/Test.h"
#include "tools/Resources.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/NonlinearBlendingTest.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tests/NonlinearBlendingTest.cpp
@@ -6,7 +6,7 @@
*/
#include "include/core/SkColorSpace.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpaceXformSteps.h"
#include "tests/Test.h"
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/doxygen/Doxyfile
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/doxygen/Doxyfile
@@ -795,7 +795,6 @@
../../include/docs \
../../include/gpu \
../../include/pathops \
- ../../third_party/skcms \
../../modules/particles/include \
../../modules/skottie/include \
../../modules/sksg/include \
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/imgcvt.cpp
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/imgcvt.cpp
@@ -10,7 +10,7 @@
#include "include/core/SkImage.h"
#include "include/core/SkStream.h"
#include "include/core/SkSurface.h"
-#include "include/third_party/skcms/skcms.h"
+#include "skcms.h"
#include "src/core/SkColorSpacePriv.h"
static void write_png(const char* path, sk_sp<SkImage> img) {
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/rewrite_includes.py
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/rewrite_includes.py
@@ -76,8 +76,7 @@
need_rewriting = []
for file_path in to_rewrite():
if ('/generated/' in file_path or
- 'tests/sksl/' in file_path or
- 'third_party/skcms' in file_path):
+ 'tests/sksl/' in file_path):
continue
if (file_path.endswith('.h') or
file_path.endswith('.c') or

View File

@@ -0,0 +1,52 @@
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -93,7 +93,7 @@
"GR_TEST_UTILS=1",
]
}
- libs = []
+ libs = [ "skcms" ]
lib_dirs = []
if (skia_use_gl && skia_use_angle) {
defines += [ "SK_ANGLE" ]
@@ -1110,21 +1110,6 @@
sources = [ "src/codec/SkRawCodec.cpp" ]
}
-import("third_party/skcms/skcms.gni")
-skia_source_set("skcms") {
- cflags = []
- if (!is_win || is_clang) {
- cflags += [
- "-w",
- "-std=c11",
- ]
- }
-
- public = [ "include/third_party/skcms/skcms.h" ]
- include_dirs = [ "include/third_party/skcms" ]
- sources = rebase_path(skcms_sources, ".", "third_party/skcms")
-}
-
optional("typeface_freetype") {
enabled = skia_use_freetype
@@ -1225,7 +1210,6 @@
":gpu",
":graphite",
":pdf",
- ":skcms",
":xps",
]
@@ -2096,9 +2080,9 @@
test_app("imgcvt") {
sources = [ "tools/imgcvt.cpp" ]
deps = [
- ":skcms",
":skia",
]
+ libs = [ "skcms" ]
}
test_app("fm") {
sources = [

View File

@@ -0,0 +1,101 @@
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/BUILD.gn
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/BUILD.gn
@@ -1479,10 +1479,6 @@
deps = [ "experimental/sktext" ]
}
-config("our_vulkan_headers") {
- include_dirs = [ "include/third_party/vulkan" ]
-}
-
# Targets guarded by skia_enable_tools may use //third_party freely.
if (skia_enable_tools) {
skia_public_includes = [
@@ -1569,7 +1565,6 @@
skia_source_set("public_headers_warnings_check") {
sources = [ "tools/public_headers_warnings_check.cpp" ]
configs = [
- ":our_vulkan_headers",
":cpp14",
]
if (defined(skia_header_target_default_configs)) {
@@ -1681,10 +1676,6 @@
test_lib("gpu_tool_utils") {
public_defines = []
- # Bots and even devs may not have Vulkan headers, so put
- # include/third_party/vulkan on our path so they're always available.
- all_dependent_configs = [ ":our_vulkan_headers" ]
-
defines = []
if (skia_enable_discrete_gpu) {
defines += [ "SK_ENABLE_DISCRETE_GPU" ]
@@ -2204,7 +2195,6 @@
test_app("skpinfo") {
sources = [ "tools/skpinfo.cpp" ]
- configs = [ ":our_vulkan_headers" ]
deps = [
":flags",
":skia",
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/gpu/vk/GrVkVulkan.h
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/include/gpu/vk/GrVkVulkan.h
@@ -11,7 +11,7 @@
#include "include/core/SkTypes.h"
#if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
-#include "include/third_party/vulkan/vulkan/vulkan_core.h"
+#include "vulkan/vulkan_core.h"
#else
// For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
// headers stay up to date for our needs
@@ -21,7 +21,7 @@
#ifdef SK_BUILD_FOR_ANDROID
// This is needed to get android extensions for external memory
#if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
-#include "include/third_party/vulkan/vulkan/vulkan_android.h"
+#include "vulkan/vulkan_android.h"
#else
// For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
// headers stay up to date for our needs
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/particles/BUILD.gn
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/modules/particles/BUILD.gn
@@ -27,7 +27,6 @@
sources = skia_particle_sources
configs += [
"../../:skia_private",
- "../../:our_vulkan_headers",
]
}
}
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/third_party/vulkanmemoryallocator/BUILD.gn
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/third_party/vulkanmemoryallocator/BUILD.gn
@@ -12,7 +12,6 @@
include_dirs = [
"../..",
- "../../include/third_party/vulkan",
]
sources = [
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/check-headers-self-sufficient
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/check-headers-self-sufficient
@@ -32,7 +32,6 @@
r'include/private/.*_impl\.h',
r'include/private/.*_neon\.h',
r'include/private/.*_sse\.h',
- r'include/third_party/vulkan/.*',
r'include/utils/mac/SkCGUtils\.h',
r'include/views/SkOSWindow_.*\.h',
r'modules/.*',
--- /var/tmp/portage/media-libs/skia-97-r1/work/skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/rewrite_includes.py
+++ skia-f2093bf1b076210bd017f237eaab84ea4d3d6771/tools/rewrite_includes.py
@@ -43,7 +43,7 @@
# Don't count our local Vulkan headers as Skia headers;
# we don't want #include <vulkan/vulkan_foo.h> rewritten to point to them.
# Nor do we care about things in node_modules, used by *Kits.
-ignorelist = ['include/third_party/vulkan', 'node_modules']
+ignorelist = ['node_modules']
assert '/' in [os.sep, os.altsep]
def fix_path(p):

View File

@@ -0,0 +1,16 @@
--- a/third_party/zlib/BUILD.gn
+++ b/third_party/zlib/BUILD.gn
@@ -196,13 +196,3 @@
config("zlib_config") {
}
-
-third_party("compression_utils_portable") {
- visibility = [ "//third_party/externals/angle2:*" ]
- public_include_dirs = [ "../externals/zlib/google" ]
- sources = [
- "../externals/zlib/google/compression_utils_portable.cc",
- "../externals/zlib/google/compression_utils_portable.h",
- ]
- public_deps = [ ":zlib" ] # either system or from source
-}

View File

@@ -8,7 +8,14 @@
</maintainer>
<longdescription lang="en">
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.
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.
</longdescription>
<use>
<flag name="ccpr">enable coverage counting path renderer</flag>
<flag name="freetype">enable <pkg>media-libs/freetype</pkg> support</flag>
<flag name="harfbuzz">enable <pkg>media-libs/harfbuzz</pkg> support</flag>
<flag name="lottie">Play back bodymovin lottie files</flag>
<flag name="opencl">enable opencl support</flag>
<flag name="rive">enable support for rive files</flag>
<flag name="vulkan">enable vulkan backend</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,213 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_9 )
inherit ninja-utils python-any-r1 toolchain-funcs
#https://github.com/google/skia/blob/master/include/core/SkMilestone.h
COMMIT="f2093bf1b076210bd017f237eaab84ea4d3d6771"
DESCRIPTION="A complete 2D graphic library for drawing Text, Geometries, and Images"
HOMEPAGE="
https://skia.org
https://github.com/google/skia
"
SRC_URI="https://github.com/google/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
KEYWORDS="~amd64"
LICENSE="BSD"
SLOT="0"
IUSE="+ccpr debug ffmpeg +fontconfig +freetype +harfbuzz +icu jit +jpeg +lottie lua opencl +opengl +pdf +png +rive vulkan +webp +zlib +X +xml"
#TODO: find out how to enable and link: angle dawn piex sfntly wuffs
CDEPEND="
media-libs/skcms:=
ffmpeg? ( media-video/ffmpeg )
fontconfig? ( media-libs/fontconfig )
freetype? ( media-libs/freetype )
harfbuzz? ( media-libs/harfbuzz:=[icu?] )
icu? ( dev-libs/icu:= )
jpeg? ( media-libs/libjpeg-turbo )
lua? ( dev-lang/lua:* )
opengl? ( virtual/opengl )
png? ( media-libs/libpng )
webp? ( media-libs/libwebp )
xml? ( dev-libs/expat )
zlib? ( sys-libs/zlib )
"
RDEPEND="
${CDEPEND}
opencl? ( virtual/opencl )
"
DEPEND="
${PYTHON_DEPS}
${CDEPEND}
opencl? ( dev-util/opencl-headers )
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/gn"
PATCHES=(
"${FILESDIR}/${P}-system-skcms-headers.patch"
"${FILESDIR}/${P}-system-skcms.patch"
"${FILESDIR}/${P}-system-vulkan.patch"
"${FILESDIR}/${P}-questionable-flags.patch"
"${FILESDIR}/${P}-system-zlib.patch"
)
REQUIRED_USE="
X? ( opengl )
"
src_prepare() {
rm -r include/third_party/* || die
rm -r third_party/skcms || die
default
}
src_configure() {
python_setup
tc-export AR CC CXX
local myconf_gn=()
passflags() {
local _f _x
_f=( ${1} )
_x="[$(printf '"%s", ' "${_f[@]}")]"
myconf_gn+=( extra_${2}="${_x}" )
}
passflags "${CFLAGS}" cflags_c
passflags "${CXXFLAGS}" cflags_cc
passflags "${LDFLAGS}" ldflags
# skia_qt_path = getenv("QT_PATH") #todo
myconf_gn+=(
ar=\"${AR}\"
cc=\"${CC}\"
cxx=\"${CXX}\"
is_component_build=false
is_official_build=true
is_shared_library=true
skia_build_fuzzers=false
skia_compile_sksl_tests=false
skia_enable_android_utils=false #android
skia_enable_api_available_macro = true
skia_enable_flutter_defines = false
skia_enable_fontmgr_android=false #android
skia_enable_fontmgr_win_gdi=false #windows
skia_enable_nga=false
skia_enable_tools=false
skia_enable_winuwp = false
skia_generate_workarounds = false
skia_include_multiframe_procs = false
skia_lex = false
skia_skqp_global_error_tolerance=0
skia_update_fuchsia_sdk=false #fuchsia
skia_use_angle=false #todo
skia_use_dawn=false #todo
skia_use_direct3d=false #windows
skia_use_dng_sdk=false
skia_use_libheif=false #android only
skia_use_experimental_xform=false
skia_use_fixed_gamma_text=false #android
skia_use_fonthost_mac=false #mac
skia_use_libgifcodec=false #todo
skia_use_metal=false #ios
skia_use_ndk_images=false #android
skia_use_piex=false #todo
skia_use_sfml=false #todo
skia_use_sfntly=false #todo
skia_use_webgl=false #todo
skia_use_wuffs=false #todo
skia_use_xps=false #windows
skia_compile_processors = $(usex processors true false)
skia_enable_ccpr=$(usex cppr true false)
skia_enable_gpu=$(usex gpu true false)
skia_enable_gpu_debug_layers=$(usex debug true false)
skia_enable_pdf=$(usex pdf true false)
skia_enable_skottie=$(usex lottie true false)
skia_enable_skrive=$(usex rive true false)
skia_enable_skvm_jit_when_possible=$(usex jit true false)
skia_enable_svg=$(usex svg true false)
skia_pdf_subset_harfbuzz =$(usex harfbuzz true false)
skia_use_egl=$(usex opengl true false)
skia_use_expat=$(usex xml true false)
skia_use_ffmpeg=$(usex ffmpeg true false)
skia_use_fontconfig=$(usex fontconfig true false)
skia_use_gl=$(usex opengl true false)
skia_use_harfbuzz=$(usex harfbuzz true false)
skia_use_icu=$(usex icu true false)
skia_use_libjpeg_turbo_decode=$(usex jpeg true false)
skia_use_libjpeg_turbo_encode=$(usex jpeg true false)
skia_use_libpng_decode=$(usex png true false)
skia_use_libpng_encode=$(usex png true false)
skia_use_libwebp_decode=$(usex webp true false)
skia_use_libwebp_encode=$(usex webp true false)
skia_use_lua=$(usex lua true false)
skia_use_opencl=$(usex opencl true false)
skia_use_vma=$(usex vulkan true false)
skia_use_vulkan=$(usex vulkan true false)
skia_use_x11=$(usex X true false)
skia_use_zlib=$(usex zlib true false)
)
if use freetype; then
myconf_gn+=( skia_enable_fontmgr_custom_directory=true )
myconf_gn+=( skia_enable_fontmgr_custom_embedded=true )
myconf_gn+=( skia_enable_fontmgr_custom_empty=true )
myconf_gn+=( skia_use_freetype=true )
myconf_gn+=( skia_use_system_freetype2=true )
if use fontconfig; then
myconf_gn+=( skia_enable_fontmgr_fontconfig=true )
myconf_gn+=( skia_enable_fontmgr_FontConfigInterface=true )
fi
else
myconf_gn+=( skia_enable_fontmgr_custom_directory=false )
myconf_gn+=( skia_enable_fontmgr_custom_embedded=false )
myconf_gn+=( skia_enable_fontmgr_custom_empty=false )
myconf_gn+=( skia_use_freetype=false )
myconf_gn+=( skia_use_system_freetype2=false )
fi
if ! use freetype !! ! use fontconfig; then
myconf_gn+=( skia_enable_fontmgr_fontconfig=false )
myconf_gn+=( skia_enable_fontmgr_FontConfigInterface=false )
fi
# skia_use_angle=$(usex angle true false)
# skia_use_piex=$(usex piex true false)
# skia_use_sfntly=$(usex sfntly true false)
# skia_use_wuffs=$(usex wuffs true false)
use harfbuzz && myconf_gn+=( skia_use_system_harfbuzz=true )
use icu && myconf_gn+=( skia_use_system_icu=true )
use jpeg && myconf_gn+=( skia_use_system_libjpeg_turbo=true )
use lua && myconf_gn+=( skia_use_system_lua=true )
use png && myconf_gn+=( skia_use_system_libpng=true )
use webp && myconf_gn+=( skia_use_system_libwebp=true )
use zlib && myconf_gn+=( skia_use_system_zlib=true )
myconf_gn="${myconf_gn[@]} ${EXTRA_GN}"
set -- gn gen --args="${myconf_gn% }" out/Release || die
echo "$@"
"$@" || die
}
src_compile() {
eninja -C out/Release
}
src_install() {
dolib.so out/Release/*.so
insinto "/usr/include/${PN}"
doins -r include/.
}