1 Commits
Author SHA256 Message Date
sisungo 8a82bcf29e feat: add few multimedia format libraries
Signed-off-by: sisungo <[email protected]>
2026-09-11 07:26:14 +00:00
6 changed files with 147 additions and 182 deletions
-38
View File
@@ -1,38 +0,0 @@
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
@@ -1,100 +0,0 @@
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"]))
+33
View File
@@ -0,0 +1,33 @@
from lib import cpp
from lib.make import *
version("1.3.6")
description("Ogg container format libraries")
maintainer("sisungo <[email protected]>")
source_url("https://downloads.xiph.org/releases/ogg/libogg-1.3.6.tar.xz")
builddep("shortcut/c")
builddep("shortcut/autotools")
def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('libogg')}/lib",
f"--includedir={get_prefix('libogg-dev')}/include",
]
)
cpp.make()
cpp.make_install()
on_build(build)
package("libogg")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libogg-dev")
dep("libogg (same)")
cpp.use_auto_pack(["dev"])
+35
View File
@@ -0,0 +1,35 @@
from lib import cpp
from lib.make import *
version("1.3.7")
description("Reference implementation of the Ogg Vorbis audio format.")
maintainer("sisungo <[email protected]>")
source_url("https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz")
builddep("shortcut/c")
builddep("shortcut/autotools")
builddep("libogg-dev @target")
def build():
cpp.configure(
[
"--prefix=/",
f"--libdir={get_prefix('libvorbis')}/lib",
f"--includedir={get_prefix('libvorbis-dev')}/include",
"--disable-oggtest",
]
)
cpp.make()
cpp.make_install()
on_build(build)
package("libvorbis")
dep("semi-libc @same-arch")
cpp.use_auto_pack(["lib"])
package("libvorbis-dev")
dep("libvorbis (same)")
cpp.use_auto_pack(["dev"])
+79
View File
@@ -0,0 +1,79 @@
import os
import shutil
from lib.make import *
from lib import cpp
version("1.6.0")
description("a library to encode and decode images in WebP format")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/webmproject/libwebp/archive/refs/tags/v1.6.0.tar.gz")
builddep("shortcut/c")
builddep("shortcut/cmake")
def split_libsharpyuv():
os.makedirs("sharpyuv/libdev/pkgconfig")
os.makedirs("sharpyuv/lib")
os.makedirs("sharpyuv/include")
os.rename("lib/pkgconfig/libsharpyuv.pc", "sharpyuv/libdev/pkgconfig/libsharpyuv.pc")
os.system("mv lib/libsharpyuv* sharpyuv/lib/")
os.rename("include/webp/sharpyuv", "sharpyuv/include/sharpyuv")
with open("sharpyuv/libdev/pkgconfig/libsharpyuv.pc", "r") as pcf:
pc = pcf.read()
pc = pc.replace(get_prefix("libwebp"), get_prefix("libsharpyuv"))
pc = pc.replace(f"{get_prefix('libwebp-dev')}/include/webp", f"{get_prefix('libsharpyuv-dev')}/include")
with open("sharpyuv/libdev/pkgconfig/libsharpyuv.pc", "wt+") as pcf:
pcf.write(pc)
def build():
cpp.cmake([
"-DBUILD_SHARED_LIBS=1",
f"-DCMAKE_INSTALL_LIBDIR={get_prefix('libwebp')}/lib",
f"-DCMAKE_INSTALL_BINDIR={get_prefix('libwebp-tools')}/bin",
f"-DCMAKE_INSTALL_INCLUDEDIR={get_prefix('libwebp-dev')}/include",
])
cpp.ninja()
if os.path.exists("../cpp_install"):
shutil.rmtree("../cpp_install")
cpp.ninja_install()
split_libsharpyuv()
on_build(build)
def pack_libsharpyuv(composer):
composer.add_dir("sharpyuv/lib", "lib")
def pack_libsharpyuv_dev(composer):
composer.add_dir("sharpyuv/libdev", "lib")
composer.add_dir("sharpyuv/include", "include")
package("libsharpyuv")
description("Library for sharp RGB to YUV conversion")
dep("semi-libc @same-arch")
on_pack(pack_libsharpyuv)
package("libsharpyuv-dev")
description("Library for sharp RGB to YUV conversion")
dep("libsharpyuv (same)")
dep("semi-libc-dev @same-arch")
on_pack(pack_libsharpyuv_dev)
package("libwebp")
dep("semi-libc @same-arch")
dep("libsharpyuv (same)")
cpp.use_auto_pack(["lib"])
package("libwebp-tools")
dep("libwebp (same)")
cpp.use_auto_pack(["bin"])
package("libwebp-dev")
dep("libwebp (same)")
dep("libsharpyuv-dev (same)")
dep("semi-libc-dev @same-arch")
cpp.use_auto_pack(["dev"])
-44
View File
@@ -1,44 +0,0 @@
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)