[121554] trunk/dports

mcalhoun at macports.org mcalhoun at macports.org
Sun Jun 29 15:55:52 PDT 2014


Revision: 121554
          https://trac.macports.org/changeset/121554
Author:   mcalhoun at macports.org
Date:     2014-06-29 15:55:52 -0700 (Sun, 29 Jun 2014)
Log Message:
-----------
New Port: qt5-mac and its associated Portgroups and subports. Attempts to fix #37331.

Added Paths:
-----------
    trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl
    trunk/dports/_resources/port1.0/group/qt5-1.0.tcl
    trunk/dports/aqua/qt5-mac/
    trunk/dports/aqua/qt5-mac/Portfile
    trunk/dports/aqua/qt5-mac/files/
    trunk/dports/aqua/qt5-mac/files/patch-machtest.diff
    trunk/dports/aqua/qt5-mac/files/patch-tst_benchlibcallgrind.diff
    trunk/dports/aqua/qt5-mac/files/patch-tst_qaccessibilitymac_helpers.diff
    trunk/dports/aqua/qt5-mac/files/patch-tst_qarraydata.diff
    trunk/dports/aqua/qt5-mac/files/patch-tst_qpluginloader.diff

Added: trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl	                        (rev 0)
+++ trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,50 @@
+# -*- 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: qmake-1.0.tcl 106930 2013-06-12 03:13:56Z ryandesign at macports.org $
+
+#
+# Copyright (c) 2013 The MacPorts Project
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Apple Computer, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived from
+#    this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# This portgroup defines standard settings when using qmake.
+#
+# Usage:
+# PortGroup                     qmake5 1.0
+
+PortGroup                       qt5 1.0
+
+configure.cmd                   ${qt_qmake_cmd} -r
+configure.pre_args-replace      --prefix=${prefix} PREFIX=${prefix}
+configure.universal_args-delete --disable-dependency-tracking
+
+# qmake defaults to -mmacosx-version-min=10.6, which implies stdlib is libstdc++, which caused problems
+#    (see https://trac.macports.org/wiki/FAQ#libcpp)
+configure.pre_args-append       "QMAKE_MACOSX_DEPLOYMENT_TARGET=${macosx_deployment_target}"
+
+# qt5-mac does not currently support debug.
+configure.pre_args-append       "CONFIG+=release"   

