diff options
Diffstat (limited to 'graphics/libskiasharp')
| -rw-r--r-- | graphics/libskiasharp/Makefile | 27 | ||||
| -rw-r--r-- | graphics/libskiasharp/distinfo | 8 | ||||
| -rw-r--r-- | graphics/libskiasharp/files/libskiasharp.map | 10 | ||||
| -rw-r--r-- | graphics/libskiasharp/files/patch-src_codec_SkJpegCodec.cpp | 55 | ||||
| -rw-r--r-- | graphics/libskiasharp/files/patch-src_core_SkRasterPipeline.h | 11 |
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 |
