Files
haikuports/media-gfx/gimp/gimp-3.2.0.recipe
2026-03-16 15:01:27 +01:00

279 lines
8.8 KiB
Bash

SUMMARY="The popular image manipulation software"
DESCRIPTION="GIMP is a cross-platform image editor available for GNU/Linux, \
macOS, Windows and more operating systems.
Whether you are a graphic designer, photographer, illustrator, or scientist, \
GIMP provides you with sophisticated tools to get your job done. You can further \
enhance your productivity with GIMP thanks to many customization options \
and 3rd party plugins."
HOMEPAGE="https://www.gimp.org/"
COPYRIGHT="The GIMP Team"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://download.gimp.org/mirror/pub/gimp/v${portVersion%.*}/gimp-$portVersion.tar.xz"
CHECKSUM_SHA256="2618391416e51be3c693df9ef90e3860ed72ab3d36363ea1f196e30b75b2e083"
PATCHES="gimp-$portVersion.patchset"
ADDITIONAL_FILES="
gimp.rdef.in
gimp-splash.png
"
ARCHITECTURES="ALL !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
GLOBAL_WRITABLE_FILES="
settings/gimp/3.0/controllerrc keep-old
settings/gimp/3.0/gimp.css keep-old
settings/gimp/3.0/gimprc keep-old
settings/gimp/3.0/sessionrc keep-old
settings/gimp/3.0/templaterc keep-old
settings/gimp/3.0/toolrc keep-old
settings/gimp/3.0/unitrc keep-old
"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
libVersion="0.200.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
gimp$secondaryArchSuffix = $portVersion
app:GIMP = $portVersion
cmd:gimp$commandSuffix = $portVersion
cmd:gimp_3$commandSuffix = $portVersion
cmd:gimp_3.2$commandSuffix = $portVersion
cmd:gimp_console$commandSuffix = $portVersion
cmd:gimp_console_3$commandSuffix = $portVersion
cmd:gimp_console_3.2$commandSuffix = $portVersion
cmd:gimp_debug_tool$commandSuffix = $portVersion
cmd:gimp_debug_tool_3$commandSuffix = $portVersion
cmd:gimp_debug_tool_3.2$commandSuffix = $portVersion
cmd:gimp_script_fu_interpreter_3.0$commandSuffix = $portVersion
cmd:gimp_test_clipboard$commandSuffix = $portVersion
cmd:gimp_test_clipboard_3$commandSuffix = $portVersion
cmd:gimp_test_clipboard_3.2$commandSuffix = $portVersion
cmd:gimptool$commandSuffix = $portVersion
cmd:gimptool_3$commandSuffix = $portVersion
cmd:gimptool_3.2$commandSuffix = $portVersion
lib:libgimp_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimp_scriptfu_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpbase_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpcolor_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpconfig_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpmath_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpmodule_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpthumb_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpui_3.0$secondaryArchSuffix = $libVersionCompat
lib:libgimpwidgets_3.0$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
mypaint_brushes
shared_mime_info$secondaryArchSuffix
lib:libappstream$secondaryArchSuffix
lib:libappstream_glib$secondaryArchSuffix
lib:libarchive$secondaryArchSuffix
lib:libatk_1.0$secondaryArchSuffix
lib:libavif$secondaryArchSuffix
lib:libbabl_0.1$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
# lib:libexecinfo$secondaryArchSuffix
lib:libexiv2$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfribidi$secondaryArchSuffix
lib:libgegl_0.4$secondaryArchSuffix
lib:libgexiv2$secondaryArchSuffix
lib:libgdk_3$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libgirepository_1.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libglib_networking_2.0$secondaryArchSuffix
lib:libgtk_3$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libheif$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libjson_c$secondaryArchSuffix
lib:libjson_glib_1.0$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libjxl$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:liblzma$secondaryArchSuffix
lib:libmng$secondaryArchSuffix
lib:libmypaint$secondaryArchSuffix
lib:libOpenEXR_3_2$secondaryArchSuffix
lib:libOpenEXRUtil_3_2$secondaryArchSuffix
lib:libopenjp2$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libpoppler$secondaryArchSuffix
lib:libpoppler_glib$secondaryArchSuffix
lib:librsvg_2$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
lib:libuuid$secondaryArchSuffix
lib:libwebp$secondaryArchSuffix
lib:libwmf_0.2$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
ARCHITECTURES_doc="any"
PROVIDES_doc="
gimp_doc
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
packaging_python310
pygobject_python310
pygments_python310
mypaint_brushes
wayland_protocols
devel:libappstream$secondaryArchSuffix
devel:libappstream_glib$secondaryArchSuffix
devel:libarchive$secondaryArchSuffix
devel:libatk_1.0$secondaryArchSuffix
devel:libavif$secondaryArchSuffix
devel:libbabl_0.1$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix >= 3
# devel:libexecinfo$secondaryArchSuffix
devel:libexiv2$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libfribidi$secondaryArchSuffix
devel:libgegl_0.4$secondaryArchSuffix
devel:libgexiv2$secondaryArchSuffix
devel:libgdk_3$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libgirepository_1.0$secondaryArchSuffix
devel:libgtk_3$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libharfbuzz$secondaryArchSuffix
devel:libheif$secondaryArchSuffix
devel:libjson_c$secondaryArchSuffix
devel:libjson_glib_1.0$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libjxl$secondaryArchSuffix >= 0.11
devel:liblcms2$secondaryArchSuffix
devel:liblzma$secondaryArchSuffix
devel:libmng$secondaryArchSuffix
devel:libmypaint$secondaryArchSuffix
devel:libOpenEXR_3_2$secondaryArchSuffix
devel:libopenjp2$secondaryArchSuffix
devel:libpango_1.0$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix >= 155
devel:libpoppler_glib$secondaryArchSuffix >= 8.31
devel:librsvg_2$secondaryArchSuffix
devel:libssl$secondaryArchSuffix >= 3
devel:libtiff$secondaryArchSuffix
devel:libuuid$secondaryArchSuffix >= 1.3
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libwebp$secondaryArchSuffix
devel:libwmf$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
lib:libglib_networking_2.0$secondaryArchSuffix
"
BUILD_PREREQUIRES="
bash_completion
cmd:bison
cmd:cmake
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:gi_docgen
cmd:gtkdocize
cmd:intltool_update
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:meson
cmd:msgfmt$secondaryArchSuffix
cmd:ninja
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:update_mime_database$secondaryArchSuffix
"
BUILD()
{
LDFLAGS="-lnetwork" \
meson Build \
--buildtype=release \
--prefix="$prefix" \
--libdir="$libDir" \
--includedir="$includeDir" \
--bindir="$commandBinDir" \
--libexecdir="$commandBinDir" \
--datadir="$dataDir" \
--localedir="$dataDir/locale" \
--sysconfdir="$settingsDir" \
-Dgimpdir="GIMP/3.0" \
-Dshmem-type=posix \
-Dcheck-update=no \
-Dxcursor=disabled \
-Denable-console-bin=true
ninja -v -C Build
cp -f $portDir/additional-files/gimp-splash.png $sourceDir/Build/gimp-data/images/
}
INSTALL()
{
ninja install -C Build
# Symlink for application
mkdir -p $appsDir
mv $commandBinDir/gimp-3.2 $appsDir/GIMP
ln -s $appsDir/GIMP $commandBinDir/gimp-3.2
# Swap System and Default theme
mv $dataDir/gimp/3.0/themes/System $dataDir/gimp/3.0/themes/Temp
mv $dataDir/gimp/3.0/themes/Default $dataDir/gimp/3.0/themes/System
mv $dataDir/gimp/3.0/themes/Temp $dataDir/gimp/3.0/themes/Default
# Remove unneeded files
rm -rf \
$prefix/share \
$developDir \
$libDir/*.la \
$libDir/pkgconfig \
$dataDir/{metainfo,gtk-doc,applications,aclocal}
# Add resources to binary
local APP_SIGNATURE="application/x-vnd.gnu-gimp"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/gimp.rdef.in > gimp.rdef
addResourcesToBinaries gimp.rdef $appsDir/GIMP
addAppDeskbarSymlink $appsDir/GIMP
# doc package
mkdir -p $documentationDir/packages/
mv $dataDir/doc/gimp-3.0 $documentationDir/packages
rm -rf $dataDir/doc
packageEntries doc \
$documentationDir/packages
}