repo/extra/gtk+3/build
2022-03-31 17:10:32 +05:30

92 lines
2.6 KiB
Bash
Executable File

#!/bin/sh -e
patch -p1 < no-fribidi.patch
patch -p1 < fix-firefox.patch
# Remove configure check for atk-bridge and fribidi. Funny enough, atk-bridge
# is not required under wayland and there are ifdefs in place to ensure this.
# The build system forces the dependency anyway so we must remove it.
sed -e 's/\(ATK_PACKAGES="atk\) atk-bridge-2.0"/\1"/' \
-e 's/fribidi >= 0\.19\.7//g' \
configure > _
mv -f _ configure
# Don't build GTK examples/demos/testsuite.
sed 's/demos tests testsuite examples//;s/docs \(m4macros\)/\1/' Makefile.in > _
mv -f _ Makefile.in
# Build libepoxy for gtk+3's sole use. This is the only package that requires
# the library. While the build system supports building this as a subproject,
# it is broken so we must do it ourselves.
(
cd libepoxy
meson \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
-Ddefault_library=static \
-Degl=yes \
-Dtests=false \
-Dglx=no \
-Dx11=false \
. output
ninja -C output
DESTDIR=$PWD ninja -C output install
)
# Point gtk+3 to the vendored libepoxy.
export PKG_CONFIG_PATH=$PWD/libepoxy/usr/lib/pkgconfig
export CFLAGS="$CFLAGS -L$PWD/libepoxy/usr/lib"
export CFLAGS="$CFLAGS -I$PWD/libepoxy/usr/include"
# While gtk+3 supports meson, the meson build is strictly speaking broken.
# It forces X11 in various places and the usage of -Werror causes various build
# failures (which according to upstream should not occur on x86_64).
sh ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-wayland-backend \
--disable-x11-backend \
--disable-schemas-compile \
--disable-cups \
--disable-papi \
--disable-cloudprint \
--disable-glibtest \
--disable-nls \
--disable-installed-tests \
--enable-introspection=no \
--enable-colord=no \
--enable-gtk-doc-html=no
make
make install
# GTK+3 on Wayland requires gsettings-desktop-schemas for gsettings to work
# correctly. Under X11 it made use of xsettings but this is no longer the case.
(
cd schemas
meson \
--prefix=/usr \
-Dintrospection=false \
. output
ninja -C output
ninja -C output install
)
# We don't compile with librsvg which leads to this utility solely causing
# compiler errors for some packages. It has no use at all.
rm -f "$1/usr/bin/gtk-encode-symbolic-svg"
# Remove epoxy references from installed pkg-config files. The build system
# should have done this for us as it is statically linked.
for f in "$1/usr/lib/pkgconfig/"*.pc; do
sed 's/epoxy >= 1.4//' "$f" > _
mv -f _ "$f"
done