From c540480e7edb485d82a61a92cf19f508c0faa4db Mon Sep 17 00:00:00 2001 From: sisungo Date: Wed, 19 Aug 2026 12:40:18 +0800 Subject: [PATCH] feat: add package cairo Signed-off-by: sisungo --- packages/cairo/pkgbuild.py | 99 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 packages/cairo/pkgbuild.py diff --git a/packages/cairo/pkgbuild.py b/packages/cairo/pkgbuild.py new file mode 100644 index 0000000..855b9ce --- /dev/null +++ b/packages/cairo/pkgbuild.py @@ -0,0 +1,99 @@ +import os + +from lib import cpp +from lib.make import * + + +version("1.18.4") +description("a 2D graphics library with support for multiple output devices") +maintainer("sisungo ") +source_url("https://cairographics.org/releases/cairo-1.18.4.tar.xz") + +builddep("shortcut/c") +builddep("shortcut/meson") +builddep("pkgconf") +builddep(f"glib-dev @{arch.get_target()}") +builddep(f"libfontconfig-dev @{arch.get_target()}") +builddep(f"libfreetype-dev @{arch.get_target()}") +builddep(f"libpng-dev @{arch.get_target()}") + + +def build(): + cpp.meson_setup([ + f"--libdir={get_prefix('libcairo')}/lib", + f"--includedir={get_prefix('libcairo-dev')}/include", + f"--bindir={get_prefix('libcairo-dev')}/bin", + "-Dfontconfig=enabled", + "-Dfreetype=enabled", + "-Dpng=enabled", + "-Dtee=enabled", + "-Dglib=enabled", + ]) + cpp.meson_compile() + cpp.meson_install() + +on_build(build) + + +def pack_libcairo(composer): + composer.makedir("lib") + for i in os.listdir("lib"): + if ".so" in i and "gobject" not in i: + composer.addfile(f"lib/{i}", f"lib/{i}") + composer.add_dir("lib/cairo", "lib/cairo") + +def pack_libcairo_dev(composer): + composer.makedirs("lib/pkgconfig") + for i in os.listdir("lib/pkgconfig"): + if "gobject" not in i: + composer.addfile(f"lib/pkgconfig/{i}", f"lib/pkgconfig/{i}") + composer.makedirs("include/cairo") + for i in os.listdir("include/cairo"): + if "gobject" not in i: + composer.addfile(f"include/cairo/{i}", f"include/cairo/{i}") + composer.add_dir("bin", "bin") + +def pack_libcairo_gobject(composer): + composer.makedir("lib") + for i in os.listdir("lib"): + if ".so" in i and "gobject" in i: + composer.addfile(f"lib/{i}", f"lib/{i}") + +def pack_libcairo_gobject_dev(composer): + composer.makedirs("lib/pkgconfig") + for i in os.listdir("lib/pkgconfig"): + if "gobject" in i: + composer.addfile(f"lib/pkgconfig/{i}", f"lib/pkgconfig/{i}") + composer.makedirs("include/cairo") + for i in os.listdir("include/cairo"): + if "gobject" in i: + composer.addfile(f"include/cairo/{i}", f"include/cairo/{i}") + + +package("libcairo") +dep("libfontconfig @same-arch") +dep("libpng @same-arch") +dep("libpixman @same-arch") +dep("libfreetype @same-arch") +dep("libz @same-arch") +on_pack(pack_libcairo) + +package("libcairo-dev") +dep("libcairo (same)") +dep("libfontconfig-dev @same-arch") +dep("libpng-dev @same-arch") +dep("libpixman-dev @same-arch") +dep("libfreetype-dev @same-arch") +dep("libz-dev @same-arch") +on_pack(pack_libcairo_dev) + +package("libcairo-gobject") +dep("libcairo (same)") +dep("libglib @same-arch") +dep("libgobject @same-arch") +on_pack(pack_libcairo_gobject) + +package("libcairo-gobject-dev") +dep("libcairo-dev (same)") +dep("glib-dev @same-arch") +on_pack(pack_libcairo_gobject) -- 2.55.0