# -*- 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-devel conflicts cairo set my_name cairo version 1.18.2 revision 0 checksums rmd160 aafa79e1465929881ad147f0d301ab5e491d8d6d \ sha256 a62b9bb42425e844cc3d6ddde043ff39dbabedd1542eba57a2eb79f85889d45a \ size 32574256 categories graphics maintainers {ryandesign @ryandesign} {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.12 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 # Upstream patch to add build option 'lzo2', so that we can explicitly disable patchfiles-append patch-meson-add-option-lzo2.diff post-patch { 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:zlib # https://gitlab.freedesktop.org/cairo/cairo/-/issues/843 compiler.c_standard 2011 configure.args-append \ -Dfontconfig=enabled \ -Dfreetype=enabled \ -Dglib=enabled \ -Dlzo2=disabled \ -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 configure.args-replace -Dxlib=disabled -Dxlib=enabled configure.args-replace -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.\]+)