pantry/projects/gnome.org/glib/package.yml

104 lines
2.9 KiB
YAML
Raw Normal View History

2022-08-10 21:58:22 +03:00
distributable:
url: https://download.gnome.org/sources/glib/{{ version.major }}.{{ version.minor }}/glib-{{ version }}.tar.xz
strip-components: 1
versions:
2023-05-03 01:49:15 +03:00
gitlab: gitlab.gnome.org:GNOME/glib
2022-08-10 21:58:22 +03:00
dependencies:
gnu.org/gettext: ^0.21
sourceware.org/libffi: 3
2023-05-03 01:49:15 +03:00
# FIXME: this isn't great, but we need to bump to build new glibs.
# versioned dependencies would be needed to fix this, which could break
# any number of things in the version solver. However, this shouldn't be
# too dangerous, since they produce different libraries (libpcre vs libpcre2)
# glib bumped this in 2.73.2, after claiming for years they'd rather remove
# GRegex than bump the version. :(
# ref: https://gitlab.gnome.org/GNOME/glib/-/issues/1085
2022-08-10 21:58:22 +03:00
pcre.org: 8
2023-05-03 01:49:15 +03:00
pcre.org/v2: 10
2022-08-10 21:58:22 +03:00
build:
dependencies:
mesonbuild.com: ^0.63
ninja-build.org: 1
freedesktop.org/pkg-config: ^0.29
2023-10-03 18:23:56 +03:00
python.org: '>=3.5<3.12'
2022-08-10 21:58:22 +03:00
script: |
meson out $ARGS
cd out
ninja -v
ninja install
2022-09-30 03:10:43 +03:00
GT='${prefix}/../../../gnu.org/gettext/v{{ deps.gnu.org/gettext.version.major }}'
2022-08-10 21:58:22 +03:00
cd {{prefix}}/lib/pkgconfig
2022-09-30 03:10:43 +03:00
sed -i.bak -e \
's|Libs: -L${libdir} -lglib-2.0 -lintl|Libs: -L${libdir} -lglib-2.0'\ -L$GT/lib\ -lintl\| \
./glib-2.0.pc
sed -i.bak -e \
's|Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include|Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include'\ -I$GT/include\| \
./glib-2.0.pc
2022-08-10 21:58:22 +03:00
rm *.bak
cd ../../include
mv glib-{{version.major}}.0/* .
rmdir glib-{{version.major}}.0
ln -s . glib-{{version.major}}.0
mv gio-unix-{{version.major}}.0/gio/* gio/
rmdir -p gio-unix-{{version.major}}.0/gio
ln -s . gio-unix-{{version.major}}.0
ln -s ../lib/glib-{{version.major}}.0/include/* .
2022-08-10 21:58:22 +03:00
#REF https://github.com/Homebrew/homebrew-core/blob/d0e65698ccd502335bea68ce879ae02e1735db0d/Formula/glib.rb#L66-L67
#FIXME hardcoded paths ^^
env:
ARGS:
- --prefix={{prefix}}
- --libdir={{prefix}}/lib
2022-08-10 21:58:22 +03:00
- --wrap-mode=nofallback
- --buildtype=release
# tests fail to build with `error: target emulation unknown: -m or at least one .o file required`
- -Dtests=false
test:
dependencies:
freedesktop.org/pkg-config: ^0.29
script: |
sh - <<EOSTDIN
# unset these since we only want to test via pkg-config
unset LIBRARY_PATH
unset CPATH
unset LD_LIBRARY_PATH
unset DYLD_FALLBACK_LIBRARY_PATH
2022-08-31 21:05:21 +03:00
cc $CFLAGS $LDFLAGS test.c
EOSTDIN
2022-08-10 21:58:22 +03:00
./a.out
env:
# using pkg-config as pixman puts its headers in `include/pixman-1`
LDFLAGS: $(pkg-config --libs glib-2.0)
CFLAGS: $(pkg-config --cflags glib-2.0)
2022-12-05 22:10:34 +03:00
provides:
- bin/gdbus
- bin/gdbus-codegen
- bin/gio
- bin/gio-querymodules
- bin/glib-compile-resources
- bin/glib-compile-schemas
- bin/glib-genmarshal
- bin/glib-gettextize
- bin/glib-mkenums
- bin/gobject-query
- bin/gresource
- bin/gsettings
- bin/gtester
- bin/gtester-report