summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2021-02-25 18:32:23 +0000
committerJan Beich <jbeich@FreeBSD.org>2021-02-25 18:32:23 +0000
commit32c2b95c682ed7d483bc34cf9569b260e5a8bcf7 (patch)
treef052e4ec1b2dcb1a0c9ee6e2af5c9c6fefaab288
parentdevel/ghq: Update to 1.1.6 and pass maintainership to submitter (diff)
graphics/jpeg-xl: enable LTO by default
3% faster at least with -s 9 (tortoise) and 2100x2800 input. Beware of dragons on non-amd64 e.g., $ cjxl -s 9 foo.png foo.jxl J P E G \/ | /\ |_ e n c o d e r [v0.3.2 | SIMD supported: SSE4,Scalar] Read 2100x2800 image, 47.7 MP/s Encoding [VarDCT, d1.000, tortoise], 8 threads. lib/jxl/butteraugli/butteraugli.cc:99: JXL_CHECK: out->xsize() == in.ysize() Illegal instruction
-rw-r--r--graphics/jpeg-xl/Makefile14
1 files changed, 12 insertions, 2 deletions
diff --git a/graphics/jpeg-xl/Makefile b/graphics/jpeg-xl/Makefile
index 6188fc2bafe5..526f2e8ee1bc 100644
--- a/graphics/jpeg-xl/Makefile
+++ b/graphics/jpeg-xl/Makefile
@@ -3,6 +3,7 @@
PORTNAME= jpeg-xl
DISTVERSIONPREFIX= v
DISTVERSION= 0.3.2
+PORTREVISION= 1
CATEGORIES= graphics
MAINTAINER= jbeich@FreeBSD.org
@@ -31,8 +32,10 @@ CMAKE_OFF= JPEGXL_WARNINGS_AS_ERRORS ${BENCHMARK FUZZERS TCMALLOC:L:S/^/JPEGXL_E
CMAKE_OFF+= ${OpenGL GLUT:L:S/^/CMAKE_DISABLE_FIND_PACKAGE_/} # sjpeg
LDFLAGS+= -Wl,--as-needed # brotlicommon, GIMP/OPENEXR/PNG deps
-OPTIONS_DEFINE= GIF GIMP JPEG OPENEXR PIXBUF PNG TEST
-OPTIONS_DEFAULT=GIF GIMP JPEG OPENEXR PIXBUF PNG
+OPTIONS_DEFINE= GIF GIMP JPEG LTO OPENEXR PIXBUF PNG TEST
+OPTIONS_DEFAULT=GIF GIMP JPEG LTO 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
@@ -46,6 +49,13 @@ GIMP_LIB_DEPENDS= libgegl-0.4.so:graphics/gegl \
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
+
OPENEXR_LIB_DEPENDS= libHalf.so:graphics/ilmbase \
libIlmImf.so:graphics/openexr
OPENEXR_CMAKE_BOOL= JPEGXL_ENABLE_OPENEXR