import shutil import os from lib.make import * from lib import cpp upstream_version = "2.89.2" version(upstream_version) description("a general-purpose, portable utility library") maintainer("sisungo ") source_url("https://download.gnome.org/sources/glib/2.89/glib-2.89.2.tar.xz") builddep("shortcut/c++") builddep("shortcut/meson") builddep("gettext") builddep(f"libintl-dev @{arch.get_target()}") builddep("pcre2-tools") builddep(f"libpcre2-dev @{arch.get_target()}") builddep(f"libffi-dev @{arch.get_target()}") builddep("pkgconf") builddep(f"libz-ng-dev @{arch.get_target()}") builddep("libexpat") def build(): os.environ["CFLAGS"] = os.environ.get("CFLAGS", "") + " -Wno-missing-include-dirs" os.environ["CXXFLAGS"] = os.environ.get("CXXLAGS", "") + os.environ["CFLAGS"] cpp.meson_setup([ "-Druntime_dir=/run", f"-Dgio_module_dir=/lib/{arch.get_target()}/gio/modules", "--prefix=/", f"--bindir={get_prefix('glib-tools')}/bin", f"--libdir={get_prefix('glib-dev')}/lib", f"--includedir={get_prefix('glib-dev')}/include", f"--libexecdir={get_prefix('libglib')}/libexec", f"--datadir={get_prefix('glib')}/share", ]) cpp.meson_compile() cpp.meson_install() on_build(build) def pack_libxxx(composer, prefix): composer.makedirs("lib") for i in os.listdir("lib"): if not i.startswith(prefix): continue composer.addfile(f"lib/{i}", f"lib/{i}") def pack_libglib(composer): composer.add_dir("libexec", "libexec") pack_libxxx(composer, "libglib") package("libglib") dep("semi-libc @same-arch") dep("libpcre2 @same-arch") on_pack(pack_libglib) package("libgobject") dep("libglib (same)") dep("libffi @same-arch") on_pack(lambda composer: pack_libxxx(composer, "libgobject")) package("libgthread") dep("libglib (same)") dep("semi-libc @same-arch") on_pack(lambda composer: pack_libxxx(composer, "libgthread")) package("libgmodule") dep("libglib (same)") dep("semi-libc @same-arch") on_pack(lambda composer: pack_libxxx(composer, "libgmodule")) package("libgio") dep("libglib (same)") dep("libgobject (same)") dep("libgmodule (same)") dep("libz @same-arch") dep("semi-libc @same-arch") on_pack(lambda composer: pack_libxxx(composer, "libgio")) package("libgirepository") dep("libglib (same)") dep("libgobject (same)") dep("libgmodule (same)") dep("libffi @same-arch") dep("semi-libc @same-arch") on_pack(lambda composer: pack_libxxx(composer, "libgirepository")) def pack_glib(composer): composer.makedir("lib") for i in os.listdir("lib"): if not i.endswith(".so"): continue pkgname = i.split("-")[0] os.symlink(f"{get_prefix(pkgname)}/lib/{i}", f"{composer.workdir}/bundle/lib/{i}") os.symlink(f"{get_prefix('glib-dev')}/lib/glib-2.0", f"{composer.workdir}/bundle/lib/glib-2.0") composer.add_dir("share", "share") package("glib") dep("libglib (same)") dep("libgobject (same)") dep("libgthread (same)") dep("libgmodule (same)") dep("libgio (same)") dep("libgirepository (same)") on_pack(pack_glib) package("glib-tools") dep("glib (same)") cpp.use_auto_pack(["bin"]) package("glib-dev") dep("glib (same)") dep("libz-dev @same-arch") dep("libpcre2-dev @same-arch") dep("libffi-dev @same-arch") cpp.use_auto_pack(["dev"])