# $Id: Portfile 42478 2008-11-22 00:38:56Z mcalhoun@macports.org $ PortSystem 1.0 name cairo set my_name cairo version 1.8.4 categories graphics maintainers ryandesign homepage http://cairographics.org/ master_sites ${homepage}releases/ platforms darwin macosx use_parallel_build yes dist_subdir ${my_name} distname ${my_name}-${version} description \ Cairo is a vector graphics library with cross-device output support. long_description \ Cairo is designed to produce identical output on all output media \ while taking advantage of display hardware acceleration when available \ (eg. through the X Render Extension). checksums \ md5 a5067e355e78294db2485aa97afd1115 \ sha1 57fd2c7e0af16bee7cd53436d7c9dc526784f1da \ rmd160 16e0c6a0342c98219212dac1ff956c2cb839b4e5 depends_build \ port:pkgconfig depends_lib \ path:lib/pkgconfig/pixman-1.pc:libpixman \ port:xrender \ port:fontconfig \ port:freetype \ port:libpng \ port:zlib \ port:expat pre-configure { set pixman_minimum_version 0.12.0 set pixman_installed_version [exec pkg-config pixman-1 --modversion] if {[rpm-vercomp ${pixman_installed_version} ${pixman_minimum_version}] < 0} { return -code error "cairo ${version} requires pixman ${pixman_minimum_version} or later but you have pixman ${pixman_installed_version}." } } # The +universal variant is written in such a way that the port's global # configure.args must not be empty! configure.args \ --x-includes=${x11prefix}/include \ --x-libraries=${x11prefix}/lib \ --disable-glitz \ --disable-quartz \ --disable-quartz-font \ --disable-quartz-image \ --disable-xcb \ --enable-freetype \ --enable-pdf \ --enable-png \ --enable-ps \ --enable-svg \ --enable-xlib \ --enable-xlib-xrender \ --with-x variant glitz conflicts no_x11 description {Add glitz graphics interface} { depends_lib-append \ port:glitz configure.args-delete \ --disable-glitz configure.args-append \ --enable-glitz } variant no_x11 conflicts glitz description {Omit X11 support} { depends_lib-delete \ port:xrender configure.args-delete \ --x-includes=${x11prefix}/include \ --x-libraries=${x11prefix}/lib \ --enable-xlib \ --enable-xlib-xrender \ --with-x configure.args-append \ --disable-xlib \ --disable-xlib-xrender \ --without-x } platform macosx { pre-fetch { if {${os.major} == 8} { set minimum_xcodeversion 2.4.1 set current_xcodeversion [exec defaults read /Developer/Applications/Xcode.app/Contents/Info CFBundleShortVersionString] if {[rpm-vercomp ${current_xcodeversion} ${minimum_xcodeversion}] < 0} { return -code error "You have Xcode ${current_xcodeversion}. Please update to at least Xcode ${minimum_xcodeversion}." } } } if {${os.major} > 7} { configure.args-delete \ --disable-quartz \ --disable-quartz-font \ --disable-quartz-image \ configure.args-append \ --enable-quartz \ --enable-quartz-font \ --enable-quartz-image \ post-destroot { xinstall -m 0644 -W [lindex ${my_worksrcpaths} 0] \ src/cairo-quartz-font.pc \ ${destroot}${prefix}/lib/pkgconfig } } } if {![info exists universal_archs]} { set universal_archs {i386 ppc} } set first_arch [lindex ${universal_archs} 0] set my_worksrcpaths ${worksrcpath} variant universal { set my_worksrcpaths {} foreach arch ${universal_archs} { lappend my_worksrcpaths ${workpath}/${arch} } post-patch { foreach arch ${universal_archs} { if {[string equal ${arch} ${first_arch}]} { move ${worksrcpath} ${workpath}/${first_arch} } else { copy ${workpath}/${first_arch} ${workpath}/${arch} } } } configure { foreach arch ${universal_archs} { set my_arch_flag "-arch ${arch}" set my_cflags "${configure.cflags} -isysroot ${sysroot} ${my_arch_flag}" set my_ldflags "${configure.ldflags} ${my_arch_flag}" system "cd ${workpath}/${arch} && CFLAGS=\"${my_cflags}\" CXXFLAGS=\"${my_cflags}\" LDFLAGS=\"${my_ldflags}\" ${configure.cmd} ${configure.pre_args} ${configure.args}" } } build { foreach arch ${universal_archs} { system "cd ${workpath}/${arch} && ${build.cmd} ${build.pre_args}" } } destroot { system "cd ${workpath}/${first_arch} && ${destroot.cmd} ${destroot.pre_args} ${destroot.post_args}" foreach lib [list [file readlink ${workpath}/${first_arch}/src/.libs/libcairo.dylib] libcairo.a] { set output_lib ${destroot}${prefix}/lib/${lib} set lipo_args {} foreach arch ${universal_archs} { lappend lipo_args -arch ${arch} ${workpath}/${arch}/src/.libs/${lib} } lappend lipo_args -create -output ${output_lib} delete ${output_lib} system "lipo ${lipo_args}" } } } test.run yes test.target check livecheck.check regex livecheck.url ${homepage}news/ livecheck.regex ${my_name}-(\[0-9\]+\\.\[0-9\]*\[02468\]\\.\[0-9\]+)