Files
haikuports/x11-libs/gtk3/gtk3-3.24.36.recipe
2024-12-14 10:13:22 -05:00

189 lines
5.5 KiB
Bash

SUMMARY="A multi-platform toolkit for creating graphical user interfaces"
DESCRIPTION="GTK is a multi-platform toolkit for creating graphical user \
interfaces. Offering a complete set of widgets, GTK is suitable for projects \
ranging from small one-off projects to complete application suites."
HOMEPAGE="https://www.gtk.org"
COPYRIGHT="GNOME Desktop"
LICENSE="GNU LGPL v2"
REVISION="2"
SOURCE_URI="https://ftp.gnome.org/pub/gnome/sources/gtk+/3.24/gtk+-$portVersion.tar.xz"
CHECKSUM_SHA256="27a6ef157743350c807ffea59baa1d70226dbede82a5e953ffd58ea6059fe691"
SOURCE_DIR="gtk+-$portVersion"
SOURCE_URI_2="https://github.com/lah7/gtk3-classic/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256_2="38b804f6079aa9f37fd747bb02cf0f31a9694dde276c263dd9f69c3700afd5f9"
SOURCE_DIR_2="gtk3-classic-$portVersion"
PATCHES="gtk3-$portVersion.patchset"
PATCHES_2="gtk3-classic-$portVersion.patchset"
ADDITIONAL_FILES="compile-schemas.sh"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
GLOBAL_WRITABLE_FILES="
settings/gtk-3.0/im-multipress.conf keep-old
"
POST_INSTALL_SCRIPTS="
$relativePostInstallDir/compile-schemas.sh
"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
gtk3$secondaryArchSuffix = $portVersion compat >= 3
cmd:gtk_builder_tool$commandSuffix
cmd:gtk_encode_symbolic_svg$commandSuffix
cmd:gtk_launch$commandSuffix
cmd:gtk_query_immodules_3.0$commandSuffix
cmd:gtk_query_settings$commandSuffix
cmd:gtk_update_icon_cache$commandSuffix
cmd:gtk3_demo_application$commandSuffix
cmd:gtk3_demo$commandSuffix
cmd:gtk3_icon_browser$commandSuffix
cmd:gtk3_widget_factory$commandSuffix
lib:libgailutil_3$secondaryArchSuffix = 0.0.0 compat >= 0
lib:libgdk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
lib:libgtk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
"
REQUIRES="
haiku$secondaryArchSuffix
adwaita_icon_theme
haiku_svg_icon_theme
iso_codes
gsettings_desktop_schemas$secondaryArchSuffix
shared_mime_info$secondaryArchSuffix
lib:libatk_1.0$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libcairo_gobject$secondaryArchSuffix
lib:libepoxy$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfribidi$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libgirepository_1.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libharfbuzz_gobject$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpangoft2_1.0$secondaryArchSuffix
lib:librsvg_2$secondaryArchSuffix
lib:libwayland_client$secondaryArchSuffix
lib:libwayland_server$secondaryArchSuffix
lib:libxkbcommon$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:wayland_server_inproc$secondaryArchSuffix
"
PROVIDES_devel="
gtk3${secondaryArchSuffix}_devel
devel:libgailutil_3$secondaryArchSuffix = 0.0.0 compat >= 0
devel:libgtk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
devel:libgdk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
"
REQUIRES_devel="
gtk3$secondaryArchSuffix == $portVersion base
devel:libatk_1.0$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libgirepository_1.0$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libpango_1.0$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libxkbcommon$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
harfbuzz${secondaryArchSuffix}_glib
iso_codes
wayland_protocols
devel:libatk_1.0$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libgirepository_1.0$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libharfbuzz_gobject$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libpango_1.0$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libxkbcommon$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:glib_compile_schemas
cmd:ld$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:patch
cmd:pkg_config$secondaryArchSuffix
cmd:wayland_scanner
cmd:which
cmd:update_mime_database$secondaryArchSuffix
"
PATCH()
{
cd $sourceDir
for file in $sourceDir2/*.patch; do patch -p1 < $file; done
}
BUILD()
{
CFLAGS="-D_BSD_SOURCE" \
LDFLAGS="-lbsd -lgnu -lnetwork" \
meson Build \
--buildtype=release \
--prefix="$prefix" \
--libdir="$libDir" \
--includedir="$includeDir" \
--bindir="$commandBinDir" \
--libexecdir="$commandBinDir" \
--datadir="$dataDir" \
--localedir="$dataDir/locale" \
--sysconfdir="$settingsDir" \
-Dx11_backend=false \
-Dwayland_backend=true \
-Dbroadway_backend=false \
-Dbuiltin_immodules=wayland \
-Dintrospection=true
ninja -C Build
}
INSTALL()
{
ninja install -C Build
rm -rf $dataDir/glib-2.0/schemas/gschemas.compiled
rm -rf $dataDir/icons/hicolor/icon-theme.cache
mkdir -p $postInstallDir
cp -f $portDir/additional-files/compile-schemas.sh $postInstallDir
chmod -v a+rx $postInstallDir/compile-schemas.sh
fixPkgconfig
prepareInstalledDevelLibs \
libgdk-3 \
libgtk-3 \
libgailutil-3
packageEntries devel \
$developDir
}