123 lines
3.2 KiB
Python
123 lines
3.2 KiB
Python
import shutil
|
|
import os
|
|
|
|
from lib.make import *
|
|
from lib import cpp
|
|
|
|
upstream_version = "2.89.2"
|
|
|
|
version(upstream_version)
|
|
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')}/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"])
|