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