1 Commits
Author SHA256 Message Date
sisungo 27fb8be562 feat: add general gui libraries
Signed-off-by: sisungo <[email protected]>
2026-09-11 07:33:59 +00:00
7 changed files with 182 additions and 176 deletions
+38
View File
@@ -0,0 +1,38 @@
from lib import cpp
from lib.make import *
version("1.0.16")
description("The Free Implementation of the Unicode Bidirectional Algorithm.")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz")
builddep("shortcut/c")
builddep("shortcut/autotools")
def build():
cpp.configure([
f"--libdir={get_prefix('libfribidi')}/lib",
f"--bindir={get_prefix('fribidi')}/bin",
f"--includedir={get_prefix('libfribidi-dev')}/include",
"--disable-deprecated",
])
cpp.make()
cpp.make_install()
on_build(build)
package("libfribidi")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("fribidi")
dep("libfribidi (same)")
cpp.use_auto_pack(["bin"])
package("libfribidi-dev")
dep("libfribidi (same)")
dep("semi-libc-dev @same-arch")
cpp.use_auto_pack(["dev"])
+100
View File
@@ -0,0 +1,100 @@
import glob
import os
import shutil
from lib.make import *
from lib import cpp
version("14.3.1")
description("HarfBuzz text shaping engine")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/harfbuzz/harfbuzz/releases/download/14.3.1/harfbuzz-14.3.1.tar.xz")
builddep("shortcut/meson")
builddep("shortcut/c++")
builddep("glib-dev @target")
builddep("libicu4c-dev @target")
builddep("libcairo-dev @target")
builddep("gobject-introspection @target")
builddep("glib-tools")
def fix_pc(newpkgname):
path = f"lib/pkgconfig/harfbuzz-{newpkgname}.pc"
with open(path, 'r') as file:
content = file.read()
content = content.replace(
"-I${includedir}/harfbuzz",
f"-I${{includedir}}/harfbuzz -I{get_prefix(f'libharfbuzz-{newpkgname}-dev')}/include/harfbuzz"
)
content = content.replace("-L${libdir}", f"-L${{libdir}} -L{get_prefix(f'libharfbuzz-{newpkgname}')}/lib")
with open(path, 'wt+') as file:
file.write(content)
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libharfbuzz')}/lib",
f"--includedir={get_prefix('libharfbuzz-dev')}/include",
f"-Dcmakepackagedir={get_prefix('libharfbuzz-dev')}/lib/cmake",
"-Dglib=disabled",
"-Dgobject=enabled",
"-Dcairo=enabled",
"-Dicu=enabled",
"-Dfreetype=enabled",
"-Dintrospection=enabled",
"-Dtests=disabled",
])
cpp.meson_compile()
if os.path.exists("../cpp_install"):
shutil.rmtree("../cpp_install")
cpp.meson_install()
os.mkdir("include/gir")
os.rename("share/gir-1.0", "include/gir/gir-1.0")
fix_pc("gobject")
on_build(build)
def pack_glob(composer, globs, excluded_kw=[]):
for iglob in globs:
for i in glob.glob(iglob):
if any(excluded_pattern in i for excluded_pattern in excluded_kw):
continue
composer.makedirs(os.path.dirname(i))
if os.path.islink(i) or os.path.isfile(i):
composer.addfile(i)
else:
composer.add_dir(i)
package("libharfbuzz")
dep("libfreetype @same-arch")
dep("libcairo @same-arch")
dep("libicu4c @same-arch")
dep("libpng @same-arch")
dep("libz @same-arch")
on_pack(lambda c: pack_glob(c, ["lib/*.so*"], ["gobject"]))
package("libharfbuzz-dev")
dep("libharfbuzz (same)")
dep("libfreetype-dev @same-arch")
dep("libcairo-dev @same-arch")
dep("libicu4c-dev @same-arch")
dep("libpng-dev @same-arch")
dep("libz-dev @same-arch")
on_pack(lambda c: pack_glob(c, ["lib/cmake", "lib/pkgconfig/*", "include/harfbuzz/*"], ["gobject"]))
package("libharfbuzz-gobject")
dep("libharfbuzz (same)")
dep("libglib @same-arch")
dep("libgobject @same-arch")
on_pack(lambda c: pack_glob(c, ["lib/*gobject*", "lib/girepository-1.0"]))
package("libharfbuzz-gobject-dev")
dep("libharfbuzz-gobject (same)")
dep("libharfbuzz-dev (same)")
dep("glib-dev @same-arch")
on_pack(lambda c: pack_glob(c, ["lib/pkgconfig/*gobject*", "include/harfbuzz/*gobject*", "include/gir"]))
-38
View File
@@ -1,38 +0,0 @@
from lib import cpp
from lib.make import *
version("1.13.7")
description("Wrapper library for evdev devices")
maintainer("sisungo <[email protected]>")
source_url("https://gitlab.freedesktop.org/libevdev/libevdev/-/archive/libevdev-1.13.7/libevdev-libevdev-1.13.7.tar.gz?ref_type=tags")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("linux-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libevdev')}/lib",
f"--includedir={get_prefix('libevdev-dev')}/include",
"-Dtests=disabled",
"-Ddocumentation=disabled",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
package("libevdev")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libevdev-tools")
dep("libevdev (same)")
cpp.use_auto_pack(["bin"])
package("libevdev-dev")
dep("libevdev (same)")
cpp.use_auto_pack(["dev"])
-58
View File
@@ -1,58 +0,0 @@
import glob
from lib import cpp
from lib.make import *
version("1.30.4")
description("Input device management and event handling library")
maintainer("sisungo <[email protected]>")
source_url("https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.30.4/libinput-1.30.4.tar.gz")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("lxdeviced-libudev-dev @target")
builddep("libevdev-dev @target")
builddep("libmtdev-dev @target")
builddep("libwacom-dev @target")
builddep("linux-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libinput')}/lib",
f"--libexecdir={get_prefix('libinput-tools')}/libexec",
f"--includedir={get_prefix('libinput-dev')}/include",
"--sysconfdir=/var/config",
f"--datadir={get_prefix('libinput')}/share",
"-Ddebug-gui=false",
"-Dtests=false",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
def pack(composer):
composer.makedir("lib")
for i in glob.glob("lib/*so*"):
composer.add(i)
composer.makedir("share")
composer.add("share/libinput")
def pack_tools(composer):
composer.add("bin")
composer.add("libexec")
package("libinput")
dep("semi-libc @same-arch")
on_pack(pack)
package("libinput-tools")
dep("libinput (same)")
on_pack(pack_tools)
package("libinput-dev")
dep("libinput (same)")
cpp.use_auto_pack(["dev"])
-32
View File
@@ -1,32 +0,0 @@
from lib import cpp
from lib.make import *
version("1.1.7")
description("a stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol")
maintainer("sisungo <[email protected]>")
source_url("https://bitmath.se/org/code/mtdev/mtdev-1.1.7.tar.gz")
builddep("shortcut/c")
builddep("shortcut/autotools")
builddep("linux-dev @target")
def build():
cpp.configure([
"--prefix=/",
f"--libdir={get_prefix('libmtdev')}/lib",
f"--includedir={get_prefix('libmtdev-dev')}/include",
])
cpp.make()
cpp.make_install()
on_build(build)
package("libmtdev")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libmtdev-dev")
dep("libmtdev (same)")
cpp.use_auto_pack(["dev"])
-48
View File
@@ -1,48 +0,0 @@
from lib import cpp
from lib.make import *
version("2.19.1")
description("libwacom is a tablet description library")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/linuxwacom/libwacom/releases/download/libwacom-2.19.1/libwacom-2.19.1.tar.xz")
builddep("shortcut/c")
builddep("shortcut/meson")
builddep("linux-dev @target")
builddep("libgudev-dev @target")
builddep("libevdev-dev @target")
def build():
cpp.meson_setup([
"--prefix=/",
f"--libdir={get_prefix('libwacom')}/lib",
f"--bindir={get_prefix('libwacom-tools')}/bin",
f"--includedir={get_prefix('libwacom-dev')}/include",
f"--datadir={get_prefix('libwacom')}/share",
"-Dtests=disabled",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
package("libwacom")
dep("semi-libc @same-arch")
dep("libgudev @same-arch")
dep("libgobject @same-arch")
dep("libglib @same-arch")
dep("libevdev @same-arch")
cpp.use_auto_pack(["lib"])
package("libwacom-tools")
dep("libwacom (same)")
cpp.use_auto_pack(["bin"])
package("libwacom-dev")
dep("libwacom (same)")
dep("libgudev-dev @same-arch")
dep("glib-dev @same-arch")
dep("libevdev-dev @same-arch")
cpp.use_auto_pack(["dev"])
+44
View File
@@ -0,0 +1,44 @@
from lib.make import *
from lib import cpp
version("2.5.1")
description("The FreeDesktop Shared MIMO Info database and utilities")
maintainer("sisungo <[email protected]>")
source_url("https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.5.1/shared-mime-info-2.5.1.tar.gz")
builddep("shortcut/c++")
builddep("shortcut/meson")
builddep("libintl-dev @target")
builddep("gettext")
builddep("libxml2-dev @target")
builddep("glib-dev @target")
def build():
cpp.meson_setup([
f"--prefix={get_prefix('shared-mime-info')}",
"-Dbuild-tools=true",
"-Dbuild-translations=true",
"-Dbuild-tests=false",
"-Dbuild-spec=false",
])
cpp.meson_compile()
cpp.meson_install()
on_build(build)
def pack(composer):
composer.makedir("lib")
composer.makedir("share")
composer.add_dir("share/mime")
composer.add_dir("share/pkgconfig", "lib/pkgconfig")
composer.add_dir("share/locale")
composer.add_dir("bin")
package("shared-mime-info")
dep("libxml2 @same-arch")
dep("libglib @same-arch")
dep("libcxx @same-arch")
on_pack(pack)