# -*- coding: utf-8; mode: tcl; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; truncate-lines: t -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4 # $Id: Portfile 69297 2010-06-29 15:50:18Z michaelld@macports.org $ PortSystem 1.0 PortGroup select 1.0 set select_group qt4 set select_branch mac set select_port ${select_group}_select set select_name ${select_group}-${select_branch} select.group ${select_group} name ${select_name} #conflicts kdelibs3 kdelibs4 xmlrpcxx version 4.6.3 revision 1 categories aqua platforms macosx maintainers michaelld homepage http://qt.nokia.com/ description Qt Tool Kit (Native Aqua Version) long_description \ Qt is a cross-platform application and UI framework for writing \ cross-platform GUI applications. This version uses the native Aqua UI. \ For a X11 version, see qt4-x11\[-devel\]. master_sites trolltech distname qt-everywhere-opensource-src-${version} checksums md5 5c69f16d452b0bb3d44bc3c10556c072 \ sha1 1c18a564df9296c7cb0e0dedde40b9843e1b30e8 \ rmd160 ceb3ca78263d0d9cdf92fef903e30c0026db6bff depends_build port:pkgconfig port:${select_port} depends_lib port:zlib port:dbus port:openssl port:sqlite3 \ port:tiff port:libpng port:libmng port:jpeg # Test for Precompiled-headers support requires a C++ compiler, # but configure calls it, by default, with a C compiler. patchfiles patch-precomp.test.diff # The build process uses -fconstant-cfstrings. # configure.compiler should therefore not be one of the MacPorts compilers. # --prefix is not recognized. configure.pre_args-delete --prefix=${prefix} ################################################################################ # We do not want flags of any kind -- QT is smart enough to set up its own. # ################################################################################ configure.cflags configure.cppflags configure.cxxflags configure.ldflags configure.universal_cflags configure.universal_cppflags configure.universal_cxxflags configure.universal_ldflags configure.cc_archflags configure.cxx_archflags if {[info exists configure.ld_archflags]} { configure.ld_archflags } set dirname ${name} set qt_dir ${prefix}/libexec/${dirname} # # use compiler.cpath and compiler.library_path, as per # http://trac.macports.org/ticket/25321 for all -I and -L entries, # so-as to avoid conflicts with already-installed headers and # libraries (giving preference to internal-to-this-port first) # # CPATH is used instead of -I to avoid conflicts with other ports. # See http://trac.macports.org/ticket/15219 and # http://trac.macports.org/ticket/18723. # # -system-sqlite ensures the use SQLite provided by MacPorts instead of Qt. # # -dbus-linked prevends qt4 from trying to dynamically load libdbus-1, # which it is not able to find in ${prefix}. # # -openssl-linked ensures that the MacPorts openssl is used. # configure.args \ -v \ -debug-and-release \ -confirm-license \ -opensource \ -prefix ${qt_dir} \ -docdir ${qt_dir}/share/doc/${dirname} \ -examplesdir ${qt_dir}/share/${dirname}/examples \ -demosdir ${qt_dir}/share/${dirname}/demos \ -cocoa \ -system-sqlite \ -openssl-linked \ -dbus-linked \ -arch \"${build_arch}\" # Stop configure script from searching for SQL Drivers # not available from MacPorts. foreach driver {db2 ibase oci sqlite_symbian tds} { configure.args-append -no-sql-${driver} } # By default, disable most SQL Drivers. # There must be at least one enabled (http://trac.macports.org/ticket/15627). # SQLite is chosen to be always enabled because a copy of it is distributed # with Qt, so it is reasonable for the user to expect it. foreach driver {mysql odbc psql sqlite2} { configure.args-append -no-sql-${driver} } variant mysql description {Enable MySQL SQL Driver} { depends_lib-append path:lib/mysql5:mysql5 # reverse the search paths, such that the defaults are searched last compiler.cpath ${prefix}/include/mysql5/mysql:${compiler.cpath} compiler.library_path ${prefix}/lib/mysql5/mysql:${compiler.library_path} configure.args-delete -no-sql-mysql } variant odbc description {Enable iODBC SQL Driver} { depends_lib-append port:libiodbc configure.args-delete -no-sql-odbc } variant psql description {Enable PostgreSQL SQL Driver} { depends_lib-append port:postgresql83 # reverse the search paths, such that the defaults are searched last compiler.cpath ${prefix}/include/postgresql83:${compiler.cpath} compiler.library_path ${prefix}/lib/postgresql83:${compiler.library_path} configure.args-delete -no-sql-psql } variant sqlite2 description {Enable SQLite version 2 SQL Driver} { depends_lib-append port:sqlite2 configure.args-delete -no-sql-sqlite2 } variant raster description {Use raster graphics system by default} { configure.args-append -graphicssystem raster } variant no_demos description {Do not build demo programs} { configure.args-append -nomake demos } variant no_examples description {Do not build example programs} { configure.args-append -nomake examples } variant no_debug description {Do not include debugging libraries and pkgconfig files} { configure.args-delete -debug-and-release configure.args-append -release } variant universal { configure.universal_args-delete --disable-dependency-tracking configure.args-delete -arch \"${build_arch}\" configure.args-append -arch \"${universal_archs}\" if {[info exists universal_sysroot]} { configure.args-append -sdk ${universal_sysroot} } } # use the 10.4 SDK (the default) for 10.4 only. # and, build as Carbon by disabling Cocoa. platform darwin 8 { configure.args-delete -cocoa post-configure { fs-traverse item ${worksrcpath} { if {"Makefile" == [file tail ${item}]} { reinplace "s|-framework QtHelp|-framework QtHelp -lQtCLucene|" ${item} } } } } # use the 10.5 SDK for 10.5 or 10.6, # but only if not (doing universal and the universal sysroot is set) platform darwin 9 { if {![variant_isset universal] || ![info exists universal_sysroot]} { configure.args-append -sdk /Developer/SDKs/MacOSX10.5.sdk/ } } platform darwin 10 { if {![variant_isset universal] || ![info exists universal_sysroot]} { configure.args-append -sdk /Developer/SDKs/MacOSX10.5.sdk/ } } build.target first use_parallel_build yes destroot.destdir INSTALL_ROOT="${destroot}" post-patch { # Ensure that correct compilers are used. reinplace "s| g++\$| ${configure.cxx}|" ${worksrcpath}/mkspecs/common/g++.conf reinplace "s| gcc\$| ${configure.cc}|" ${worksrcpath}/mkspecs/common/g++.conf reinplace "s| g++\$| ${configure.cxx}|" ${worksrcpath}/mkspecs/macx-g++/qmake.conf reinplace "s| gcc\$| ${configure.cc}|" ${worksrcpath}/mkspecs/macx-g++/qmake.conf } post-destroot { # Fix .pc and .prl files by changing ${destroot}/lib to ${qt_dir}/lib foreach fixfile [glob -nocomplain -directory ${destroot} ${qt_dir}/lib/pkgconfig/* ${qt_dir}/lib/*.prl ${qt_dir}/lib/*/*.prl ${qt_dir}/share/${dirname}/demos/shared/*.prl] { reinplace \ "s|${worksrcpath}/lib|${qt_dir}/lib|g" \ ${fixfile} } # Install documentation. foreach doc { INSTALL LGPL_EXCEPTION.txt LICENSE.GPL3 LICENSE.LGPL README } { xinstall -c -m 644 ${worksrcpath}/${doc} \ ${destroot}${qt_dir}/share/doc/${name} } } post-activate { # install the appropriate select file if {[variant_isset no_debug]} { xinstall -c -m 644 ${filespath}/${select_name}-no-debug \ ${destroot}${prefix}/etc/select/${select_port}/${select_name} } else { xinstall -c -m 644 ${filespath}/${select_name} \ ${destroot}${prefix}/etc/select/${select_port}/${select_name} } # If this is the first qt4-* installed, select it. set current_select [exec ${prefix}/bin/${select_port} -s] if {${current_select} == "none"} { system "${prefix}/bin/${select_port} ${select_name}" } else { if {${current_select} != ${select_name}} { # Print out the 'select' info. ui_msg "\ Port ${current_select} is already selected.\n \ To fully complete this installation and make ${name} the default,\n \ please run:\n \ \tsudo ${select_port} ${select_name}" } } } livecheck.type regex livecheck.url http://get.qt.nokia.com/qt/source/ livecheck.regex "qt-everywhere-opensource-src-(\[0-9a-z.-\]+)${extract.suffix}"