diff --git a/graphics/libjxl/Makefile b/graphics/libjxl/Makefile index 843bf74a3b54..8de3e64d4913 100644 --- a/graphics/libjxl/Makefile +++ b/graphics/libjxl/Makefile @@ -1,87 +1,85 @@ PORTNAME= libjxl DISTVERSIONPREFIX= v DISTVERSION= 0.5 PORTREVISION= 1 CATEGORIES= graphics PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= adb32f3f8f37.patch:-p1 # https://github.com/libjxl/libjxl/pull/193 MAINTAINER= jbeich@FreeBSD.org COMMENT= JPEG XL reference encoder/decoder LICENSE= BSD3CLAUSE ZLIB LICENSE_COMB= multi LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/LICENSE LICENSE_FILE_ZLIB= ${WRKSRC}/third_party/lodepng/LICENSE -BROKEN_powerpc64= https://github.com/google/highway/issues/345 - LIB_DEPENDS= libbrotlienc.so:archivers/brotli TEST_DEPENDS= googletest>0:devel/googletest USES= cmake:testing compiler:c++11-lib localbase:ldflags pkgconfig shared-mime-info USE_GITHUB= yes USE_LDCONFIG= yes GH_TUPLE= barmco:skcms:6437475:skcms/third_party/skcms \ google:highway:0.12.2-4-ge239774:highway/third_party/highway \ lvandeve:lodepng:48e5364:lodepng/third_party/lodepng \ webmproject:sjpeg:868ab55:sjpeg/third_party/sjpeg \ ${NULL} CMAKE_ON= JPEGXL_ENABLE_PLUGINS CMAKE_OFF= JPEGXL_WARNINGS_AS_ERRORS ${BENCHMARK FUZZERS TCMALLOC:L:S/^/JPEGXL_ENABLE_/} CMAKE_OFF+= ${OpenGL GLUT:L:S/^/CMAKE_DISABLE_FIND_PACKAGE_/} # sjpeg CMAKE_OFF+= ${CMAKE_TESTING_ON} LDFLAGS+= -Wl,--as-needed # brotlicommon, GIMP/OPENEXR/PNG deps OPTIONS_DEFINE= GIF GIMP JPEG LTO MANPAGES OPENEXR PIXBUF PNG OPTIONS_DEFAULT=GIF GIMP JPEG LTO MANPAGES OPENEXR PIXBUF PNG OPTIONS_EXCLUDE_i386= LTO # ConvolutionWithTranspose(): JXL_CHECK: out->xsize() == in.ysize() OPTIONS_EXCLUDE_powerpc64= ${"${/usr/bin/ld:L:tA}"==/usr/bin/ld.lld:?LTO:} # LLVM bug 47353 OPTIONS_SUB= yes GIF_LIB_DEPENDS= libgif.so:graphics/giflib GIF_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_GIF GIMP_DESC= GIMP plugin support GIMP_LIB_DEPENDS= libgegl-0.4.so:graphics/gegl \ libgimp-2.0.so:graphics/gimp-app \ libbabl-0.1.so:x11/babl JPEG_USES= jpeg JPEG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_JPEG LTO_CMAKE_BOOL= CMAKE_INTERPROCEDURAL_OPTIMIZATION LTO_CMAKE_ON= -DCMAKE_POLICY_DEFAULT_CMP0069:STRING=NEW .if exists(/usr/bin/ld.lld) && ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld # --plugin isn't supported by old GNU ld.bfd in base LTO_LDFLAGS= -fuse-ld=lld .endif MANPAGES_BUILD_DEPENDS= a2x:textproc/asciidoc MANPAGES_USES= python:build MANPAGES_CMAKE_BOOL= JPEGXL_ENABLE_MANPAGES OPENEXR_LIB_DEPENDS= libImath.so:math/Imath \ libOpenEXR.so:graphics/openexr OPENEXR_CMAKE_BOOL= JPEGXL_ENABLE_OPENEXR PIXBUF_USES= gnome PIXBUF_USE= GNOME=gdkpixbuf2 PNG_LIB_DEPENDS= libpng.so:graphics/png PNG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_PNG post-patch: @${REINPLACE_CMD} 's,/usr,${LOCALBASE},' \ ${WRKSRC}/plugins/gdk-pixbuf/jxl.thumbnailer ${REINPLACE_CMD} 's,OpenEXR::Int64,uint64_t,' \ ${WRKSRC}/lib/extras/codec_exr.cc # pkg_check_modules doesn't support CMAKE_DISABLE_* post-patch-GIMP-off: @${REINPLACE_CMD} -i.nogimp '/gimp/d' ${WRKSRC}/plugins/CMakeLists.txt post-patch-PIXBUF-off: @${REINPLACE_CMD} -i.nopixbuf '/gdk-pixbuf/d' ${WRKSRC}/plugins/CMakeLists.txt .include diff --git a/graphics/libjxl/files/patch-third__party_highway_hwy_nanobenchmark.cc b/graphics/libjxl/files/patch-third__party_highway_hwy_nanobenchmark.cc index a4dcea0f17e3..50e151fd7a30 100644 --- a/graphics/libjxl/files/patch-third__party_highway_hwy_nanobenchmark.cc +++ b/graphics/libjxl/files/patch-third__party_highway_hwy_nanobenchmark.cc @@ -1,30 +1,38 @@ ---- third_party/highway/hwy/nanobenchmark.cc.orig 2021-09-30 15:38:30 UTC +--- third_party/highway/hwy/nanobenchmark.cc.orig 2021-06-09 08:56:32 UTC +++ third_party/highway/hwy/nanobenchmark.cc -@@ -47,7 +47,12 @@ +@@ -46,7 +46,7 @@ + #endif #include "hwy/base.h" - #if HWY_ARCH_PPC -+#if linux +-#if HWY_ARCH_PPC ++#if HWY_ARCH_PPC && defined(__GLIBC__) #include // NOLINT __ppc_get_timebase_freq -+#elif __FreeBSD__ -+#include -+#include /* must come after sys/types.h */ -+#endif #elif HWY_ARCH_X86 - #if HWY_COMPILER_MSVC -@@ -400,7 +405,14 @@ double NominalClockRate() { +@@ -119,7 +119,7 @@ using Ticks = uint64_t; + // divide by InvariantTicksPerSecond. + inline Ticks Start() { + Ticks t; +-#if HWY_ARCH_PPC ++#if HWY_ARCH_PPC && defined(__GLIBC__) + asm volatile("mfspr %0, %1" : "=r"(t) : "i"(268)); + #elif HWY_ARCH_X86 && HWY_COMPILER_MSVC + _ReadWriteBarrier(); +@@ -161,7 +161,7 @@ inline Ticks Start() { + + inline Ticks Stop() { + uint64_t t; +-#if HWY_ARCH_PPC ++#if HWY_ARCH_PPC && defined(__GLIBC__) + asm volatile("mfspr %0, %1" : "=r"(t) : "i"(268)); + #elif HWY_ARCH_X86 && HWY_COMPILER_MSVC + _ReadWriteBarrier(); +@@ -399,7 +399,7 @@ double NominalClockRate() { + } // namespace double InvariantTicksPerSecond() { - #if HWY_ARCH_PPC -+#if linux +-#if HWY_ARCH_PPC ++#if HWY_ARCH_PPC && defined(__GLIBC__) return __ppc_get_timebase_freq(); -+#elif __FreeBSD__ -+ static double cycles_per_second = 0; -+ size_t length = sizeof(cycles_per_second); -+ sysctlbyname("kern.timecounter.tc.timebase.frequency", &cycles_per_second, -+ &length, NULL, 0); -+#endif #elif HWY_ARCH_X86 // We assume the TSC is invariant; it is on all recent Intel/AMD CPUs. - return NominalClockRate();