Files
macports-ports/graphics/cairo/Portfile
T
2026-07-10 19:32:13 -05:00

155 lines
5.9 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup debug 1.0
PortGroup legacysupport 1.1
PortGroup meson 1.0
PortGroup muniversal 1.0
PortGroup xcodeversion 1.0
# memmem
# https://gitlab.freedesktop.org/cairo/cairo/-/issues/635
legacysupport.newest_darwin_requires_legacy 10
# Please keep the cairo and cairo-devel ports as similar as possible.
name cairo
conflicts cairo-devel
set my_name cairo
version 1.18.4
revision 2
checksums rmd160 757415ba8e1b5df92474644c887865a5ade9fd93 \
sha256 445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb \
size 32578804
categories graphics
maintainers {mascguy @mascguy}
license {LGPL-2.1 MPL-1.1}
homepage https://www.cairographics.org
master_sites ${homepage}/releases/
platforms darwin macosx
dist_subdir ${my_name}
distname ${my_name}-${version}
use_xz yes
description Cairo is a vector graphics library with cross-device output support
long_description ${description}. It is designed to produce \
identical output on all output media while taking \
advantage of display hardware acceleration when \
available (e.g. through the X Render Extension).
# Disable unexpected download of subprojects
meson.wrap_mode nodownload
set py_ver 3.14
set py_ver_nodot [string map {. {}} ${py_ver}]
configure.python ${prefix}/bin/python${py_ver}
# Upstream patch to correctly set dylib versions
patchfiles-append patch-darwin-dylib-versions.diff
post-patch {
# Disable xcb-shm: MIT-SHM causes X11 BadAccess errors
# See https://trac.macports.org/ticket/40811
reinplace "s|xcbshm_dep = dependency('xcb-shm', required: get_option('xcb'))|xcbshm_dep = disabler()|" \
${worksrcpath}/meson.build
fs-traverse f ${worksrcpath} {
if {[string match *.py ${f}]} {
ui_info "patching env python3: ${f}"
reinplace -q "s|/usr/bin/env python3$|${configure.python}|" ${f}
}
}
}
depends_build-append path:bin/pkg-config:pkgconfig \
port:python${py_ver_nodot}
depends_lib-append port:expat \
port:fontconfig \
port:freetype \
path:lib/pkgconfig/glib-2.0.pc:glib2 \
path:lib/pkgconfig/pixman-1.pc:libpixman \
port:libpng \
port:lzo2 \
port:zlib
# https://gitlab.freedesktop.org/cairo/cairo/-/issues/843
compiler.c_standard 2011
configure.args-append --default-library=both \
-Dfontconfig=enabled \
-Dfreetype=enabled \
-Dglib=enabled \
-Dlzo=enabled \
-Dpng=enabled \
-Dquartz=disabled \
-Dspectre=disabled \
-Dsymbol-lookup=disabled \
-Dtee=enabled \
-Dtests=disabled \
-Dxcb=disabled \
-Dxlib=disabled \
-Dxlib-xcb=disabled
platform macosx {
variant quartz {
configure.args-replace \
-Dquartz=disabled -Dquartz=enabled
}
default_variants +quartz
# Don't allow Quartz support to be disabled. Keep the variant for awhile in
# case any dependents are using the active_variants portgroup to check for it.
variant_set quartz
}
variant x11 {
depends_lib-append port:xorg-libXext \
port:xorg-xcb-util \
port:xrender
configure.args-replace -Dxcb=disabled -Dxcb=enabled \
-Dxlib=disabled -Dxlib=enabled \
-Dxlib-xcb=disabled -Dxlib-xcb=enabled
}
proc port_test_ver_check {p_name p_ver p_rev} {
if { [catch {set port_ver_info [lindex [registry_active ${p_name}] 0]}] } {
error "Tests require that ${p_name} be active; install, then re-run tests"
} else {
set test_ver ${p_ver}_${p_rev}
set port_ver [lindex ${port_ver_info} 1]_[lindex ${port_ver_info} 2]
ui_info "port_test_ver_check: ${p_name}: test_ver: ${test_ver}; port_ver: ${port_ver}"
if { [vercmp ${port_ver} ${test_ver}] != 0 } {
error "Tests require installed version of ${p_name} to match port; update, then re-run tests"
}
}
}
variant tests description {Enable tests} {
pre-configure {
port_test_ver_check ${subport} ${version} ${revision}
}
depends_build-append port:ghostscript \
path:lib/pkgconfig/librsvg-2.0.pc:librsvg \
path:lib/pkgconfig/poppler.pc:poppler
configure.args-replace -Dtests=disabled -Dtests=enabled
test.run yes
}
default_variants +x11
if {${os.platform} ne "darwin" || ${os.subplatform} ne "macosx"} {
# When not on macOS, don't allow X11 support to be disabled, since it is the
# only available option.
variant_set x11
}
livecheck.type regex
livecheck.url ${homepage}/news/
livecheck.regex ${my_name}-(\[0-9.\]+)