Added: trunk/dports/_resources/port1.0/group/qt5-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/qt5-1.0.tcl	                        (rev 0)
+++ trunk/dports/_resources/port1.0/group/qt5-1.0.tcl	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,291 @@
+# -*- 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
+# $Id: qt5-1.0.tcl 113952 2013-11-26 18:01:53Z michaelld at macports.org $
+
+# Copyright (c) 2014 The MacPorts Project
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Apple Computer, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived from
+#    this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# This portgroup defines standard settings when using Qt5.
+#
+# Usage:
+# PortGroup     qt5 1.0
+
+# no universal binary support in Qt 5
+#     see http://lists.qt-project.org/pipermail/interest/2012-December/005038.html
+#     see also https://bugreports.qt-project.org/browse/QTBUG-24952
+if { ![exists universal_variant] || [option universal_variant] } {
+    PortGroup muniversal 1.0
+    #universal_archs_supported i386 x86_64
+}
+
+# check for +debug variant of this port, and make sure Qt was
+# installed with +debug as well; if not, error out.
+platform darwin {
+    pre-extract {
+        if {[variant_exists debug] && \
+            [variant_isset debug] && \
+           ![info exists building_qt5]} {
+            if {![file exists ${qt_frameworks_dir}/QtCore.framework/QtCore_debug]} {
+                return -code error "\n\nERROR:\n\
+In order to install this port as +debug,
+Qt5 must also be installed with +debug.\n"
+            }
+        }
+    }
+}
+
+# standard Qt5 name
+global qt_name
+set qt_name             qt5
+
+# standard install directory
+global qt_dir
+set qt_dir              ${prefix}
+
+# standard Qt documents directory
+global qt_docs_dir
+set qt_docs_dir         ${qt_dir}/share/doc/${qt_name}
+
+# standard Qt plugins directory
+global qt_plugins_dir
+set qt_plugins_dir      ${qt_dir}/share/${qt_name}/plugins
+
+# standard Qt mkspecs directory
+global qt_mkspecs_dir
+set qt_mkspecs_dir      ${qt_dir}/share/${qt_name}/mkspecs
+
+# standard Qt imports directory
+global qt_imports_dir
+set qt_imports_dir      ${qt_dir}/share/${qt_name}/imports
+
+# standard Qt qml directory
+global qt_qml_dir
+set qt_qml_dir          ${qt_dir}/share/${qt_name}/qml
+
+# standard Qt includes directory
+global qt_includes_dir
+set qt_includes_dir     ${qt_dir}/include
+
+# standard Qt libraries directory
+global qt_libs_dir
+set qt_libs_dir         ${qt_dir}/lib
+
+# standard Qt libraries directory
+global qt_frameworks_dir
+set qt_frameworks_dir   ${qt_dir}/Library/Frameworks
+
+# standard Qt non-.app executables directory
+global qt_bins_dir
+set qt_bins_dir         ${qt_dir}/bin
+
+# standard Qt .app executables directory, if created
+global qt_apps_dir
+set qt_apps_dir         ${applications_dir}/Qt5
+
+# standard Qt data directory
+global qt_data_dir
+set qt_data_dir         ${qt_dir}/share/${qt_name}
+
+# standard Qt translations directory
+global qt_translations_dir
+set qt_translations_dir ${qt_dir}/share/${qt_name}/translations
+
+# standard Qt sysconf directory
+global qt_sysconf_dir
+set qt_sysconf_dir      ${qt_dir}/etc/${qt_name}
+
+# standard Qt examples directory
+global qt_examples_dir
+set qt_examples_dir     ${qt_dir}/share/${qt_name}/examples
+
+# standard Qt tests directory
+global qt_tests_dir
+set qt_tests_dir     ${qt_dir}/share/${qt_name}/tests
+
+# standard Qt demos directory
+global qt_demos_dir
+set qt_demos_dir        ${qt_dir}/share/${qt_name}/demos
+
+# standard CMake module directory for Qt-related files
+global qt_cmake_module_dir
+set qt_cmake_module_dir ${qt_libs_dir}/cmake
+
+# standard qmake command location
+global qt_qmake_cmd
+set qt_qmake_cmd        ${qt_dir}/bin/qmake
+
+# standard qmake spec
+# configure script prefers clang (but "[a]dvertise[s] g++ as an alternative on Lion and below").
+# According to http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations,
+#    however, Snow Leopard is only tested on "GCC as provided by Apple"
+# Create a variant for Snow Leopard that uses "-platform macx-g++-32" or "-platform macx-g++"?
+global qt_qmake_spec
+global qt_qmake_spec_32
+global qt_qmake_spec_64
+compiler.whitelist clang
+
+set qt_qmake_spec_32 macx-clang-32
+set qt_qmake_spec_64 macx-clang
+
+if { ![option universal_variant] || ![variant_isset universal] } {
+    if { ${build_arch} eq "i386" } {
+        set qt_qmake_spec ${qt_qmake_spec_32}
+    } else {
+        set qt_qmake_spec ${qt_qmake_spec_64}
+    }
+} else {
+    set qt_qmake_spec ""
+}
+
+# standard moc command location
+global qt_moc_cmd
+set qt_moc_cmd          ${qt_dir}/bin/moc
+
+# standard uic command location
+global qt_uic_cmd
+set qt_uic_cmd          ${qt_dir}/bin/uic
+
+# standard lrelease command location
+global qt_lrelease_cmd
+set qt_lrelease_cmd     ${qt_dir}/bin/lrelease
+
+# standard PKGCONFIG path
+global qt_pkg_config_dir
+set qt_pkg_config_dir   ${qt_libs_dir}/pkgconfig
+
+# data used by qmake
+global qt_host_data_dir
+set qt_host_data_dir   ${qt_dir}/share/${qt_name} 
+
+# standard cmake info for Qt5
+global qt_cmake_defines
+set qt_cmake_defines    \
+    "-DQT_QT_INCLUDE_DIR=${qt_includes_dir} \
+     -DQT_QMAKESPEC=${qt_qmake_spec} \
+     -DQT_ZLIB_LIBRARY=${prefix}/lib/libz.dylib \
+     -DQT_PNG_LIBRARY=${prefix}/lib/libpng.dylib"
+
+# allow for depending on either qt5-mac and qt5-mac-devel, simultaneously
+
+if {![info exists building_qt5]} {
+    if {${os.platform} == "darwin"} {
+
+        # see if the framework install exists, and if so depend on it;
+        # if not, depend on the library version
+
+        if {[file exists ${qt_frameworks_dir}/QtCore/QtCore]} {
+            depends_lib-append path:Library/Frameworks/QtCore/QtCore:qt5-mac
+        } else {
+            depends_lib-append path:lib/libQtCore.5.dylib:qt5-mac
+        }
+    }
+}
+
+# standard configure environment, when not building qt5
+
+if {![info exists building_qt5]} {
+    configure.env-append \
+        QTDIR=${qt_dir} \
+        QMAKE=${qt_qmake_cmd} \
+        MOC=${qt_moc_cmd}
+
+    if { ![option universal_variant] || ![variant_isset universal] } {
+        configure.env-append QMAKESPEC=${qt_qmake_spec}
+    } else {
+        set merger_configure_env(i386)   "QMAKESPEC=${qt_qmake_spec_32}"
+        set merger_configure_env(x86_64) "QMAKESPEC=${qt_qmake_spec_64}"
+    }
+
+    # make sure the Qt binaries' directory is in the path, if it is
+    # not the current prefix
+
+    if {${qt_dir} != ${prefix}} {
+        configure.env-append PATH=${qt_dir}/bin:$env(PATH)
+    }
+} else {
+    configure.env-append QMAKE_NO_DEFAULTS=""
+}
+
+# standard build environment, when not building qt5
+
+if {![info exists building_qt5]} {
+    build.env-append \
+        QTDIR=${qt_dir} \
+        QMAKE=${qt_qmake_cmd} \
+        MOC=${qt_moc_cmd}
+
+    if { ![option universal_variant] || ![variant_isset universal] } {
+        build.env-append QMAKESPEC=${qt_qmake_spec}
+    } else {
+        set merger_build_env(i386)   "QMAKESPEC=${qt_qmake_spec_32}"
+        set merger_build_env(x86_64) "QMAKESPEC=${qt_qmake_spec_64}"
+    }
+
+    # make sure the Qt binaries' directory is in the path, if it is
+    # not the current prefix
+
+    if {${qt_dir} != ${prefix}} {
+        build.env-append    PATH=${qt_dir}/bin:$env(PATH)
+    }
+}
+
+# use PKGCONFIG for Qt discovery in configure scripts
+depends_build-append    port:pkgconfig
+
+# standard destroot environment
+if { ![option universal_variant] || ![variant_isset universal] } {
+    destroot.env-append \
+        INSTALL_ROOT=${destroot}
+} else {
+    foreach arch ${configure.universal_archs} {
+        lappend merger_destroot_env($arch) INSTALL_ROOT=${workpath}/destroot-${arch}
+    }
+}
+
+# standard destroot environment, when not building qt5
+
+if {![info exists building_qt5]} {
+    destroot.env-append \
+        QTDIR=${qt_dir} \
+        QMAKE=${qt_qmake_cmd} \
+        MOC=${qt_moc_cmd}
+
+    if { ![option universal_variant] || ![variant_isset universal] } {
+        build.env-append QMAKESPEC=${qt_qmake_spec}
+    } else {
+        set destroot_build_env(i386)   "QMAKESPEC=${qt_qmake_spec_32}"
+        set destroot_build_env(x86_64) "QMAKESPEC=${qt_qmake_spec_64}"
+    }
+
+    # make sure the Qt binaries' directory is in the path, if it is
+    # not the current prefix
+
+    if {${qt_dir} != ${prefix}} {
+        destroot.env-append PATH=${qt_dir}/bin:$env(PATH)
+    }
+}

