graphics/libjxl: split GIMP into gimp-jxl-plugin

gimp-app is a heavy dependency that prevents enabling JXL in other ports.

PR:		261043
This commit is contained in:
Jan Beich 2022-01-10 22:25:21 +00:00
parent f2c926321d
commit 952502d4bc
8 changed files with 77 additions and 15 deletions

View File

@ -262,6 +262,7 @@
SUBDIR += gimp-beautify-plugin
SUBDIR += gimp-data-extras
SUBDIR += gimp-gmic-plugin
SUBDIR += gimp-jxl-plugin
SUBDIR += gimp-lensfun-plugin
SUBDIR += gimp-lqr-plugin
SUBDIR += gimp-refocus-plugin

View File

@ -0,0 +1,26 @@
PORTNAME= gimp-jxl-plugin
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.1
CATEGORIES= graphics
MAINTAINER= jbeich@FreeBSD.org
COMMENT= GIMP plugin to read/write JPEG XL images
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC:H:H}/LICENSE
LIB_DEPENDS= libgegl-0.4.so:graphics/gegl \
libgimp-2.0.so:graphics/gimp-app \
libjxl.so:graphics/libjxl \
libbabl-0.1.so:x11/babl
USES= cmake compiler:c++11-lang gnome pkgconfig
USE_GITHUB= yes
USE_GNOME= gtk20
GH_ACCOUNT= ${GH_PROJECT}
GH_PROJECT= libjxl
WRKSRC_SUBDIR= plugins/gimp
LDFLAGS+= -Wl,--as-needed # GIMP deps
PLIST_FILES= libexec/gimp/2.2/plug-ins/file-jxl/file-jxl
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1635545136
SHA256 (libjxl-libjxl-v0.6.1_GH0.tar.gz) = ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
SIZE (libjxl-libjxl-v0.6.1_GH0.tar.gz) = 16953185

View File

@ -0,0 +1,32 @@
https://github.com/NetBSD/pkgsrc-wip/blob/87d6597e0a2b/libjxl/patches/patch-plugins_gimp_CMakeLists.txt
* adapt to make gimp plugin a separate package
--- CMakeLists.txt.orig 2021-10-29 18:48:36 UTC
+++ CMakeLists.txt
@@ -2,9 +2,12 @@
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
+cmake_minimum_required(VERSION 3.10)
+project(gimp-jxl LANGUAGES C CXX)
find_package(PkgConfig)
pkg_check_modules(Gimp IMPORTED_TARGET gimp-2.0>=2.10 gimpui-2.0>=2.10)
+pkg_check_modules(JXL IMPORTED_TARGET libjxl libjxl_threads)
if (NOT Gimp_FOUND)
message(WARNING "Gimp development libraries not found, the Gimp plugin will not be built")
@@ -19,10 +22,10 @@ add_executable(file-jxl WIN32
file-jxl-save.cc
file-jxl-save.h
file-jxl.cc)
-target_link_libraries(file-jxl jxl jxl_threads PkgConfig::Gimp)
+target_link_libraries(file-jxl PkgConfig::JXL PkgConfig::Gimp)
target_include_directories(file-jxl PUBLIC
- ${PROJECT_SOURCE_DIR}) # for plugins/gimp absolute paths.
+ ${PROJECT_SOURCE_DIR}/../..) # for plugins/gimp absolute paths.
pkg_get_variable(GIMP_LIB_DIR gimp-2.0 gimplibdir)
install(TARGETS file-jxl RUNTIME DESTINATION "${GIMP_LIB_DIR}/plug-ins/file-jxl/")

View File

@ -0,0 +1,3 @@
GIMP plugin to read/write JPEG XL images
WWW: https://jpeg.org/jpegxl/

View File

@ -1,7 +1,7 @@
PORTNAME= libjxl
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.1
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= graphics
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
@ -36,10 +36,10 @@ 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
LDFLAGS+= -Wl,--as-needed # brotlicommon, OPENEXR/PNG deps
OPTIONS_DEFINE= GIF GIMP JPEG LTO MANPAGES OPENEXR PIXBUF PNG
OPTIONS_DEFAULT=GIF GIMP JPEG LTO MANPAGES OPENEXR PIXBUF PNG
OPTIONS_DEFINE= GIF JPEG LTO MANPAGES OPENEXR PIXBUF PNG
OPTIONS_DEFAULT=GIF 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:} # https://github.com/llvm/llvm-project/issues/46697
OPTIONS_SUB= yes
@ -47,13 +47,6 @@ 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_USES= gnome
GIMP_USE= GNOME=gtk20
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
@ -78,9 +71,6 @@ post-patch:
@${REINPLACE_CMD} 's,/usr,${LOCALBASE},' \
${WRKSRC}/plugins/gdk-pixbuf/jxl.thumbnailer
# 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

View File

@ -0,0 +1,8 @@
[
{ type: upgrade
maximum_version: "0.6.1_4"
message: <<EOD
If you use GIMP to read/write .jxl files install gimp-jxl-plugin after upgrade.
EOD
}
]

View File

@ -29,7 +29,6 @@ lib/libjxl_threads.so.0.6
lib/libjxl_threads.so.0.6.1
libdata/pkgconfig/libjxl.pc
libdata/pkgconfig/libjxl_threads.pc
%%GIMP%%libexec/gimp/2.2/plug-ins/file-jxl/file-jxl
%%MANPAGES%%share/man/man1/cjxl.1.gz
%%MANPAGES%%share/man/man1/djxl.1.gz
share/mime/packages/image-jxl.xml