# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 PortGroup active_variants 1.1 PortGroup muniversal 1.0 PortGroup xcodeversion 1.0 name gtk2 version 2.24.31 set branch [join [lrange [split ${version} .] 0 1] .] categories gnome x11 license LGPL-2+ maintainers nomaintainer platforms darwin description GTK+ widget toolkit long_description GTK+ is a highly usable, feature rich toolkit for creating graphical \ user interfaces which boasts cross platform compatibility and an easy \ to use API. GTK+ it is written in C, but has bindings to many other \ popular programming languages such as C++, Python and C# among others. homepage http://www.gtk.org/ distname gtk+-${version} use_xz yes master_sites gnome:sources/gtk+/${branch}/ minimum_xcodeversions {9 3.1} checksums rmd160 71feedd14b1a52eaa070a6cbf26d00e64d41de42 \ sha256 68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658 depends_build port:gtk-doc \ port:pkgconfig \ port:perl5 depends_lib port:atk \ path:lib/pkgconfig/pango.pc:pango \ port:gdk-pixbuf2 \ port:gobject-introspection # gtk2 applications would need librsvg to display SVG icons, however librsvg # indirectly depends on gtk2, so we can not list it as a dependency here. # port:librsvg depends_run port:shared-mime-info \ port:hicolor-icon-theme patchfiles-append patch-aliases.diff patchfiles-append patch-gtk-builder-convert.diff # autoreconf to deal with stupid issues during install (install: .libs/libferret.lai: No such file or directory) use_autoreconf yes autoreconf.args -fvi configure.args --enable-static \ --disable-glibtest \ --enable-introspection \ gio_can_sniff=yes configure.ccache no configure.cppflags-append -DX_LOCALE -D_IPP_PRIVATE_STRUCTURES=1 configure.cflags-append -fstrict-aliasing # gobject-introspection uses g-ir-scanner, which uses $CC from env if {[variant_isset universal]} { foreach arch ${configure.universal_archs} { lappend merger_build_args(${arch}) CC='${configure.cc} -arch ${arch}' lappend merger_destroot_args(${arch}) CC='${configure.cc} -arch ${arch}' } } else { build.args-append CC="${configure.cc} ${configure.cc_archflags}" destroot.args-append CC="${configure.cc} ${configure.cc_archflags}" } post-extract { # gtk2's Makefiles don't have proper dependencies, # so we must delete these to get them remade file delete ${worksrcpath}/gdk/gdkalias.h file delete ${worksrcpath}/gdk/gdkaliasdef.c file delete ${worksrcpath}/gtk/gtkalias.h file delete ${worksrcpath}/gtk/gtkaliasdef.c } pre-configure { if {![variant_isset quartz] && ![variant_isset x11]} { error "Either +x11 or +quartz is required" } } use_parallel_build yes test.run yes test.target check post-destroot { set docdir ${prefix}/share/doc/${name} xinstall -d ${destroot}${docdir} xinstall -m 644 -W ${worksrcpath} AUTHORS COPYING HACKING NEWS README \ ${destroot}${docdir} ui_debug "Creating gtk.immodules..." system "DYLD_LIBRARY_PATH=${destroot}${prefix}/lib \ ${destroot}${prefix}/bin/gtk-query-immodules-2.0 \ ${destroot}${prefix}/lib/gtk-2.0/2.10.0/immodules/*.so \ >${destroot}${prefix}/etc/gtk-2.0/gtk.immodules" reinplace "s|${destroot}||" ${destroot}${prefix}/etc/gtk-2.0/gtk.immodules } post-activate { ui_debug "Updating gdk-pixbuf.loaders..." system "${prefix}/bin/gdk-pixbuf-query-loaders \ >${prefix}/etc/gtk-2.0/gdk-pixbuf.loaders" ui_debug "Updating immodules.cache..." system "${prefix}/bin/gtk-query-immodules-2.0 --update-cache" } platform darwin 8 { if {[variant_isset quartz] || ![variant_isset x11]} { configure.ldflags-append -framework Cocoa -framework Carbon } # latest versions are incompatible with the CUPS in Tiger (#33262) configure.args-append --disable-cups # The rules enabled by gobject-introspection require GNU make 3.81+ (#38927) depends_build-append port:gmake build.cmd ${prefix}/bin/gmake } if {![variant_isset quartz]} { default_variants +x11 } if {[variant_isset universal]} { set cups /usr/bin/cups-config if {[info exists universal_sysroot]} { set cups ${universal_sysroot}${cups} } configure.env-append CUPS_CONFIG=${cups} # Find architectures which will not run on build platform. if {${os.major} >= 9} { set cpu64bit_capable [sysctl hw.cpu64bit_capable] } elseif {(![catch {sysctl hw.optional.x86_64} is_x86_64] && $is_x86_64) || (![catch {sysctl hw.optional.64bitops} is_ppc64] && $is_ppc64)} { set cpu64bit_capable 1 } else { set cpu64bit_capable 0 } if {${os.arch} eq "i386"} { set cross_archs ppc64 if {${os.major} >= 10} { lappend cross_archs ppc } set host_archs "ppc ppc64" set run_archs i386 if {${cpu64bit_capable}} { set run_archs "x86_64 ${run_archs}" } } else { set cross_archs "i386 x86_64" set host_archs "i386 x86_64" set run_archs ppc if {${cpu64bit_capable}} { set run_archs "ppc64 ${run_archs}" } } pre-configure { set run_arch "" foreach arch ${run_archs} { if {[lsearch ${universal_archs_to_use} ${arch}] != -1} { set run_arch ${arch} break } } if {${run_arch} eq ""} { ui_error "" ui_error "gtk2 requires at least one architecture runnable on this" ui_error "machine to be able to build universally. Please add at least" ui_error "one of the following architectures to `universal_archs` in" ui_error "\"${prefix}/etc/macports/macports.conf\":" ui_error "" ui_error "\t${run_archs}" ui_error "" } foreach arch ${host_archs} { lappend merger_configure_env(${arch}) \ NM='/usr/bin/nm -p' } foreach arch ${cross_archs} { lappend merger_configure_env(${arch}) \ GTK_UPDATE_ICON_CACHE=${worksrcpath}-${run_arch}/gtk/gtk-update-icon-cache \ GDK_PIXBUF_CSOURCE=${worksrcpath}-${run_arch}/gdk-pixbuf/gdk-pixbuf-csource lappend merger_build_env(${arch}) \ GDK_PIXBUF_MODULE_FILE=${worksrcpath}-${run_arch}/gdk-pixbuf/gdk-pixbuf.loaders } # Let gtk_host in .pc files be the same on all architectures set host powerpc if {${os.arch} eq "i386"} { set host i686 } reinplace s/@host@/${host}-apple-darwin${os.version}/ \ {*}[glob -directory ${worksrcpath} *.pc.in] } } variant quartz conflicts x11 { require_active_variants path:lib/pkgconfig/cairo.pc:cairo quartz require_active_variants path:lib/pkgconfig/pango.pc:pango quartz configure.args-append --with-gdktarget=quartz } variant x11 conflicts quartz { require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11 require_active_variants path:lib/pkgconfig/pango.pc:pango x11 depends_lib-append \ port:xorg-libXi \ port:xorg-libXrandr \ port:xorg-libXcursor \ port:xorg-libXinerama \ port:xorg-libXdamage \ port:xorg-libXcomposite \ port:xorg-libXfixes configure.args-append --with-xinput --enable-xinerama \ --x-include=${prefix}/include --x-lib=${prefix}/lib } variant bundle requires quartz description {Support including into a bundle} { configure.args-append --enable-quartz-relocation notes "You have enabled 'bundle' variant which breaks GTK2 when used outside of application bundle!" } livecheck.type regex livecheck.url ftp://ftp.gnome.org/pub/gnome/sources/gtk+/${branch}/ livecheck.regex {LATEST-IS-(\d+(?:\.\d+)*)}