Added: trunk/dports/aqua/qt5-mac/Portfile
===================================================================
--- trunk/dports/aqua/qt5-mac/Portfile	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/Portfile	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,420 @@
+# -*- 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
+# $Id$
+
+PortSystem          1.0
+
+name                qt5-mac
+version             5.3.1
+set branch          [join [lrange [split ${version} .] 0 1] .]
+
+categories          aqua
+platforms           macosx
+maintainers         mcalhoun openmaintainer
+license             {LGPL-2.1 GPL-3}
+
+homepage            http://qt-project.org
+description         Qt Tool Kit
+long_description    Qt Tool Kit: A cross-platform framework \
+    (headers, data, and libraries) for writing \
+    cross-platform GUI-based applications.
+
+distname            qt-everywhere-opensource-src-${version}
+
+master_sites        http://download.qt-project.org/official_releases/qt/${branch}/${version}/single/
+
+checksums           rmd160  4cf6af424fe84223c5d9570848b4e21e251c5cdf \
+                    sha256  ba898625ba525d90a54739d2e33e4701d0bcd22d45663737b8123cd9b17b35a1
+
+if { ${os.major} < 10 } {
+    pre-fetch {
+        ui_error "OS X prior to 10.7 (Lion) is not a Reference Configuration for Qt."
+        ui_error "OS X prior to 10.6 (Snow Leopard) is not even tested."
+        ui_error "See http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations"
+        return -code error "unsupported OS"
+    }
+} elseif { ${os.major} == 10 } {
+    pre-fetch {
+        ui_warn "OS X prior to 10.7 (Lion) is not a Reference Configuration for Qt."
+        if { [variant_isset universal] } {
+            ui_warn "OS X 10.6 (Snow Leopard) is \"occasionally tested\" but ONLY in 32-bit mode."
+            ui_warn "OS X 10.6 (Snow Leopard) is deprecated and scheduled for removal in Qt 5.4."
+        } else {
+            if { ${build_arch} eq "i386" } {
+                ui_warn "OS X 10.6 (Snow Leopard) is \"occasionally tested\"."
+                ui_warn "OS X 10.6 (Snow Leopard) is deprecated and scheduled for removal in Qt 5.4."
+            } else {
+                ui_warn "OS X 10.6 (Snow Leopard) is \"occasionally tested\" but ONLY in 32-bit mode."
+                ui_warn "OS X 10.6 (Snow Leopard) is deprecated and scheduled for removal in Qt 5.4."
+            }
+        }
+        ui_warn "See http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations"
+    }
+} elseif { ${os.major} > 13 } {
+    pre-fetch {
+        ui_warn "OS X subsequent to 10.9 (Mavericks) is not a Reference Configuration for Qt."
+        ui_warn "See http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations"
+    }
+} else {
+    # 11 <= ${os.major} <= 13
+    if { [variant_isset universal] } {
+        pre-fetch {
+            ui_warn "Multiple architectures is not a Reference Configuration for Qt."
+            ui_warn "See http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations"
+        }
+    } else {
+        if { ${build_arch} eq "i386" } {
+            pre-fetch {
+                ui_warn "32-bit mode is not a Reference Configuration for Qt."
+                ui_warn "See http://qt-project.org/doc/qt-5/supported-platforms.html#reference-configurations"
+            }
+        }
+    }
+}
+
+if { ${subport} eq "${name}-docs"  } {
+    universal_variant no
+}
+
+if { ${subport} eq ${name} || ${subport} eq "${name}-docs" } {    
+    # use the qt5 group; set 'building_qt5' so that the portgroup
+    # does not include certain parts
+    set building_qt5    1
+    PortGroup           qt5 1.0
+    PortGroup           xcodeversion 1.0
+    
+    conflicts           qt3 qt3-mac qt4-mac
+
+    minimum_xcodeversions   {10 3.2}
+    
+    pre-configure {
+        # See https://bugreports.qt-project.org/browse/QTBUG-34902
+        if {![catch {set installed [lindex [registry_active qt4-mac] 0]}]} {
+            ui_error "${name} fails if qt4-mac is active during configuration phase."
+            ui_error "Please deactivate qt4-mac to continue"
+            return -code error "conflicting port (qt4-mac)"
+        }
+    }
+    
+    # More testing is required to see if this is necessary.
+    use_parallel_build no
+    
+    # header file QtCore/private/qmachparser_p.h is included only if "defined(QT_BUILD_INTERNAL) && defined(Q_OF_MACH_O)"
+    #     code from header is used only "ifdef Q_OF_MACH_O"
+    #     the two must be consistent
+    #     assume the header include code is correct
+    patchfiles-append patch-tst_qpluginloader.diff
+    
+    # When testing, ensure that a universal object file is not inadvertently created.
+    patchfiles-append patch-machtest.diff
+
+    # On testing of 32-bit systems,
+    #  Pre-patch: QCOMPARE(unsigned long const&, unsigned int const&
+    # Post-patch: QCOMPARE(unsigned int  const&, unsigned int const&
+    # Function template is only instantiated for same first and second arguments.
+    patchfiles-append patch-tst_qarraydata.diff
+   
+    # see http://stackoverflow.com/questions/14506151/invalid-symbol-redefinition-in-inline-asm-on-llvm
+    patchfiles-append patch-tst_benchlibcallgrind.diff
+
+    # During testing, NSStringFromRect requires NSRect.
+    patchfiles-append patch-tst_qaccessibilitymac_helpers.diff
+    
+    # --prefix is not recognized.
+    configure.pre_args-delete       --prefix=${prefix}
+    
+    # --disable-dependency-tracking is not recognized.
+    configure.universal_args-delete --disable-dependency-tracking
+    
+    if {${configure.sdkroot} ne ""} {
+        configure.args-append \
+            -sdk [string tolower [join [lrange [split [lindex [split ${configure.sdkroot} "/"] end] "."] 0 end-1] "."]]
+    }
+    
+    configure.args-append                      \
+        -prefix         ${qt_dir}              \
+        -docdir         ${qt_docs_dir}         \
+        -headerdir      ${qt_includes_dir}     \
+        -plugindir      ${qt_plugins_dir}      \
+        -importdir      ${qt_imports_dir}      \
+        -qmldir         ${qt_qml_dir}          \
+        -datadir        ${qt_data_dir}         \
+        -libdir         ${qt_frameworks_dir}   \
+        -bindir         ${qt_bins_dir}         \
+        -translationdir ${qt_translations_dir} \
+        -sysconfdir     ${qt_sysconf_dir}      \
+        -examplesdir    ${qt_examples_dir}     \
+        -testsdir       ${qt_tests_dir}        \
+        -hostdatadir    ${qt_host_data_dir}
+    
+    # Configure options:
+    configure.args-append \
+        -release          \
+        -opensource       \
+        -confirm-license  \
+        -shared           \
+        -process
+    
+    # Third Party Libraries:
+    configure.args-append \
+        -no-mtdev         \
+        -no-harfbuzz      \
+        -openssl-linked   \
+        -no-xinput2       \
+        -no-xcb-xlib
+    
+    # configure options that don't show up in configure --help
+    configure.args-append \
+        -no-libudev       \
+        -no-egl
+    
+    # Additional options:
+    configure.args-append    \
+        {-make libs}         \
+        {-make tools}        \
+        {-nomake examples}   \
+        {-nomake tests}      \
+        -verbose             \
+        -no-optimized-qmake  \
+        -nis                 \
+        -cups                \
+        -iconv               \
+        -no-evdev            \
+        -icu                 \
+        -fontconfig          \
+        -strip               \
+        -no-pch              \
+        -dbus-linked         \
+        -no-xcb              \
+        -glib                \
+        -directfb            \
+        -no-linuxfb          \
+        -no-kms              \
+        -no-system-proxies   \
+        -framework
+    
+    foreach driver { db2 ibase mysql oci odbc psql sqlite sqlite2 tds } {
+        configure.args-append -no-sql-${driver}
+    }
+    
+    if { ![variant_isset universal] } {
+        configure.args-append "-platform ${qt_qmake_spec}"
+    } else {
+        set merger_configure_args(i386)   "-platform ${qt_qmake_spec_32}"
+        set merger_configure_args(x86_64) "-platform ${qt_qmake_spec_64}"
+    }
+    
+    # configure options that don't show up in configure --help
+    configure.args-append \
+        -no-openvg
+    
+    # Qt builds part of the system using environment provided my MacPorts.
+    # It builds the rest using its own internal environment.
+    # For consistency, clear MacPorts environment.
+    configure.cxx_stdlib
+    configure.sdkroot
+    configure.cc_archflags
+    configure.cxx_archflags
+    configure.objc_archflags
+    configure.objcxx_archflags
+    configure.ld_archflags
+    configure.cppflags
+    configure.cflags
+    configure.cxxflags
+    configure.objcflags
+    configure.objcxxflags
+    configure.ldflags
+    configure.pipe  no
+    if { [variant_isset universal] } {
+        set merger_arch_flag no
+    }
+    configure.march
+    configure.mtune
+    configure.universal_ldflags
+    configure.universal_cflags
+    configure.universal_cxxflags
+    configure.universal_cppflags
+}
+
+if { ${subport} eq ${name} } {
+    depends_lib                              \
+        port:zlib                            \
+        port:libpng                          \
+        port:jpeg                            \
+        port:freetype                        \
+        path:bin/dbus-daemon:dbus            \
+        port:openssl                         \
+        port:tiff                            \
+        port:libmng                          \
+        path:lib/pkgconfig/glib-2.0.pc:glib2 \
+        port:icu                             \
+        port:pcre                            \
+        port:libiconv
+
+    # see https://bugreports.qt-project.org/browse/QTBUG-35514
+    build.target
+    
+    if { [variant_isset universal] } {
+        merger-post-destroot {
+            foreach arch ${universal_archs_to_use} {
+                set dir ${destroot}-${arch}
+                
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_frameworks_dir}/pkgconfig/Qt5WebKit.pc
+                
+                foreach prlfl [glob ${dir}${qt_frameworks_dir}/*.framework/*.prl] {
+                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+                }
+                
+                foreach prlfl [glob ${dir}${qt_frameworks_dir}/*.prl] {
+                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+                }
+                
+                foreach prlfl [glob ${dir}${qt_frameworks_dir}/*.framework/*.prl] {
+                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+                }
+                
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_mkspecs_dir}/modules/qt_lib_bootstrap_private.pri
+                
+                reinplace \
+                    "s|^set(_qt5_corelib_extra_includes \"\${_qt5Core_install_prefix}/share/qt5//mkspecs/macx-clang.*\")$|set(_qt5_corelib_extra_includes \"\${_qt5Core_install_prefix}/share/qt5//mkspecs/macx-clang-32\" \"\${_qt5Core_install_prefix}/share/qt5//mkspecs/macx-clang\")|" \
+                    ${dir}${qt_frameworks_dir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake
+            }
+        }
+        
+        post-destroot {
+            # delete preprocessor comments surrounding QT_CPU_FEATURES.i386 and QT_CPU_FEATURES.x86_64
+            reinplace "/^#ifndef.*$/d" ${destroot}${qt_mkspecs_dir}/qmodule.pri
+            reinplace "/^#else.*$/d"   ${destroot}${qt_mkspecs_dir}/qmodule.pri
+            reinplace "/^#endif.*$/d"  ${destroot}${qt_mkspecs_dir}/qmodule.pri
+        }
+        
+        # The file ${prefix}/share/qt5/mkspecs/qconfig.pri is still not properly merged
+        # The solution is ???.
+    }
+    
+    post-destroot {
+        # move items out of the Frameworks directory that are more appropriate to lib directory
+        xinstall -m 775 -d ${destroot}${qt_cmake_module_dir}
+        foreach d [glob -tails -nocomplain -directory ${destroot}${qt_frameworks_dir}/cmake *] {
+            xinstall -m 775 -d ${destroot}${qt_cmake_module_dir}/${d}
+            foreach f [glob -nocomplain -directory ${destroot}${qt_frameworks_dir}/cmake/${d} *.cmake] {
+                # ${qt_frameworks_dir} is  ${qt_dir}/Library/Frameworks while
+                # ${qt_libs_dir}       is  ${qt_dir}/lib
+                # unless modified, cmake files will point to a directory that is too high in the directory hierarchy
+                reinplace "s|/../../../../|/../../../|g" ${f}
+                file rename ${f} ${destroot}${qt_cmake_module_dir}/${d}/
+            }
+        }
+        xinstall -m 775 -d ${destroot}${qt_pkg_config_dir}
+        foreach f [glob -nocomplain -directory ${destroot}${qt_frameworks_dir}/pkgconfig *.pc] {
+            file rename ${f} ${destroot}${qt_pkg_config_dir}
+        }
+        xinstall -m 775 -d ${destroot}${qt_libs_dir}/
+        foreach f [glob -nocomplain -directory ${destroot}${qt_frameworks_dir} *.{a,prl,la}] {
+            file rename ${f} ${destroot}${qt_libs_dir}/
+        }
+        
+        # move items out of the bin directory that are more appropriate to the Applications directory
+        xinstall -m 775 -d ${destroot}${qt_apps_dir}
+        foreach f [glob -nocomplain -directory ${destroot}${qt_bins_dir} *.app] {
+            file rename ${f} ${destroot}${qt_apps_dir}/
+        }
+    }
+    
+    variant harfbuzz description {(experimental) Use HarfBuzz-NG to do text shaping} {
+        depends_lib-append port:harfbuzz
+        configure.args-replace \
+            -no-harfbuzz       \
+            -system-harfbuzz
+    }
+    
+    variant tests description {Enable tests} {
+        configure.args-replace {-nomake tests} {-make tests}
+    }
+    
+    variant examples description {Build examples} {
+        configure.args-replace {-nomake examples} {-make examples}
+    }
+    
+    variant debug description {Build both release and debug library} {
+        configure.args-replace -release -debug-and-release
+    }
+}
+
+subport ${name}-docs {
+    depends_lib-append \
+        path:${prefix}/bin/qdoc:${name} \
+        path:${qt_plugins_dir}/sqldrivers/libqsqlite.dylib:${name}-sqlite3-plugin
+    
+    supported_archs   noarch
+    
+    build.target      docs
+    destroot.target   install_docs
+        
+    post-extract {
+        # For the most part, generated makefiles use ${prefix}/bin/qdoc.
+        # There are a couple of places that look in ${worksrcpath}/qtbase/src/tools/qdoc/.
+        ln -s ${prefix}/bin/qdoc ${worksrcpath}/qtbase/src/tools/qdoc/
+        ln -s ${prefix}/bin/qdoc ${worksrcpath}/qtbase/bin
+
+        # Similarly, location of qhelpgenerator is expected in ${worksrcpath}
+        xinstall -d -m 755 ${worksrcpath}/qttools/bin/
+        ln -s ${prefix}/bin/qhelpgenerator ${worksrcpath}/qttools/bin/
+        
+        # Without this file, the makefile ${worksrcpath}/qtwebkit/Source/WebCore/Makefile.WebCore.Target
+        #    keeps generating itself over and over again.
+        # This file is only created when the library is being built, however.   
+        xinstall -d -m 755 ${worksrcpath}/qtwebkit/Source/WebCore/generated
+        touch ${worksrcpath}/qtwebkit/Source/WebCore/generated/InspectorBackendCommands.qrc
+    }
+}
+
+# See http://qt-project.org/doc/qt-5/sql-driver.html for info on building SQL Database Drivers
+
+subport ${name}-sqlite3-plugin {
+    PortGroup           qmake5 1.0
+    
+    depends_lib-append port:sqlite3
+    
+    # for single architecture, easier to use
+    #    worksrcdir ${worksrcdir}/qtbase/src/plugins/sqldrivers/sqlite,
+    #    but doesn't work for universal build
+    configure.dir ${worksrcpath}/qtbase/src/plugins/sqldrivers/sqlite
+    build.dir     ${configure.dir}
+    destroot.dir  ${configure.dir}
+    
+    configure.args-append "INCLUDEPATH+=${prefix}/include" "LIBS+=\"-L${prefix}/lib -lsqlite3\""
+}
+
+subport ${name}-psql84-plugin {
+    PortGroup           qmake5 1.0
+    
+    depends_lib-append port:postgresql84
+    
+    # for single architecture, easier to use
+    #    worksrcdir ${worksrcdir}/qtbase/src/plugins/sqldrivers/psql,
+    #    but doesn't work for universal build
+    configure.dir ${worksrcpath}/qtbase/src/plugins/sqldrivers/psql
+    build.dir     ${configure.dir}
+    destroot.dir  ${configure.dir}
+    
+    configure.args-append "INCLUDEPATH+=${prefix}/include/postgresql84" "LIBS+=\"-L${prefix}/lib/postgresql84 -lpq\""
+}
+
+subport ${name}-mysql56-plugin {
+    PortGroup           qmake5 1.0
+    
+    depends_lib-append port:mysql56
+    
+    # for single architecture, easier to use
+    #    worksrcdir ${worksrcdir}/qtbase/src/plugins/sqldrivers/mysql,
+    #    but doesn't work for universal build
+    configure.dir ${worksrcpath}/qtbase/src/plugins/sqldrivers/mysql
+    build.dir     ${configure.dir}
+    destroot.dir  ${configure.dir}
+    
+    configure.args-append "INCLUDEPATH+=${prefix}/include/mysql56/mysql" "LIBS+=\"-L${prefix}/lib/mysql56/mysql -lmysqlclient_r\""
+}
+
+livecheck.type      regex
+livecheck.url       http://qt-project.org/downloads
+livecheck.regex     "Qt (5(?:\\.\\d+)*) for Mac"


Property changes on: trunk/dports/aqua/qt5-mac/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/aqua/qt5-mac/files/patch-machtest.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-machtest.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/files/patch-machtest.diff	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,15 @@
+--- qtbase/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro.orig	2014-06-19 03:08:00.000000000 -0700
++++ qtbase/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro	2014-06-27 11:09:55.000000000 -0700
+@@ -4,10 +4,10 @@
+     generate-bad.pl
+ 
+ i386.target = good.i386.dylib
+-i386.commands = $(CXX) $(CXXFLAGS) -shared -arch i386 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
++i386.commands = $(CXX) $(filter-out -arch i386 x86_64,$(CXXFLAGS)) -shared -arch i386 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
+ i386.depends += $$PWD/../fakeplugin.cpp
+ x86_64.target = good.x86_64.dylib
+-x86_64.commands = $(CXX) $(CXXFLAGS) -shared -arch x86_64 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
++x86_64.commands = $(CXX) $(filter-out -arch i386 x86_64,$(CXXFLAGS)) -shared -arch x86_64 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
+ x86_64.depends += $$PWD/../fakeplugin.cpp
+ 
+ # Current Mac OS X toolchains have no compiler for PPC anymore

Added: trunk/dports/aqua/qt5-mac/files/patch-tst_benchlibcallgrind.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_benchlibcallgrind.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/files/patch-tst_benchlibcallgrind.diff	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,14 @@
+--- qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp.orig	2014-06-28 00:25:11.000000000 -0700
++++ qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp	2014-06-19 03:08:01.000000000 -0700
+@@ -81,9 +81,9 @@
+     QBENCHMARK {
+         __asm__ __volatile__(
+             "mov $100000000,%%eax   \n"
+-            "LOOPTOP:               \n"
++            "1:                     \n"
+             "dec %%eax              \n"
+-            "jnz LOOPTOP            \n"
++            "jnz 1b                 \n"
+             : /* no output */
+             : /* no input */
+             : /* clobber */ "eax"

Added: trunk/dports/aqua/qt5-mac/files/patch-tst_qaccessibilitymac_helpers.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qaccessibilitymac_helpers.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/files/patch-tst_qaccessibilitymac_helpers.diff	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,11 @@
+--- qtbase/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm.orig	2014-06-19 03:08:01.000000000 -0700
++++ qtbase/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm	2014-06-28 00:58:02.000000000 -0700
+@@ -116,7 +116,7 @@
+ 
+ - (AXUIElementRef) ref { return reference; }
+ - (void) print {
+-    NSLog(@"Accessible Object role: '%@', description: '%@', value: '%@', rect: '%@'", self.role, self.description, self.value, NSStringFromRect(self.rect));
++    NSLog(@"Accessible Object role: '%@', description: '%@', value: '%@', rect: '%@'", self.role, self.description, self.value, NSStringFromRect(NSRectFromCGRect(self.rect)));
+     NSLog(@"    Children: %ld", [[self childList] count]);
+ }
+ 

Added: trunk/dports/aqua/qt5-mac/files/patch-tst_qarraydata.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qarraydata.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/files/patch-tst_qarraydata.diff	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,11 @@
+--- qtbase/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp~	2014-06-19 03:07:59.000000000 -0700
++++ qtbase/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp	2014-06-27 23:17:34.000000000 -0700
+@@ -797,7 +797,7 @@
+                     + minAlignment - Q_ALIGNOF(QArrayData)));
+ 
+         // Data is aligned
+-        QCOMPARE(quintptr(data->data()) % alignment, quintptr(0u));
++        QCOMPARE(quintptr(quintptr(data->data()) % alignment), quintptr(0));
+ 
+         // Check that the allocated array can be used. Best tested with a
+         // memory checker, such as valgrind, running.

Added: trunk/dports/aqua/qt5-mac/files/patch-tst_qpluginloader.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qpluginloader.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5-mac/files/patch-tst_qpluginloader.diff	2014-06-29 22:55:52 UTC (rev 121554)
@@ -0,0 +1,20 @@
+x--- .//qtbase/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp.orig	2014-02-01 13:37:28.000000000 -0700
++++ .//qtbase/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp	2014-04-19 10:57:51.000000000 -0700
+@@ -319,7 +319,7 @@
+ 
+ void tst_QPluginLoader::loadMachO_data()
+ {
+-#ifdef Q_OF_MACH_O
++#if defined(QT_BUILD_INTERNAL) && defined(Q_OF_MACH_O)
+     QTest::addColumn<int>("parseResult");
+ 
+     QTest::newRow("/dev/null") << int(QMachOParser::NotSuitable);
+@@ -355,7 +355,7 @@
+ 
+ void tst_QPluginLoader::loadMachO()
+ {
+-#ifdef Q_OF_MACH_O
++#if defined(QT_BUILD_INTERNAL) && defined(Q_OF_MACH_O)
+     QFile f(QFINDTESTDATA(QTest::currentDataTag()));
+     QVERIFY(f.open(QIODevice::ReadOnly));
+     QByteArray data = f.readAll();
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140629/d6ca3d23/attachment-0001.html>


More information about the macports-changes mailing list