summaryrefslogtreecommitdiff
path: root/graphics/libskiasharp
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/libskiasharp')
-rw-r--r--graphics/libskiasharp/Makefile27
-rw-r--r--graphics/libskiasharp/distinfo8
-rw-r--r--graphics/libskiasharp/files/libskiasharp.map10
-rw-r--r--graphics/libskiasharp/files/patch-src_codec_SkJpegCodec.cpp55
-rw-r--r--graphics/libskiasharp/files/patch-src_core_SkRasterPipeline.h11
5 files changed, 90 insertions, 21 deletions
diff --git a/graphics/libskiasharp/Makefile b/graphics/libskiasharp/Makefile
index d8a43fb8c120..651883ca6b57 100644
--- a/graphics/libskiasharp/Makefile
+++ b/graphics/libskiasharp/Makefile
@@ -1,10 +1,8 @@
PORTNAME= libskiasharp
DISTVERSIONPREFIX= v
-DISTVERSION= 2.88.3
-PORTREVISION= 2
+DISTVERSION= 116
+PORTREVISION= 3
CATEGORIES= graphics
-MASTER_SITES= LOCAL/bapt:libjpeg_turbo
-DISTFILES= libjpeg_turbo-${LIBJPEG_TURBO_REV}.tar.gz:libjpeg_turbo
MAINTAINER= bapt@FreeBSD.org
COMMENT= Complete 2D graphic library for drawing Text, Geometries, and Images
@@ -25,15 +23,13 @@ USES= jpeg ninja python:build
USE_GITHUB= yes
GH_ACCOUNT= mono
GH_PROJECT= skia
-
-LIBJPEG_TURBO_REV= 22f1a22c99e9dde8cd3c72ead333f425c5a7aa77
+GH_TAGNAME= c16e913577083761d847146db7a04b8d3b3bf755
USE_LDCONFIG= yes
USE_BINUTILS= yes
-SOVERSION= 118.0.0
-#
-# see https://github.com/libjpeg-turbo/libjpeg-turbo/issues/795#issuecomment-2484148592
+SOVERSION= 116.0.0
+
GN_ARGS= is_official_build=true \
skia_enable_tools=false \
target_os="linux" \
@@ -41,13 +37,15 @@ GN_ARGS= is_official_build=true \
skia_use_sfntly=false \
skia_use_piex=true \
skia_use_harfbuzz=false \
+ skia_use_wuffs=false \
skia_use_system_expat=true \
- skia_use_system_libjpeg_turbo=false \
+ skia_use_system_libjpeg_turbo=true \
skia_use_system_freetype2=true \
skia_use_system_libpng=true \
skia_use_system_libwebp=true \
skia_use_system_zlib=true \
skia_enable_gpu=true \
+ ska_enable_ganesh=true \
skia_enable_skottie=true \
skia_enable_pdf=true \
skia_use_dng_sdk=false \
@@ -55,10 +53,11 @@ GN_ARGS= is_official_build=true \
"-DSKIA_C_DLL", \
"-I${LOCALBASE}/include", \
"-I${LOCALBASE}/include/freetype2"] \
- extra_ldflags=["-L${LOCALBASE}/lib"] \
+ extra_ldflags=["-L${LOCALBASE}/lib", \
+ "-Wl,--version-script=${FILESDIR}/libskiasharp.map" ] \
linux_soname_version="${SOVERSION}"
-BINARY_ALIAS= python=${PYTHON_CMD} \
+BINARY_ALIAS= python3=${PYTHON_CMD} \
ar=${LOCALBASE}/bin/ar
ALL_TARGET= SkiaSharp
@@ -67,10 +66,6 @@ BUILD_WRKSRC= ${WRKSRC}/out
PLIST_FILES= lib/libSkiaSharp.so \
lib/libSkiaSharp.so.${SOVERSION}
-post-extract:
- ${MKDIR} ${WRKSRC}/third_party/externals
- ${RLN} ${WRKDIR}/libjpeg_turbo ${WRKSRC}/third_party/externals/libjpeg-turbo
-
do-configure:
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} gn gen 'out' --args='${GN_ARGS}'
diff --git a/graphics/libskiasharp/distinfo b/graphics/libskiasharp/distinfo
index 68dc2ab49ef0..e5f8eaf8749e 100644
--- a/graphics/libskiasharp/distinfo
+++ b/graphics/libskiasharp/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1732007783
-SHA256 (libjpeg_turbo-22f1a22c99e9dde8cd3c72ead333f425c5a7aa77.tar.gz) = 774aadf0ae4827ce77645442f8fba552c0be068c0bec7933fa99f4a490931433
-SIZE (libjpeg_turbo-22f1a22c99e9dde8cd3c72ead333f425c5a7aa77.tar.gz) = 2382951
-SHA256 (mono-skia-v2.88.3_GH0.tar.gz) = 899ee3693575dd5f1e769070672253beb03ece414ab2803228e346889f268dda
-SIZE (mono-skia-v2.88.3_GH0.tar.gz) = 51816808
+TIMESTAMP = 1761315942
+SHA256 (mono-skia-v116-c16e913577083761d847146db7a04b8d3b3bf755_GH0.tar.gz) = 3fd17a42cca9a7dbde68ab016969b70ab7dd4833403ac1a192e1aa51aed4617b
+SIZE (mono-skia-v116-c16e913577083761d847146db7a04b8d3b3bf755_GH0.tar.gz) = 60049970
diff --git a/graphics/libskiasharp/files/libskiasharp.map b/graphics/libskiasharp/files/libskiasharp.map
new file mode 100644
index 000000000000..c10403496de8
--- /dev/null
+++ b/graphics/libskiasharp/files/libskiasharp.map
@@ -0,0 +1,10 @@
+libSkiaSharp {
+ global:
+ sk_*;
+ gr_*;
+ skottie_*;
+ sksg_*;
+ skresources_*;
+ local:
+ *;
+};
diff --git a/graphics/libskiasharp/files/patch-src_codec_SkJpegCodec.cpp b/graphics/libskiasharp/files/patch-src_codec_SkJpegCodec.cpp
new file mode 100644
index 000000000000..a03a0306500d
--- /dev/null
+++ b/graphics/libskiasharp/files/patch-src_codec_SkJpegCodec.cpp
@@ -0,0 +1,55 @@
+--- src/codec/SkJpegCodec.cpp.orig 2024-10-24 03:17:23 UTC
++++ src/codec/SkJpegCodec.cpp
+@@ -426,16 +426,19 @@ SkISize SkJpegCodec::onGetScaledDimensions(float desir
+ num = 1;
+ }
+
+- // Set up a fake decompress struct in order to use libjpeg to calculate output dimensions
++ // Set up a fake decompress struct in order to use libjpeg to calculate output dimensions.
++ // This isn't conventional use of libjpeg-turbo but initializing the decompress struct with
++ // jpeg_create_decompress allows for less violation of the API regardless of the version.
+ jpeg_decompress_struct dinfo;
+- sk_bzero(&dinfo, sizeof(dinfo));
++ jpeg_create_decompress(&dinfo);
+ dinfo.image_width = this->dimensions().width();
+ dinfo.image_height = this->dimensions().height();
+ dinfo.global_state = fReadyState;
+ calc_output_dimensions(&dinfo, num, denom);
++ SkISize outputDimensions = SkISize::Make(dinfo.output_width, dinfo.output_height);
++ jpeg_destroy_decompress(&dinfo);
+
+- // Return the calculated output dimensions for the given scale
+- return SkISize::Make(dinfo.output_width, dinfo.output_height);
++ return outputDimensions;
+ }
+
+ bool SkJpegCodec::onRewind() {
+@@ -534,9 +537,11 @@ bool SkJpegCodec::onDimensionsSupported(const SkISize&
+ const unsigned int dstHeight = size.height();
+
+ // Set up a fake decompress struct in order to use libjpeg to calculate output dimensions
++ // This isn't conventional use of libjpeg-turbo but initializing the decompress struct with
++ // jpeg_create_decompress allows for less violation of the API regardless of the version.
+ // FIXME: Why is this necessary?
+ jpeg_decompress_struct dinfo;
+- sk_bzero(&dinfo, sizeof(dinfo));
++ jpeg_create_decompress(&dinfo);
+ dinfo.image_width = this->dimensions().width();
+ dinfo.image_height = this->dimensions().height();
+ dinfo.global_state = fReadyState;
+@@ -549,6 +554,7 @@ bool SkJpegCodec::onDimensionsSupported(const SkISize&
+
+ // Return a failure if we have tried all of the possible scales
+ if (1 == num || dstWidth > dinfo.output_width || dstHeight > dinfo.output_height) {
++ jpeg_destroy_decompress(&dinfo);
+ return false;
+ }
+
+@@ -556,6 +562,7 @@ bool SkJpegCodec::onDimensionsSupported(const SkISize&
+ num -= 1;
+ calc_output_dimensions(&dinfo, num, denom);
+ }
++ jpeg_destroy_decompress(&dinfo);
+
+ fDecoderMgr->dinfo()->scale_num = num;
+ fDecoderMgr->dinfo()->scale_denom = denom;
diff --git a/graphics/libskiasharp/files/patch-src_core_SkRasterPipeline.h b/graphics/libskiasharp/files/patch-src_core_SkRasterPipeline.h
new file mode 100644
index 000000000000..e7b489010508
--- /dev/null
+++ b/graphics/libskiasharp/files/patch-src_core_SkRasterPipeline.h
@@ -0,0 +1,11 @@
+--- src/core/SkRasterPipeline.h.orig 2025-11-18 06:35:10 UTC
++++ src/core/SkRasterPipeline.h
+@@ -24,7 +24,7 @@ struct skcms_TransferFunction;
+ struct SkImageInfo;
+ struct skcms_TransferFunction;
+
+-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32)
++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__)
+ #define SK_HAS_MUSTTAIL 1
+ #else
+ #define SK_HAS_MUSTTAIL 0