Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 92 additions & 94 deletions graphics/cairo/Portfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
PortSystem 1.0
PortGroup debug 1.0
PortGroup legacysupport 1.1
PortGroup meson 1.0
PortGroup muniversal 1.0
PortGroup xcodeversion 1.0

Expand All @@ -15,103 +16,83 @@ legacysupport.newest_darwin_requires_legacy 10
name cairo
conflicts cairo-devel
set my_name cairo
version 1.17.6
revision 2
checksums rmd160 b02bab53ca0f77bc3b8d095a6bfde56d7ab8c988 \
sha256 4eebc4c2bad0402bc3f501db184417094657d111fb6c06f076a82ea191fe1faf \
size 35055900
version 1.18.4
revision 0
checksums rmd160 757415ba8e1b5df92474644c887865a5ade9fd93 \
sha256 445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb \
size 32578804

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
use_parallel_build yes
dist_subdir ${my_name}
distname ${my_name}-${version}
use_xz yes

description a vector graphics library with cross-device output support

long_description Cairo is ${description}. It is designed to produce \
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).

depends_build path:bin/pkg-config:pkgconfig

depends_lib path:lib/pkgconfig/pixman-1.pc:libpixman \
path:lib/pkgconfig/glib-2.0.pc:glib2 \
port:fontconfig \
port:freetype \
port:libpng \
port:zlib \
port:expat

minimum_xcodeversions {8 2.4.1}

patchfiles-append cairo-script-interpreter.pc.in.patch
# Disable unexpected download of subprojects
meson.wrap_mode nodownload

# Prevent cairo from using librsvg, libspectre, poppler.
patchfiles-append patch-configure.diff
set py_ver 3.14
set py_ver_nodot [string map {. {}} ${py_ver}]
configure.python ${prefix}/bin/python${py_ver}

# Don't check stderr in configure tests.
patchfiles-append dont-check-stderr.patch
# Upstream patch to correctly set dylib versions
patchfiles-append patch-darwin-dylib-versions.diff

# Backport from 1.17.8 as that release is a major change
# https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/316
patchfiles-append memory-leak.patch

# https://trac.macports.org/ticket/34137
compiler.blacklist-append {clang < 318.0.61}

if {![info exists universal_possible]} {
set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
}
# https://trac.macports.org/ticket/27011
if {${configure.build_arch} eq "x86_64" || (${universal_possible} && [variant_isset universal] && "x86_64" in ${configure.universal_archs})} {
compiler.blacklist-append gcc-4.0
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}
}
}
}

configure.args --disable-gl \
--disable-quartz \
--disable-quartz-font \
--disable-quartz-image \
--disable-silent-rules \
--disable-symbol-lookup \
--disable-xlib \
--disable-xlib-xcb \
--disable-xcb \
--disable-xcb-shm \
--without-x \
--enable-ft \
--enable-pdf \
--enable-png \
--enable-ps \
--enable-script \
--enable-svg \
--enable-tee \
--enable-xml

# Prevent cairo from using ghostscript.
configure.args-append ac_cv_prog_GS=""

# Prevent cairo from using lzo2 because its GPL license makes cairo's effective license GPL too.
configure.args-append ac_cv_lib_lzo2_lzo2a_decompress=no

variant opengl requires x11 description {Add OpenGL graphics interface} {
depends_lib-append port:mesa

configure.args-replace --disable-gl --enable-gl
configure.args-append --enable-glx
}
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 \
-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 --disable-quartz --enable-quartz
configure.args-replace --disable-quartz-font --enable-quartz-font
configure.args-replace --disable-quartz-image --enable-quartz-image
configure.args-replace \
-Dquartz=disabled -Dquartz=enabled
}

default_variants +quartz
Expand All @@ -120,24 +101,44 @@ platform macosx {
variant_set quartz
}

if {[string match *gcc-4.* ${configure.compiler}]} {
# gcc-4 defaults to gnu89 which is "ISO C90 plus GNU extensions". We need gnu99.
# https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/264
configure.cflags-append -std=gnu99
}

variant x11 {
depends_lib-append port:xrender \
depends_lib-append \
port:xorg-libXext \
port:xorg-xcb-util

configure.args-replace --disable-xcb --enable-xcb
configure.args-replace --disable-xlib --enable-xlib
configure.args-replace --disable-xlib-xcb --enable-xlib-xcb
configure.args-replace --without-x --with-x
configure.args-append --enable-xlib-xrender \
--x-include=${prefix}/include \
--x-lib=${prefix}/lib
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
Expand All @@ -147,9 +148,6 @@ if {${os.platform} ne "darwin" || ${os.subplatform} ne "macosx"} {
variant_set x11
}

test.run yes
test.target check

livecheck.type regex
livecheck.url ${homepage}/news/
livecheck.regex ${my_name}-(\[0-9\]+\\.\[0-9\]*\[02468\]\\.\[0-9\]+)
livecheck.regex ${my_name}-(\[0-9.\]+)
11 changes: 0 additions & 11 deletions graphics/cairo/files/cairo-script-interpreter.pc.in.patch

This file was deleted.

109 changes: 0 additions & 109 deletions graphics/cairo/files/dont-check-stderr.patch

This file was deleted.

27 changes: 0 additions & 27 deletions graphics/cairo/files/memory-leak.patch

This file was deleted.

Loading