90 lines
2.6 KiB
Python
90 lines
2.6 KiB
Python
import os
|
|
import glob
|
|
|
|
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 <[email protected]>")
|
|
source_url("https://gitlab.com/freedesktop-sdk/mirrors/freedesktop/cairo/cairo/-/archive/1.18.4/cairo-1.18.4.tar.gz")
|
|
|
|
builddep("shortcut/c")
|
|
builddep("shortcut/meson")
|
|
builddep("pkgconf")
|
|
builddep("glib-dev @target")
|
|
builddep("libfontconfig-dev @target")
|
|
builddep("libfreetype-dev @target")
|
|
builddep("libpng-dev @target")
|
|
builddep("libpixman-dev @target")
|
|
|
|
|
|
def fix_gobject_pc(path):
|
|
with open(path, 'r') as file:
|
|
content = file.read()
|
|
content = content.replace(get_prefix('libcairo'), get_prefix('libcairo-gobject'))
|
|
content = content.replace(get_prefix('libcairo-dev'), get_prefix('libcairo-gobject-dev'))
|
|
with open(path, 'wt+') as file:
|
|
file.write(content)
|
|
|
|
|
|
def build():
|
|
cpp.meson_setup([
|
|
"--prefix=/",
|
|
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()
|
|
fix_gobject_pc("lib/pkgconfig/cairo-gobject.pc")
|
|
|
|
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("libcairo")
|
|
dep("libfontconfig @same-arch")
|
|
dep("libpng @same-arch")
|
|
dep("libpixman @same-arch")
|
|
dep("libfreetype @same-arch")
|
|
dep("libz @same-arch")
|
|
on_pack(lambda c: pack_glob(c, ["lib/cairo", "lib/*so*"], ["gobject"]))
|
|
|
|
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(lambda c: pack_glob(c, ["lib/pkgconfig/*", "include/cairo/*"], ["gobject"]))
|
|
|
|
package("libcairo-gobject")
|
|
dep("libcairo (same)")
|
|
dep("libglib @same-arch")
|
|
dep("libgobject @same-arch")
|
|
on_pack(lambda c: pack_glob(c, ["lib/*gobject*"]))
|
|
|
|
package("libcairo-gobject-dev")
|
|
dep("libcairo-dev (same)")
|
|
dep("glib-dev @same-arch")
|
|
on_pack(lambda c: pack_glob(c, ["include/cairo/*gobject*", "lib/pkgconfig/*gobject*"]))
|