From 49e50a8a5c03b15294661dc6f1bccbd1f9fabdaf Mon Sep 17 00:00:00 2001 From: Alessandro Barbieri Date: Thu, 10 Mar 2022 01:39:20 +0100 Subject: [PATCH] media-libs/skia: update EAPI 7 -> 8 Signed-off-by: Alessandro Barbieri --- .../files/skia-97-questionable-flags.patch | 52 ++++ .../files/skia-97-system-skcms-headers.patch | 232 ++++++++++++++++++ .../skia/files/skia-97-system-skcms.patch | 52 ++++ .../skia/files/skia-97-system-vulkan.patch | 101 ++++++++ .../skia/files/skia-97-system-zlib.patch | 16 ++ media-libs/skia/metadata.xml | 11 +- media-libs/skia/skia-97-r1.ebuild | 213 ++++++++++++++++ 7 files changed, 675 insertions(+), 2 deletions(-) create mode 100644 media-libs/skia/files/skia-97-questionable-flags.patch create mode 100644 media-libs/skia/files/skia-97-system-skcms-headers.patch create mode 100644 media-libs/skia/files/skia-97-system-skcms.patch create mode 100644 media-libs/skia/files/skia-97-system-vulkan.patch create mode 100644 media-libs/skia/files/skia-97-system-zlib.patch create mode 100644 media-libs/skia/skia-97-r1.ebuild diff --git a/media-libs/skia/files/skia-97-questionable-flags.patch b/media-libs/skia/files/skia-97-questionable-flags.patch new file mode 100644 index 0000000000..ee1aaea7e5 --- /dev/null +++ b/media-libs/skia/files/skia-97-questionable-flags.patch @@ -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" \ diff --git a/media-libs/skia/files/skia-97-system-skcms-headers.patch b/media-libs/skia/files/skia-97-system-skcms-headers.patch new file mode 100644 index 0000000000..c46b77276e --- /dev/null +++ b/media-libs/skia/files/skia-97-system-skcms-headers.patch @@ -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 + +--- /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 +--- /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 + + 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 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 diff --git a/media-libs/skia/files/skia-97-system-skcms.patch b/media-libs/skia/files/skia-97-system-skcms.patch new file mode 100644 index 0000000000..40bd695160 --- /dev/null +++ b/media-libs/skia/files/skia-97-system-skcms.patch @@ -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 = [ diff --git a/media-libs/skia/files/skia-97-system-vulkan.patch b/media-libs/skia/files/skia-97-system-vulkan.patch new file mode 100644 index 0000000000..c14ffbf07b --- /dev/null +++ b/media-libs/skia/files/skia-97-system-vulkan.patch @@ -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 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): diff --git a/media-libs/skia/files/skia-97-system-zlib.patch b/media-libs/skia/files/skia-97-system-zlib.patch new file mode 100644 index 0000000000..6fb0aef472 --- /dev/null +++ b/media-libs/skia/files/skia-97-system-zlib.patch @@ -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 +-} diff --git a/media-libs/skia/metadata.xml b/media-libs/skia/metadata.xml index 44de944f4b..c4eacab6f3 100644 --- a/media-libs/skia/metadata.xml +++ b/media-libs/skia/metadata.xml @@ -8,7 +8,14 @@ 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. + + enable coverage counting path renderer + enable media-libs/freetype support + enable media-libs/harfbuzz support + Play back bodymovin lottie files + enable opencl support + enable support for rive files + enable vulkan backend + diff --git a/media-libs/skia/skia-97-r1.ebuild b/media-libs/skia/skia-97-r1.ebuild new file mode 100644 index 0000000000..cf53c41dfa --- /dev/null +++ b/media-libs/skia/skia-97-r1.ebuild @@ -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/. +}