Files
2026-09-11 07:26:14 +00:00

80 lines
2.3 KiB
Python

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"])