import os from lib.make import * from lib import cpp version("1.7.0") description("The GL Vendor-Neutral Dispatch library") maintainer("sisungo ") source_url("https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v1.7.0/libglvnd-v1.7.0.tar.gz") builddep("shortcut/meson") builddep("shortcut/c") builddep("libexpat") def build(): cpp.meson_setup([ "--sysconfdir=/var/config", "--datadir=/share", "-Degl=true", "-Dentrypoint-patching=disabled", # X11 Stuff # We don't have X11 yet, so leave them disabled "-Dx11=disabled", "-Dglx=disabled", ]) cpp.meson_compile() cpp.meson_install() on_build(build) def fix_pc(path, name): with open(path, 'r') as file: content = file.read() devpkgname = f"{name}-dev" content = content.replace("prefix=/usr/local", f"prefix=/") content = content.replace("includedir=${prefix}/include", f"includedir={get_prefix(devpkgname)}/include") content = content.replace("libdir=${prefix}/lib", f"libdir={get_prefix(name)}/lib") with open(path, 'wt+') as file: file.write(content) def pack_librun(composer, libname): composer.makedir("lib") for i in os.listdir("lib"): if ".so" in i and i.startswith(libname): composer.addfile(f"lib/{i}", f"lib/{i}") def pack_libdev(composer, pkgname, pkgconfname, includenames): composer.makedirs("lib/pkgconfig") for i in os.listdir("lib/pkgconfig"): if pkgconfname == i: composer.addfile(f"lib/pkgconfig/{i}", f"lib/pkgconfig/{i}") fix_pc(f"{composer.workdir}/bundle/lib/pkgconfig/{i}", pkgname) composer.makedir("include") for i in includenames: composer.add_dir(f"include/{i}", f"include/{i}") package("libgldispatch") dep("semi-libc @same-arch") on_pack(lambda composer: pack_librun(composer, "libGLdispatch")) package("libgldispatch-dev") dep("semi-libc @same-arch") on_pack(lambda composer: pack_libdev(composer, "libgldispatch", "libglvnd.pc", ["glvnd", "KHR"])) package("libegl") dep("libgldispatch (same)") on_pack(lambda composer: pack_librun(composer, "libEGL")) package("libegl-dev") dep("libegl (same)") on_pack(lambda composer: pack_libdev(composer, "libegl", "egl.pc", ["EGL"])) package("libglesv1-cm") dep("libgldispatch (same)") on_pack(lambda composer: pack_librun(composer, "libGLESv1_CM")) package("libglesv1-cm-dev") dep("libglesv1-cm (same)") on_pack(lambda composer: pack_libdev(composer, "libglesv1-cm", "glesv1_cm.pc", ["GLES"])) package("libglesv2") dep("libgldispatch (same)") on_pack(lambda composer: pack_librun(composer, "libGLESv2")) package("libglesv2-dev") dep("libglesv2 (same)") on_pack(lambda composer: pack_libdev(composer, "libglesv2", "glesv2.pc", ["GLES2", "GLES3"])) package("libopengl") dep("libgldispatch (same)") on_pack(lambda composer: pack_librun(composer, "libOpenGL")) package("libopengl-dev") dep("libopengl (same)") on_pack(lambda composer: pack_libdev(composer, "libopengl", "opengl.pc", ["GL"]))