[142505] trunk/dports

mcalhoun at macports.org mcalhoun at macports.org
Sat Dec 12 06:02:33 PST 2015


Revision: 142505
          https://trac.macports.org/changeset/142505
Author:   mcalhoun at macports.org
Date:     2015-11-13 08:13:51 -0800 (Fri, 13 Nov 2015)
Log Message:
-----------
qt5 and qt5-mac
* rename qt5-mac to qt5
* restructure qt5 to be a series of (subport) modules
* upgrade 5.4.2 -> 5.5.1

Modified 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/Portfile
    trunk/dports/aqua/qt5/files/patch-machtest.diff
    trunk/dports/aqua/qt5/files/patch-shared.diff
    trunk/dports/aqua/qt5/files/patch-tst_benchlibcallgrind.diff
    trunk/dports/aqua/qt5/files/patch-tst_qpluginloader.diff
    trunk/dports/aqua/qt5-mac/Portfile

Added Paths:
-----------
    trunk/dports/aqua/qt5/
    trunk/dports/aqua/qt5/files/patch-add_sdk.diff
    trunk/dports/aqua/qt5/files/patch-configure.diff
    trunk/dports/aqua/qt5/files/patch-fix_sdk.diff
    trunk/dports/aqua/qt5/files/patch-icu.pro.diff
    trunk/dports/aqua/qt5/files/patch-midifix.diff
    trunk/dports/aqua/qt5/files/patch-pcfiles.diff
    trunk/dports/aqua/qt5/files/patch-qtwebengine32.diff

Removed Paths:
-------------
    trunk/dports/aqua/qt5/files/patch-tst_qaccessibilitymac_helpers.diff
    trunk/dports/aqua/qt5/files/patch-tst_qarraydata.diff
    trunk/dports/aqua/qt5-mac/files/

Modified: trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl	2015-11-13 15:24:04 UTC (rev 142504)
+++ trunk/dports/_resources/port1.0/group/qmake5-1.0.tcl	2015-11-13 16:13:51 UTC (rev 142505)
@@ -37,14 +37,70 @@
 # PortGroup                     qmake5 1.0
 
 PortGroup                       qt5 1.0
+PortGroup                       active_variants 1.1
 
-configure.cmd                   ${qt_qmake_cmd} -r
-configure.pre_args-replace      --prefix=${prefix} PREFIX=${prefix}
+# with the -r option, the examples do not install correctly (no source code)
+#     the install_sources target is not created in the Makefile(s)
+configure.cmd                   ${qt_qmake_cmd}
+#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}"
+# specify build configuration (compiler, 32-bit/64-bit, etc.)
+if { ![option universal_variant] || ![variant_isset universal] } {
+    configure.args-append -spec ${qt_qmake_spec}
+} else {
+    lappend merger_configure_args(i386)   -spec ${qt_qmake_spec_32}
+    lappend merger_configure_args(x86_64) -spec ${qt_qmake_spec_64}
+}
 
-# qt5-mac does not currently support debug.
-configure.pre_args-append       "CONFIG+=release"   
+# if qtbase was build as a universal,
+#    QT_ARCH and QT_TARGET_ARCH may be set incorrectly in ${qt_mkspecs_dir}/qconfig.pri,
+#    so set them manually
+if { ![option universal_variant] || ![variant_isset universal] } {
+    pre-configure {
+        if {[active_variants qt5-qtbase universal ""]} {
+            configure.args-append \
+                QT_ARCH=${build_arch} \
+                QT_TARGET_ARCH=${build_arch}
+        }
+    }
+} else {
+    foreach arch ${configure.universal_archs} {
+        lappend merger_configure_args(${arch}) \
+            QT_ARCH=${arch} \
+            QT_TARGET_ARCH=${arch}
+    }
+}
+
+if {![info exists qt5_qmake_request_no_debug]} {
+    variant debug description {Build both release and debug libraries} {}
+
+    # accommodating variant request varies depending on how qtbase was built
+    pre-configure {
+
+        # determine if qmake builds debug libraries by default (set via variants)
+        if {[active_variants qt5-qtbase debug ""]} {
+            set base_debug true
+        } else {
+            set base_debug false
+        }
+
+        # determine if the user wants to build debug libraries
+        if { [variant_exists debug] && [variant_isset debug] } {
+            set this_debug true
+        } else {
+            set this_debug false
+        }
+
+        # determine of qmake's default and user requests are compatible; override qmake if necessary
+        if { ${this_debug} && !${base_debug}  } {
+            configure.args-append "QT_CONFIG+=\"debug_and_release build_all\""
+        }
+
+        if { !${this_debug} && ${base_debug}  } {
+            configure.args-append "QT_CONFIG-=\"debug_and_release build_all\" CONFIG-=\"debug\""
+        }
+    }
+}

Modified: trunk/dports/_resources/port1.0/group/qt5-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/qt5-1.0.tcl	2015-11-13 15:24:04 UTC (rev 142504)
+++ trunk/dports/_resources/port1.0/group/qt5-1.0.tcl	2015-11-13 16:13:51 UTC (rev 142505)
@@ -37,35 +37,20 @@
 
 # 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
+#     and https://bugreports.qt.io/browse/QTBUG-24952
+supported_archs i386 x86_64
 if { ![exists universal_variant] || [option universal_variant] } {
     PortGroup muniversal 1.0
-    #universal_archs_supported i386 x86_64
+    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}/libexec/qt5-mac
+set qt_dir               ${prefix}/libexec/qt5
 
 # standard Qt non-.app executables directory
 global qt_bins_dir
@@ -134,13 +119,13 @@
 global qt_mkspecs_dir
 set qt_mkspecs_dir      ${qt_dir}/mkspecs
 
-# standard Qt .app executables directory, if created?
+# standard Qt .app executables directory, if created
 global qt_apps_dir
-set qt_apps_dir         ${qt_bins_dir}
+set qt_apps_dir         ${applications_dir}/Qt5
 
 # standard CMake module directory for Qt-related files
 #global qt_cmake_module_dir
-#set qt_cmake_module_dir ${qt_libs_dir}/cmake
+set qt_cmake_module_dir ${qt_libs_dir}/cmake
 
 # standard qmake command location
 global qt_qmake_cmd
@@ -163,8 +148,10 @@
 set qt_pkg_config_dir   ${qt_libs_dir}/pkgconfig
 
 # standard qmake spec
-# other platforms required? (see http://doc.qt.io/qt-5/supported-platforms.html and http://doc.qt.io/QtSupportedPlatforms/index.html)
-global qt_qmake_spec
+# other platforms required
+#     see http://doc.qt.io/qt-5/supported-platforms.html
+#     and http://doc.qt.io/QtSupportedPlatforms/index.html
+global qt_qmake_spe
 global qt_qmake_spec_32
 global qt_qmake_spec_64
 compiler.whitelist clang
@@ -173,7 +160,7 @@
 set qt_qmake_spec_64 macx-clang
 
 if { ![option universal_variant] || ![variant_isset universal] } {
-    if { ${build_arch} eq "i386" } {
+    if { ${configure.build_arch} eq "i386" } {
         set qt_qmake_spec ${qt_qmake_spec_32}
     } else {
         set qt_qmake_spec ${qt_qmake_spec_64}
@@ -183,79 +170,52 @@
 }
 
 # 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"
+#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"
 
-# set Qt understood arch types, based on user preference
-options qt_arch_types
-default qt_arch_types   {[string map {i386 x86} [get_canonical_archs]]}
-
-# allow for depending on either qt5-mac and qt5-mac-devel, simultaneously
-
 if {![info exists building_qt5]} {
-    if {${os.platform} eq "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
-        }
-    }
+    depends_lib-append port:qt5-qtbase
 }
 
 # 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}
+#    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} ne ${prefix}} {
-        configure.env-append PATH=${qt_dir}/bin:$env(PATH)
-    }
-} else {
-    configure.env-append QMAKE_NO_DEFAULTS=""
-}
+#    if {${qt_dir} ne ${prefix}} {
+#        configure.env-append PATH=${qt_dir}/bin:$env(PATH)
+#    }
 
-# standard build environment, when not building qt5
+    # 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}
+    #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}"
-    }
+    #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} ne ${prefix}} {
-        build.env-append    PATH=${qt_dir}/bin:$env(PATH)
-    }
+    #if {${qt_dir} ne ${prefix}} {
+    #    build.env-append    PATH=${qt_bins_dir}:$env(PATH)
+    #}
 }
 
 # use PKGCONFIG for Qt discovery in configure scripts
@@ -273,23 +233,23 @@
 
 # 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 {![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}"
-    }
+#    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} ne ${prefix}} {
-        destroot.env-append PATH=${qt_dir}/bin:$env(PATH)
-    }
-}
+#    if {${qt_dir} ne ${prefix}} {
+#        destroot.env-append PATH=${qt_dir}/bin:$env(PATH)
+#    }
+#}

Modified: trunk/dports/aqua/qt5/Portfile
===================================================================
--- trunk/dports/aqua/qt5-mac/Portfile	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/Portfile	2015-11-13 16:13:51 UTC (rev 142505)
@@ -3,10 +3,12 @@
 
 PortSystem          1.0
 
-name                qt5-mac
-version             5.4.2
-revision            1
+name                qt5
+version             5.5.1
+
+# get Qt's version numbers
 set branch          [join [lrange [split ${version} .] 0 1] .]
+set qt_major        [lindex [split ${version} .] 0]
 
 categories          aqua
 platforms           macosx
@@ -14,20 +16,26 @@
 license             {LGPL-2.1 GPL-3}
 
 homepage            http://qt.io
-description         Qt Tool Kit ${branch}
-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}
+# generate documentation from complete code base
+# generate modules from separate downloads
+if { ${subport} ne "${name}-docs" } {
+    master_sites        http://download.qt.io/official_releases/qt/${branch}/${version}/submodules
+} else {
+    master_sites        http://download.qt.io/official_releases/qt/${branch}/${version}/single/
+}
 
-master_sites        http://download.qt.io/official_releases/qt/${branch}/${version}/single/
+if { ${subport} ne ${name} } {
+    # file sizes are significantly smaller using xz
+    use_xz yes
+}
 
-checksums           rmd160  3382c482a99e114560f56a9fe9501b8cabf334a9 \
-                    sha256  cfc768c55f0a0cd232bed914a9022528f8f2e50cb010bf0e4f3f62db3dfa17bd
-
-if { ${os.major} < 11 } {
+if { ${os.platform} ne "darwin" } {
     pre-fetch {
+        ui_warn "${subport} is untested on \"${os.platform}\"."
+    }
+} elseif { ${os.major} < 11 } {
+    pre-fetch {
         ui_error "OS X prior to 10.8 (Mountain Lion) is not a Reference Configuration for Qt."
         ui_error "OS X prior to 10.7 (Lion) is not even tested."
         ui_error "See http://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
@@ -46,7 +54,7 @@
             ui_warn "See http://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
         }
     } else {
-        if { ${build_arch} eq "i386" } {
+        if { ${configure.build_arch} eq "i386" } {
             pre-fetch {
                 ui_warn "32-bit mode is not a Reference Configuration for Qt."
                 ui_warn "See http://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
@@ -55,44 +63,759 @@
     }
 }
 
-if { ${subport} eq "${name}-docs"  } {
+############################################################################### Modules Not Considered
+#
+# No qt5             (Doesn't Install Anything)
+# No qtactiveqt      (Windows Only)
+# No qtandroidextras (Android Only)
+# No qtdoc           (Doesn't Install Anything)
+# No qtwayland       (Linux Only)
+# No qtx11extras     (X11 Only)
+# No qtwinextras     (Windows Only)
+#
+###############################################################################
+
+############################################################################### Finding Dependencies
+#
+# grep -r "%dependencies" *
+# find ./ -name sync.profile
+#
+# grep -r qtCompileTest *
+#
+# find ./ -name config.tests
+#
+# find ./ -name Find\*.cmake
+#
+###############################################################################
+
+############################################################################### Notes
+#
+# qtconnectivity checks for bluetooth libraries
+#    bluez and bluez_le (Linux Only)
+#    btapi10_2_1 libbb2 (Blackberry Only)
+#
+# qtconnectivity depends on
+#    qtandroidextras    (Android Only)
+#
+# qttools depends on
+#    qtactiveqt (Windows Only)
+#
+# qtwebkit has tests for libraries in:
+#     Tools/qmake/mkspecs/features/configure.prf
+#     Tools/qmake/config.tests/
+#
+###############################################################################
+
+############################################################################### TODO
+#
+# TODO: possible to trim dependencies of qtbase?
+# TODO: force qttools to not depend on (deprecated) qtwebkit?
+# TODO: do not use rpath?
+# TODO: support older versions of OS X via different versions of Qt 5
+#
+###############################################################################
+
+############################################################################### Module Format
+#
+# "Qt Module Name" {
+#     checksum, rmd160
+#     checksum, sha256
+#     dependencies, build
+#     dependencies, lib
+#     dependencies, Qt module name
+#     Qt components provided
+#     included in "standard" installation of Qt (empty string is no, explanation string is yes)
+#     variant overrides
+# }
+#
+# module info found at https://doc.qt.io/qt-5/qtmodules.html
+#
+###############################################################################
+array set modules {
+    qt3d {
+        181929ce80c7e88e4230239c260242749771f8ad
+        e380906e2bcbd825dab45043bf063dd88b793c0d5fb050ee915bf4e2b58b1bf7
+        ""
+        "port:assimp"
+        "qtbase qtxmlpatterns qtdeclarative qtimageformats"
+        {"Qt3D Core" "Qt3D Renderer" "Qt3D Quick" "Qt3D Quick Renderer" "Qt3D Input"}
+        "technology preview module"
+        "variant overrides: "
+    }
+    qtbase {
+        ce4bccd0703aaf8d904fbecd1f334ef13d698a44
+        dfa4e8a4d7e4c6b69285e7e8833eeecd819987e1bdbe5baa6b6facd4420de916
+        ""
+        "port:zlib port:libpng port:jpeg port:freetype path:bin/dbus-daemon:dbus path:lib/libssl.dylib:openssl  port:tiff port:libmng path:lib/pkgconfig/glib-2.0.pc:glib2 port:icu port:pcre port:libiconv port:harfbuzz"
+        ""
+        {"Qt Gui" "Qt Widgets" "Qt Print Support" "Qt OpenGL" "Qt Core" "Qt XML" "Qt SQL" "Qt Network" "Qt Test" "Qt D-Bus" "Qt Concurrent" "Qt Platform Headers"}
+        ""
+        "variant overrides: "
+    }
+    qtcanvas3d {
+        ed68d3c61b0c67818626595a7bba14a627f5120b
+        759b171030d7110751943643885c1484c7900fed7737424d202e36bdeba0b080
+        ""
+        ""
+        "qtbase qtdeclarative"
+        {"Qt Canvas 3D"}
+        ""
+        "variant overrides: "
+    }
+    qtconnectivity {
+        ff138deaf87850b047c1e472188a2455b2e0ff54
+        3637e6def8582fc0fb3684179b93650720ba2da1311a560d358296153f245023
+        ""
+        ""
+        "qtbase qtdeclarative qtxmlpatterns"
+        {"Qt Bluetooth" "Qt NFC"}
+        ""
+        "variant overrides: "
+    }
+    qtdeclarative {
+        1d8939c42f4b510443365479ffe8bc525e0faac6
+        5fd14eefb83fff36fb17681693a70868f6aaf6138603d799c16466a094b26791
+        ""
+        ""
+        "qtbase qtxmlpatterns"
+        {"Qt QML" "Qt Quick" "Qt Quick Widgets"}
+        ""
+        "variant overrides: "
+    }
+    qtenginio {
+        5b23212c3da401b9c74f33a6486ba18166f129f6
+        a79936bd5b6a35aba28dd282291b28c8fa869b8d86652c62efe5e268d94defe2
+        ""
+        ""
+        "qtbase qtdeclarative qtxmlpatterns"
+        {"Enginio"}
+        ""
+        "variant overrides: "
+    }
+    qtgraphicaleffects {
+        43f6a91f75863f8333fc6b70456f1b0d175b55e4
+        9bca0f8db3a4289eceebfa9504915440fe3fa6301d90b65705e4ece528c12d47
+        ""
+        ""
+        "qtbase qtdeclarative qtxmlpatterns"
+        {"Qt Graphical Effects"}
+        ""
+        "variant overrides: "
+    }
+    qtimageformats {
+        75000000ddfbb83b960b73c07d2083b85dcd81fa
+        c97fee00c602f9f089fea480546d6e9d61a2b2297c2f163bfd9f8aba92b754a5
+        ""
+        "port:jasper port:libmng port:tiff port:webp"
+        "qtbase"
+        {"Qt Image Formats"}
+        ""
+        "variant overrides: "
+    }
+    qtlocation {
+        3792eedc159db6bf15eef706ee218f3cc5759a51
+        1fe948cb87649f4450be921cf3cdefc311595a80ef6a7a7b7484901baa0d6316
+        ""
+        ""
+        "qtbase qtxmlpatterns qtdeclarative qtquickcontrols"
+        {"Qt Location" "Qt Positioning"}
+        ""
+        "variant overrides: "
+    }
+    qtmacextras {
+        e31be686e79c1cf4a70357921f0caad4cd496c79
+        025350fdcc936118539ee3703115549b4547def329d3d959b9db5bd853ec9058
+        ""
+        ""
+        "qtbase"
+        {"Qt Mac Extras"}
+        ""
+        "variant overrides: "
+    }
+    qtmultimedia {
+        68049da5e203e484de766c17d683a34a888e0603
+        7cc7ca99f41587c188303670499e5c75101f9a8cb6178e8f29cc941e637d957f
+        ""
+        ""
+        "qtbase qtxmlpatterns qtdeclarative"
+        {"Qt Multimedia" "Qt Multimedia Widgets"}
+        ""
+        "variant overrides: "
+    }
+    qtquick1 {
+        dd1c71468426a5b9fe4f5297a6f2b04c9caddc78
+        c812a7e59a8b9f0a87693181059933e15fef04bc875b6486cd653be1b9b51f2c
+        ""
+        ""
+        "qtbase qtscript qtxmlpatterns qtdeclarative qttools qtwebkit"
+        {"Qt Declarative"}
+        "deprecated"
+        "variant overrides: "
+    }
+    qtquickcontrols {
+        3975fbb34a74d55f88f47b436b6fca6ce3f7c078
+        1b7a8389d656066c629bd2cb520b39a7eb041d184b567dd1b9639b88d841fcf0
+        ""
+        ""
+        "qtbase qtdeclarative qtxmlpatterns"
+        {"Qt Quick Controls" "Qt Quick Dialogs" "Qt Quick Layouts" "Qt Quick Extras"}
+        ""
+        "variant overrides: "
+    }
+    qtscript {
+        7d8ff8c4462b21b83212dd780030a01bd00b8ca9
+        cd46dddd998f22bcb06447e0407fef81f7052f25bc770b1c27625654cee828fd
+        ""
+        ""
+        "qtbase"
+        {"Qt Script" "Qt Script Tools"}
+        "deprecated in favor QJS* in Qt QML"
+        "variant overrides: "
+    }
+    qtsensors {
+        9a3eaad761efaefc0a56258c0bd64e01d0889cba
+        5d264fc0729a5d7679bd4eb8d7a0a9b142ed38d09fa68fc7dfe57f64afc8eeea
+        ""
+        ""
+        "qtbase qtxmlpatterns qtdeclarative"
+        {"Qt Sensors"}
+        ""
+        "variant overrides: "
+    }
+    qtserialport {
+        00c53b307fd6ad509aedc6ed0b3a464ac3d8e809
+        a034dbfb023db1b9b9de54390f7e76a48c1d1eb12533b0ffd574505c99968f7a
+        ""
+        ""
+        "qtbase"
+        {"Qt Serial Port"}
+        ""
+        "variant overrides: "
+    }
+    qtsvg {
+        db1dd37355a1e4b40a37decc1df60d574ab14088
+        f7f588be48befd9ccab5a6086832551b8899e8bed9e603ddea979581e05a91c7
+        ""
+        ""
+        "qtbase"
+        {"Qt SVG"}
+        ""
+        "variant overrides: "
+    }
+    qttools {
+        279aacc94f7fa583a59d3fe005ecb3e598e92b32
+        4361f6ce49717058160908297841a18b94645cec593d1b48fb126c9d06c87bfd
+        ""
+        ""
+        "qtbase qtxmlpatterns qtdeclarative qtwebkit"
+        {"Qt Help" "Qt UI Tools" "Qt Designer" }
+        ""
+        "variant overrides: "
+    }
+    qttranslations {
+        f9c956935768cea5c935a10493963f7e411dc255
+        41f800710f0bc6ca263f1e54f1fa22be7043962999304e73ce9887ebefc7a4c6
+        ""
+        ""
+        "qtbase qttools"
+        {"translation files"}
+        ""
+        "variant overrides: ~examples ~tests ~debug noarch"
+    }
+    qtwebchannel {
+        fca861f785f9d718aa17853bf7a3c072efcd53b7
+        7f4295ee57cd4ecba3cb263452d2a08d501b45c9a2b8b7794b6a97d7652f15d0
+        ""
+        ""
+        "qtbase qtwebsockets qtdeclarative"
+        {"Qt WebChannel"}
+        ""
+        "variant overrides: "
+    }
+    qtwebengine {
+        0c24bb89cc72a18c06e2fd613db1eb879ada2a2a
+        7c4d328dd305991aaf0c3450615f4a8e5d80152194bee6f5925bd8d3477e2b90
+        ""
+        ""
+        "qtbase qtdeclarative qtxmlpatterns qtquickcontrols qtwebchannel"
+        {"Qt WebEngine" "Qt WebEngine Widgets"}
+        "very large and relatively new; requires newer version of XCode"
+        "variant overrides: "
+    }
+    qtxmlpatterns {
+        403a3b2377728629b6a3f1073b24af3f3360adf7
+        b537eb0252988e3805a32a16c65038973371d647baf246fdf703bde725d0e8ec
+        ""
+        ""
+        "qtbase"
+        {"Qt XML Patterns"}
+        ""
+        "variant overrides: "
+    }
+    qtwebsockets {
+        83dcc5d07dca6c1cccfaed13cd16fde940ad0b94
+        cf4e834a867b90337188be504ef20184c52666370f721e704952988f8cb12deb
+        ""
+        ""
+        "qtbase qtdeclarative"
+        {"Qt WebSockets"}
+        ""
+        "variant overrides: "
+    }
+    qtwebkit {
+        0594ec1150f7899d72f57d8ff2f108f3f75faaf9
+        77583f9dbd3e6ad874386df71b165dc3ce88efdabbc6e5d97a959ee2187d6d69
+        ""
+        "port:fontconfig port:icu port:leveldb port:webp port:libxml2 port:libxslt port:zlib port:sqlite3"
+        "qtbase qtxmlpatterns qtdeclarative qtlocation qtmultimedia qtsensors qtwebchannel"
+        {"Qt WebKit" "Qt WebKit Widgets"}
+        "deprecated in favor of Qt WebEngine"
+        "variant overrides: "
+    }
+    qtwebkit-examples {
+        6d2a3aee163e419fbc6ec56a941c4354e8e93b7d
+        098935b42d6d249027d1a635e4e70edc3d2969dd860f825b36aec06fc72e46c6
+        ""
+        ""
+        "qtbase qtwebkit qtscript qtsvg qtxmlpatterns qtdeclarative qttools"
+        {"examples for Qt WebKit"}
+        "deprecated in favor of Qt WebEngine; doen't provide functionality"
+        "variant overrides: ++examples"
+    }
+}
+
+############################################################################### SQL Plugin Format
+#
+# {
+#     variant name
+#     dependency, library
+#     include path
+#     link requirement
+#     obsolete? (empty string is no)
+# }
+#
+###############################################################################
+array set sql_plugins {
+    {sqlite SQLite} {
+        {
+            "sqlite3"
+            "port:sqlite3"
+            "${prefix}/include"
+            "-L${prefix}/lib -lsqlite3"
+            ""
+        }
+    }
+    {psql PostgreSQL} {
+        {
+            "postgresql94"
+            "port:postgresql94"
+            "${prefix}/include/postgresql94"
+            "-L${prefix}/lib/postgresql94 -lpq"
+            ""
+        }
+        {
+            "postgresql84"
+            "port:postgresql84"
+            "${prefix}/include/postgresql84"
+            "-L${prefix}/lib/postgresql84 -lpq"
+            ""
+        }
+    }
+    {mysql MySQL} {
+        {
+            "mysql56"
+            "port:mysql56"
+            "${prefix}/include/mysql56/mysql"
+            "-L${prefix}/lib/mysql56/mysql -lmysqlclient_r"
+            ""
+        }
+    }
+}
+
+foreach {module module_info} [array get modules] {
+
+    subport ${name}-${module} {
+        distname        ${module}-opensource-src-${version}
+
+        # see https://bugreports.qt.io/browse/QTBUG-35514
+        build.target
+
+        checksums                              \
+            rmd160  [lindex ${module_info} 0]  \
+            sha256  [lindex ${module_info} 1]
+
+        foreach deps [lindex ${module_info} 2] {
+            depends_build-append [subst ${deps}]
+        }
+
+        foreach deps [lindex ${module_info} 3] {
+            depends_lib-append [subst ${deps}]
+        }
+
+        foreach qtdeps [lindex ${module_info} 4] {
+            depends_lib-append port:${name}-${qtdeps}
+        }
+
+        description       Tools and Module(s) for Qt Tool Kit ${qt_major}
+
+        set modules_provided_list [lindex ${module_info} 5]
+        if { [llength ${modules_provided_list}] == 1 } {
+            set modules_provided_join [lindex ${modules_provided_list} 0]
+        } elseif { [llength ${modules_provided_list}] == 2 } {
+            set modules_provided_join [join ${modules_provided_list} " and "]
+        } else {
+            set modules_provided_join [join [list [join [lrange ${modules_provided_list} 0 end-1] ", "] [lindex ${modules_provided_list} end]] ", and "]
+        }
+
+        long_description  "Tools and Module(s) for Qt Tool Kit ${qt_major}: ${modules_provided_join}"
+    }
+}
+
+subport ${name}-docs {
+    distname            qt-everywhere-opensource-src-${version}
+
+    checksums                                             \
+        rmd160  42bf7768dafb868f2cdef857fd3e444520f2a706  \
+        sha256  6f028e63d4992be2b4a5526f2ef3bfa2fe28c5c757554b11d9e8d86189652518
+
+    description         Documentation for Qt Tool Kit ${qt_major}
+    long_description    Documentation for Qt Tool Kit ${qt_major}
+
+    supported_archs   noarch
     universal_variant no
+
+    build.target      docs
+    destroot.target   install_docs
 }
 
-if { ${subport} eq ${name} || ${subport} eq "${name}-docs" } {
+# see http://doc.qt.io/qt-5/sql-driver.html for info on building SQL Database Drivers
+foreach {sql_names sql_info} [array get sql_plugins] {
+    set driver [lindex ${sql_names} 0]
+    set dbms   [lindex ${sql_names} 1]
+
+    subport ${name}-${driver}-plugin {
+        distname        qtbase-opensource-src-${version}
+
+        checksums                               \
+            rmd160  [lindex $modules(qtbase) 0] \
+            sha256  [lindex $modules(qtbase) 1]
+
+        description       ${dbms} Database Driver for Qt Tool Kit ${qt_major}
+        long_description  ${dbms} Database Driver for Qt Tool Kit ${qt_major}
+
+        # if there is more than one version of the database system, create variants for each version
+        if { [llength ${sql_info}] > 1 } {
+
+            set any_variant_set false
+
+            foreach variant_info ${sql_info} {
+
+                set varName [lindex ${variant_info} 0]
+
+                # find every other variant so it can be marked as conflicting
+                set conflicts_list ""
+                foreach variant_info2 ${sql_info} {
+                    set varName2 [lindex ${variant_info2} 0]
+
+                    if { ${varName} ne ${varName2} } {
+                        lappend conflicts_list ${varName2}
+                    }
+                }
+
+                # get only the numbers from the name
+                regexp {[0-9].} ${varName} varVer
+
+                variant ${varName} conflicts ${conflicts_list} description "use version ${varVer} of ${dbms}" {}
+
+                # check if any variant has been set
+                if { [variant_isset ${varName}] } {
+                    set any_variant_set true
+                }
+            }
+
+            # ensure at least one variant is set
+            if { !${any_variant_set} } {
+                default_variants-append +[lindex [lindex ${sql_info} 0] 0]
+            }
+        }
+
+        foreach variant_info ${sql_info} {
+            set varName [lindex ${variant_info} 0]
+
+            if { ( [variant_exists ${varName}] && [variant_isset ${varName}] ) || [llength ${sql_info}]==1 } {
+                depends_lib-append [lindex ${variant_info} 1]
+
+                configure.args-append                                    \
+                    [subst INCLUDEPATH+=\"[lindex ${variant_info} 2]\"]  \
+                    [subst LIBS+=\"[lindex ${variant_info} 3]\"]
+            }
+        }
+
+        # for single architecture, easier to use
+        #    worksrcdir ${worksrcdir}/qtbase/src/plugins/sqldrivers/${driver},
+        #    but doesn't work for universal build
+        configure.dir ${worksrcpath}/src/plugins/sqldrivers/${driver}
+        build.dir     ${configure.dir}
+        destroot.dir  ${configure.dir}
+    }
+}
+
+if { ${subport} eq ${name} } {
+    # the main port is Meta-port to install various modules
+
+    description         Qt Tool Kit ${qt_major}
+    long_description    Qt Tool Kit: A cross-platform framework \
+        (headers, data, and libraries) for writing \
+        cross-platform GUI-based applications.
+
+    fetch {}
+    checksum {}
+    configure {}
+    build {}
+
+    # create a dummy file so the port can be successfully activated
+    destroot {
+        xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${subport}
+        set docfile   [open ${destroot}${prefix}/share/doc/${subport}/README.txt "w"]
+        puts ${docfile} "Meta-port for ${name}"
+        puts ${docfile} "${long_description}"
+        close ${docfile}
+    }
+
+    foreach {module module_info} [array get modules] {
+        if { [lindex ${module_info} 6] eq "" } {
+            depends_lib-append port:${name}-${module}
+        }
+    }
+    depends_lib-append port:${name}-sqlite-plugin
+
+    supported_archs   noarch
+    universal_variant no
+
+} elseif { ${subport} ne "${name}-qtbase" && ${subport} ne "${name}-docs" } {
+    # these subports use qmake
+
+    # special case
+    if { ${subport} eq "${name}-qtlocation" } {
+        # qtlocation uses
+        #    GeoClue (http://freedesktop.org/wiki/Software/GeoClue/) and
+        #    Gypsy (http://gypsy.freedesktop.org)
+        #    if they can be found
+        # Ensure that test fails even if software is installed
+        post-patch {
+            foreach test { geoclue geoclue-satellite gypsy } {
+                reinplace "s|return 0;|return 0;\\\n#error turn off test|g" ${worksrcpath}/config.tests/${test}/main.cpp
+            }
+        }
+    }
+
+    # special case
+    if { ${subport} eq "${name}-qtwebkit" } {
+        # qmake uses pkgconfig to look for icu
+        # This feature does not work without "CONFIG += link_pkgconfig"
+        patchfiles-append patch-icu.pro.diff
+
+        # qtwebkit uses
+        #    glx
+        #    libXcomposite
+        #    libXrender
+        #    if they can be found
+        # Ensure that test fails even if software is installed
+        post-patch {
+            foreach test { glx libXcomposite libXrender } {
+                reinplace "s|return 0;|return 0;\\\n#error turn off test|g" ${worksrcpath}/Tools/qmake/config.tests/${test}/${test}.cpp
+            }
+        }
+    }
+
+    # special case
+    if { ${subport} eq "${name}-qtwebengine" } {
+        # see https://wiki.qt.io/QtWebEngine
+        PortGroup           xcodeversion 1.0
+        minimum_xcodeversions   {12 5.1}
+
+        # see https://codereview.qt-project.org/#/c/125968/
+        patchfiles-append patch-qtwebengine32.diff
+
+        # at some point prior to OS X 10.11, MIDI types were unified
+        patchfiles-append patch-midifix.diff
+
+        # see https://codereview.qt-project.org/#/c/127759/
+        patchfiles-append patch-fix_sdk.diff
+
+        # UsingTheRightCompiler (https://trac.macports.org/wiki/UsingTheRightCompiler)
+        build.env-append      CXX=${configure.cxx}
+        configure.args-append QMAKE_LINK=${configure.cxx}
+    }
+
+    # detremint which variants are to be turned off
+    set request_examples true
+    set request_tests    true
+    set def_var          ""
+
+    set current_module [string range ${subport} [string length "${name}-"] end]
+    # is subport a module or an SQL plugin?
+    if { [info exists modules(${current_module})] } {
+        # subport is a module
+
+        set module_info    $modules(${current_module})
+
+        if { [lsearch -exact [lindex ${module_info} 7] "~universal"] != -1 } {
+            universal_variant no
+        }
+
+        if { [lsearch -exact [lindex ${module_info} 7] "noarch"] != -1 } {
+            supported_archs   noarch
+            universal_variant no
+        }
+
+        if { [lsearch -exact [lindex ${module_info} 7] "~debug"] != -1 } {
+            set qt5_qmake_request_no_debug true
+        }
+
+        if { [lsearch -exact [lindex ${module_info} 7] "~examples"] != -1 } {
+            set request_examples false
+        }
+
+        if { [lsearch -exact [lindex ${module_info} 7] "~tests"] != -1 } {
+            set request_tests    false
+        }
+
+        if { [lsearch -exact [lindex ${module_info} 7] "++examples"] != -1 } {
+            set request_examples true
+            lappend def_var "+examples"
+        }
+    } else {
+        # subport is an SQL plugin
+    }
+
+    if { ${request_examples} } {
+        variant examples description {Build examples} {}
+    }
+
+    if { ${request_tests} } {
+        variant tests description {Enable tests} {}
+    }
+
+    if { ${def_var} ne "" } {
+        default_variants-append ${def_var}
+    }
+
+    # special case
+    if { ${subport} eq "${name}-qtwebkit-examples" && ![variant_isset examples] } {
+        # create a dummy file so the port can be successfully activated
+        post-destroot {
+            xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${subport}
+            set docfile [open ${destroot}${prefix}/share/doc/${subport}/README.txt "w"]
+            puts ${docfile} "Without the examples variant, no examples are installed"
+            puts ${docfile} "${long_description}"
+            close ${docfile}
+        }
+    }
+
+    # special case
+    if { ${subport} eq "${name}-qtsensors" && [variant_isset examples] } {
+        if { [variant_isset debug] } {
+            set debug "_debug"
+        } else {
+            set debug ""
+        }
+        # fix library path names or MacPorts will try to reinstall
+        post-destroot {
+            foreach dylib "grue/Grue/libdeclarative_grue${debug}.dylib grue/libgruesensor.1.dylib grue/sensors/libqtsensors_grue${debug}.dylib sensor_explorer/Explorer/libdeclarative_explorer${debug}.dylib" {
+                system "/usr/bin/install_name_tool -id ${qt_examples_dir}/sensors/${dylib} ${destroot}${qt_examples_dir}/sensors/${dylib}"
+            }
+            foreach dylib "grue/Grue/libdeclarative_grue${debug}.dylib grue/sensors/libqtsensors_grue${debug}.dylib" {
+                system "/usr/bin/install_name_tool -change libgruesensor.1.dylib ${qt_examples_dir}/sensors/grue/libgruesensor.1.dylib ${destroot}${qt_examples_dir}/sensors/${dylib}"
+            }
+        }
+    }
+
+    PortGroup           qmake5 1.0
+
+    # accommodating variant request varies depending on how qtbase was built
+    pre-configure {
+
+        # determine if qmake builds examples by default (set via variants)
+        if {[active_variants ${name}-qtbase examples ""]} {
+            set base_examples true
+        } else {
+            set base_examples false
+        }
+
+        # determine if qmake runs tests by default (set via varians)
+        if {[active_variants ${name}-qtbase tests ""]} {
+            set base_tests true
+        } else {
+            set base_tests false
+        }
+
+        # determine if the user wants to build examples
+        if { [variant_exists examples] && [variant_isset examples] } {
+            set this_examples true
+        } else {
+            set this_examples false
+        }
+
+        # determine if the user wants to run tests
+        if { [variant_exists tests] && [variant_isset tests] } {
+            set this_tests true
+        } else {
+            set this_tests false
+        }
+
+        # determine of qmake's default and user requests are compatible; override qmake if necessary
+        if { ${this_examples} && !${base_examples}  } {
+            configure.args-append "QT_BUILD_PARTS+=\"examples\""
+        }
+
+        if { !${this_examples} && ${base_examples}  } {
+            configure.args-append "QT_BUILD_PARTS-=\"examples\""
+        }
+
+        if { ${this_tests} && !${base_tests}  } {
+            configure.args-append "QT_BUILD_PARTS+=\"tests\""
+        }
+
+        if { !${this_tests} && ${base_tests}  } {
+            configure.args-append "QT_BUILD_PARTS-=\"tests\""
+        }
+    }
+} else {
+    # these subports do NOT use qmake (they use configure script)
+
     # use the qt5 group; set 'building_qt5' so that the portgroup
     # does not include certain parts
     set building_qt5    1
     PortGroup           conflicts_build 1.0
     PortGroup           qt5 1.0
     PortGroup           xcodeversion 1.0
+    PortGroup           cxx11 1.0
 
     conflicts           qt3 qt3-mac qt4-mac
 
-    minimum_xcodeversions   {11 4.1}
+    minimum_xcodeversions   {11 4.3}
 
-    # See https://bugreports.qt.io/browse/QTBUG-34902
+    # see https://bugreports.qt.io/browse/QTBUG-34902
     conflicts_build-append  qt4-mac
 
-    # Kuba states in https://trac.macports.org/ticket/44207#comment:7 
-    #  "There's no reason to have parallel building disabled. Really."
-    #use_parallel_build no
+    # special case
+    if { ${subport} ne "${name}-docs" } {
+        # qmake automatically makes certain commands (QMAKE_CC, etc.) absolute paths
+        # add one more for consistency (QMAKE_LINK_C)
+        patchfiles-append patch-add_sdk.diff
 
-    # qtwebengine/src/core/gyp_run.pro buils an executable using g++
-    # This causes an error if UsingTheRightCompiler (https://trac.macports.org/wiki/UsingTheRightCompiler)
-    # Quick fix is to use full path to g++ (should use ${configure.cxx} instead?)
-    # N.B. that the python executable is found from the configuration environment
-    #patchfiles-append patch-ninja-compiler.diff
+        # the build system automatically use OpenGL frameworks (-framework OpenGL -framework AGL)
+        # the build system also uses pkgconfig to look for an OpenGL installation (gl.pc)
+        # if mesa is installed, the build system will try to use both OpenGL systems
+        # later, this will cause problems
+        #    Undefined symbols: "_CGLGetCurrentContext"
+        patchfiles-append patch-configure.diff
 
-    #needed? qtwebengine/src/3rdparty/chromium/build/gyp_helper.py
+        # see https://codereview.qt-project.org/#/c/122729/
+        patchfiles-append patch-pcfiles.diff
+    }
 
-    # qtwebengine/src/core/gyp_run.pro
-    #    calls
-    #   qtwebengine/tools/buildscripts/gyp_qtwebengine
-    # gyp_qtwebengine insists on x64 and libcpp ?
-
-    # qtwebengine/src/3rdparty/ninja/bootstrap.py calls g++ (must set CXX)
-
     if { [variant_isset tests] } {
         # 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"
@@ -100,46 +823,19 @@
         #     assume the header include code is correct
         patchfiles-append patch-tst_qpluginloader.diff
 
-        # see http://stackoverflow.com/questions/14506151/invalid-symbol-redefinition-in-inline-asm-on-llvm
-        patchfiles-append patch-tst_benchlibcallgrind.diff
+        if { ${configure.build_arch} eq "i386" || [variant_isset universal] } {
+            # see http://stackoverflow.com/questions/14506151/invalid-symbol-redefinition-in-inline-asm-on-llvm
+            # only runs test code on 32-bit systems
+            patchfiles-append patch-tst_benchlibcallgrind.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
-
-        # During testing, NSStringFromRect requires NSRect.
-        patchfiles-append patch-tst_qaccessibilitymac_helpers.diff
-    }
-
-    # see #44934 (and #35067 for the qt4-mac version)
-    if { true } {
-        set framework_list [split ${qt_frameworks_dir} '/']
-        set qt_list        [split ${qt_dir} '/']
-
-        while {[llength ${qt_list}] && [llength ${framework_list}]} {
-            set var_qt        [lindex $qt_list        0]
-            set var_framework [lindex $framework_list 0]
-
-            if { ${var_qt} ne ${var_framework} } {
-                break
-            }
-
-            # remove first element from list
-            set qt_list        [lreplace ${qt_list}        0 0]
-            set framework_list [lreplace ${framework_list} 0 0]
+            # this test might still cause problems, but with 5.4.2->5.5.0, it is no longer run
+            # tests/auto/corelib/plugin/qpluginloader/qpluginloader.pro:
+            #     -macx-*: SUBDIRS += machtest
+            #     +macx-*: contains(QT_CONFIG, private_tests): SUBDIRS += machtest
+            #
+            # When testing, ensure that a universal object file is not inadvertently created.
+            patchfiles-append patch-machtest.diff
         }
-        set libreplace [string repeat ../ [llength ${qt_list}]][join ${framework_list} /]
-        if { ${libreplace} ne "lib" } {
-            patchfiles-append patch-shared.diff
-            post-patch {
-                reinplace "s|__MACPORTS_FRAMWORK_DIR__|${libreplace}|g" ${worksrcpath}/qttools/src/macdeployqt/shared/shared.cpp
-            }
-        }
     }
 
     # --prefix is not recognized.
@@ -179,7 +875,7 @@
         -shared           \
         -largefile        \
         -accessibility
-    
+
     foreach driver { db2 ibase mysql oci odbc psql sqlite sqlite2 tds } {
         configure.args-append -no-sql-${driver}
     }
@@ -192,6 +888,8 @@
     }
 
     configure.args-append \
+        -no-testcocoon    \
+        -no-gcov          \
         -force-pkg-config
 
     # Third Party Libraries:
@@ -204,9 +902,11 @@
         -system-freetype    \
         -system-harfbuzz    \
         -openssl-linked     \
+        -no-libproxy        \
         -system-pcre        \
         --disable-xcb       \
-        --disable-xkbcommon \
+        -no-xkbcommon-x11   \
+        -no-xkbcommon-evdev \
         -no-xinput2         \
         -no-xcb-xlib        \
         -glib               \
@@ -224,11 +924,12 @@
         -widgets                \
         -rpath                  \
         -verbose                \
-        -no-optimized-qmake     \
+        -optimized-qmake        \
         -nis                    \
         -cups                   \
         -iconv                  \
         -no-evdev               \
+        -no-tslib               \
         -icu                    \
         -fontconfig             \
         -strip                  \
@@ -241,8 +942,10 @@
         -no-directfb            \
         -no-linuxfb             \
         -no-kms                 \
+        -no-libinput            \
+        -no-gstreamer           \
         -no-system-proxies
-    
+
     # MacOS/iOS options:
     configure.args-append    \
         -framework
@@ -251,7 +954,7 @@
         configure.args-append \
             -sdk [string tolower [join [lrange [split [lindex [split ${configure.sdkroot} "/"] end] "."] 0 end-1] "."]]
     }
-    
+
     # configure options that don't show up in configure --help
     configure.args-append \
         -no-libudev       \
@@ -284,65 +987,21 @@
     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            \
-        path:lib/libssl.dylib:openssl                         \
-        port:tiff                            \
-        port:libmng                          \
-        path:lib/pkgconfig/glib-2.0.pc:glib2 \
-        port:icu                             \
-        port:pcre                            \
-        port:libiconv                        \
-        port:harfbuzz
+    # cofigure script looks for perl but doesn't seem to use it for our configuration
 
-    # see https://bugreports.qt.io/browse/QTBUG-35514
-    build.target
+    # configure script uses gawk if it can find it,
+    #    so require it for consistency
+    depends_build-append port:gawk
 
+    # unless overridden, configure script uses gmake if it can find it
+    configure.env-append MAKE=${build.cmd}
+}
+
+# special case
+if { ${subport} eq "${name}-qtbase" } {
     if { [variant_isset universal] } {
-        merger-post-destroot {
-            foreach arch ${universal_archs_to_use} {
-                set dir ${destroot}-${arch}
 
-                # Libs.private contains the value of ${worksrcpath}-${arch}, which prevents merging
-                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_libs_dir}/pkgconfig/Qt5WebKit.pc
-
-                foreach prlfl [glob ${dir}${qt_libs_dir}/*.framework/*.prl] {
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
-                }
-
-                foreach prlfl [glob ${dir}${qt_libs_dir}/*.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|macx-clang-32|macx-clang|g"              ${dir}${qt_libs_dir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake
-                
-                
-                if { [variant_isset examples] } {
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E "/\\w*-arch \\\\/d"                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E "/\\w*${arch} \\\\/d"                    ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E {s:-arch +[^ ]+::g}                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace "s|macx-clang-32|macx-clang|g"              ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/fftreal.framework/fftreal.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/spectrum.app/Contents/Frameworks/fftreal.framework/fftreal.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/sensors/grue/libgruesensor.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    if { [variant_isset debug] } {
-                        reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/widgets/tools/plugandpaint/plugins/libpnp_basictools_debug.prl
-                    }
-                }
-            }
-        }
-
         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
@@ -350,35 +1009,10 @@
             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 ???.
+        # The file ${qt_mkspecs_dir}/qconfig.pri is still not properly merged
+        # A workaround is to set QT_ARCH and QT_TARGET_ARCH manually (see e.g. the qmake5 PortGroup)
     }
 
-    post-destroot {
-        # see #44204
-        foreach f [glob -nocomplain -tails -directory ${destroot}${qt_libs_dir} *.framework] {
-            set framework [file rootname ${f}]
-
-            set include_list   [split ${qt_includes_dir}   '/']
-            set framework_list [split ${qt_libs_dir} '/']
-
-            while {[llength ${include_list}] && [llength ${framework_list}]} {
-                set var_include   [lindex $include_list   0]
-                set var_framework [lindex $framework_list 0]
-
-                if { ${var_include} ne ${var_framework} } {
-                    break
-                }
-
-                # remove first element from list
-                set include_list   [lreplace ${include_list} 0 0]
-                set framework_list [lreplace ${framework_list} 0 0]
-            }
-
-            ln -s [string repeat ../ [llength ${include_list}]][join ${framework_list} /]/${f}/Headers ${destroot}${qt_includes_dir}/${framework}
-        }
-    }
-
     variant tests description {Enable tests} {
         configure.args-replace {-nomake tests} {-make tests}
     }
@@ -387,7 +1021,7 @@
         configure.args-replace {-nomake examples} {-make examples}
     }
 
-    variant debug description {Build both release and debug library} {
+    variant debug description {Build both release and debug libraries} {
         configure.args-replace -release -debug-and-release
     }
 
@@ -395,79 +1029,182 @@
         depends_lib-append port:pulseaudio
         configure.args-replace -no-pulseaudio -pulseaudio
     }
+
+    variant gstreamer description {Compile GStreamer support} {
+        depends_lib-append port:gstreamer1 port:gstreamer1-gst-plugins-base
+        configure.args-replace -no-gstreamer {-gstreamer 1.0}
+    }
 }
 
-subport ${name}-docs {
-    depends_lib-append \
-        path:${qt_bins_dir}/qdoc:${name} \
-        path:${qt_plugins_dir}/sqldrivers/libqsqlite.dylib:${name}-sqlite3-plugin
+# special case
+if { ${subport} eq "${name}-docs" } {
 
-    supported_archs   noarch
+    depends_lib-append                                                           \
+        path:${qt_bins_dir}/qdoc:${name}-qtbase                                  \
+        path:${qt_plugins_dir}/sqldrivers/libqsqlite.dylib:${name}-sqlite-plugin \
+        path:${qt_bins_dir}/qhelpgenerator:${name}-qttools
 
-    build.target      docs
-    destroot.target   install_docs
-
     post-extract {
         # For the most part, generated makefiles use ${prefix}/bin/qdoc.
-        ln -s ${qt_bins_dir}/qdoc ${worksrcpath}/qtbase/bin
+        ln -s ${qt_bins_dir}/qdoc ${worksrcpath}/qtbase/bin/
 
         # Similarly, location of qhelpgenerator is expected in ${worksrcpath}
-        xinstall -d -m 755 ${worksrcpath}/qttools/bin/
+        xinstall -d -m 0755 ${worksrcpath}/qttools/bin/
         ln -s ${qt_bins_dir}/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
+        xinstall -d -m 0755 ${worksrcpath}/qtwebkit/Source/WebCore/generated
         touch ${worksrcpath}/qtwebkit/Source/WebCore/generated/InspectorBackendCommands.qrc
     }
 }
 
-# See http://doc.qt.io/qt-5/sql-driver.html for info on building SQL Database Drivers
+if { [variant_exists universal] && [variant_isset universal] } {
+    merger-post-destroot {
+        foreach arch ${universal_archs_to_use} {
 
-subport ${name}-sqlite3-plugin {
-    PortGroup           qmake5 1.0
+            set dir ${destroot}-${arch}
 
-    depends_lib-append port:sqlite3
+            foreach prlfl [glob -nocomplain ${dir}${qt_libs_dir}/*.framework/*.prl] {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+            }
 
-    # 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}
+            foreach prlfl [glob -nocomplain ${dir}${qt_libs_dir}/*.prl] {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+            }
 
-    configure.args-append "INCLUDEPATH+=${prefix}/include" "LIBS+=\"-L${prefix}/lib -lsqlite3\""
+            foreach prlfl [glob -nocomplain ${dir}${qt_examples_dir}/widgets/tools/plugandpaint/plugins/*.prl] {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
+            }
+
+            if { [file exists ${dir}${qt_libs_dir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake] } {
+                reinplace "s|macx-clang-32|macx-clang|g" ${dir}${qt_libs_dir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake
+            }
+
+            # Libs.private contains the value of ${worksrcpath}-${arch}, which prevents merging
+            if { [file exists ${dir}${qt_libs_dir}/pkgconfig/Qt5WebKit.pc] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_libs_dir}/pkgconfig/Qt5WebKit.pc
+            }
+            if { [file exists ${dir}${qt_libs_dir}/pkgconfig/Qt5WebEngineCore.pc] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_libs_dir}/pkgconfig/Qt5WebEngineCore.pc
+            }
+
+            if { [file exists ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
+                reinplace -E "/\\w*-arch \\\\/d"                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
+                reinplace -E "/\\w*${arch} \\\\/d"                    ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
+                reinplace -E {s:-arch +[^ ]+::g}                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
+                reinplace "s|macx-clang-32|macx-clang|g"              ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
+            }
+
+            if { [file exists ${dir}${qt_examples_dir}/multimedia/spectrum/fftreal.framework/fftreal.prl] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/fftreal.framework/fftreal.prl
+            }
+
+            if { [file exists ${dir}${qt_examples_dir}/multimedia/spectrum/spectrum.app/Contents/Frameworks/fftreal.framework/fftreal.prl] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/spectrum.app/Contents/Frameworks/fftreal.framework/fftreal.prl
+            }
+
+            if { [file exists ${dir}${qt_examples_dir}/sensors/grue/libgruesensor.prl   ] } {
+                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/sensors/grue/libgruesensor.prl
+            }
+        }
+    }
 }
 
-subport ${name}-psql84-plugin {
-    PortGroup           qmake5 1.0
+# see #44934 (and #35067 for the qt4-mac version)
+if { ${subport} eq "${name}-qttools" } {
+    set framework_list [split ${qt_frameworks_dir} '/']
+    set qt_list        [split ${qt_dir} '/']
 
-    depends_lib-append port:postgresql84
+    while {[llength ${qt_list}] && [llength ${framework_list}]} {
+        set var_qt        [lindex $qt_list        0]
+        set var_framework [lindex $framework_list 0]
 
-    # 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}
+        if { ${var_qt} ne ${var_framework} } {
+            break
+        }
 
-    configure.args-append "INCLUDEPATH+=${prefix}/include/postgresql84" "LIBS+=\"-L${prefix}/lib/postgresql84 -lpq\""
+        # remove first element from list
+        set qt_list        [lreplace ${qt_list}        0 0]
+        set framework_list [lreplace ${framework_list} 0 0]
+    }
+    set libreplace [string repeat ../ [llength ${qt_list}]][join ${framework_list} /]
+    if { ${libreplace} ne "lib" } {
+        patchfiles-append patch-shared.diff
+        post-patch {
+            reinplace "s|__MACPORTS_FRAMWORK_DIR__|${libreplace}|g" ${worksrcpath}/src/macdeployqt/shared/shared.cpp
+        }
+    }
 }
 
-subport ${name}-mysql56-plugin {
-    PortGroup           qmake5 1.0
+if { ${subport} ne ${name} } {
+    post-destroot {
+        # see #44204
+        foreach f [glob -nocomplain -tails -directory ${destroot}${qt_libs_dir} *.framework] {
+            set framework [file rootname ${f}]
 
-    depends_lib-append port:mysql56
+            set include_list   [split ${qt_includes_dir}   '/']
+            set framework_list [split ${qt_libs_dir} '/']
 
-    # 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}
+            while {[llength ${include_list}] && [llength ${framework_list}]} {
+                set var_include   [lindex $include_list   0]
+                set var_framework [lindex $framework_list 0]
 
-    configure.args-append "INCLUDEPATH+=${prefix}/include/mysql56/mysql" "LIBS+=\"-L${prefix}/lib/mysql56/mysql -lmysqlclient_r\""
+                if { ${var_include} ne ${var_framework} } {
+                    break
+                }
+
+                # remove first element from list
+                set include_list   [lreplace ${include_list} 0 0]
+                set framework_list [lreplace ${framework_list} 0 0]
+            }
+
+            xinstall -d -m 0755 ${destroot}${qt_includes_dir}
+            ln -s [string repeat ../ [llength ${include_list}]][join ${framework_list} /]/${f}/Headers ${destroot}${qt_includes_dir}/${framework}
+        }
+
+        # .app and non-.app programs are both put in qt_bins_dir
+        # put a link of any .app programs in the ${qt_apps_dir}
+        if { ${qt_bins_dir} ne ${qt_apps_dir} } {
+            xinstall -d -m 0755 ${destroot}${qt_apps_dir}
+            foreach app [glob -nocomplain -tails -directory ${destroot}${qt_bins_dir} *.app] {
+                ln -s ${qt_bins_dir}/${app} ${destroot}${qt_apps_dir}
+            }
+        }
+
+        # put configuration files in places they will be found automatically
+        if { ${qt_libs_dir} ne "${prefix}/lib" } {
+
+            # put link to pkgconfig files in place where pkgconfig will find it
+            # most Qt 5 pkgconfig files begin with Qt5, so link should not conflict with any other Qt installations
+            #    exceptions: Enginio (new in Qt 5.3)
+            xinstall -d -m 0755 ${destroot}${prefix}/lib/pkgconfig
+            foreach pcfile [glob -nocomplain -tails -directory ${destroot}${qt_libs_dir}/pkgconfig *.pc] {
+                ln -s ${qt_libs_dir}/pkgconfig/${pcfile} ${destroot}${prefix}/lib/pkgconfig
+            }
+
+            # put link to cmake files in place where cmake will find it
+            # most Qt 5 cmake directories begin with Qt5, so link should not conflict with any other Qt installations
+            #    exceptions: Enginio (new in Qt 5.3)
+            xinstall -d -m 0755 ${destroot}${prefix}/lib/cmake
+            foreach cmakedir [glob -type d -nocomplain -tails -directory ${destroot}${qt_libs_dir}/cmake *] {
+                xinstall -d -m 0755 ${destroot}${prefix}/lib/cmake/${cmakedir}
+                foreach cmakefile [glob -tails -directory ${destroot}${qt_libs_dir}/cmake/${cmakedir} *.cmake] {
+                    ln -s ${qt_libs_dir}/cmake/${cmakedir}/${cmakefile} ${destroot}${prefix}/lib/cmake/${cmakedir}/
+                }
+            }
+
+            # if cmake finds configuration files in ${prefix}/lib/cmake, CMAKE_CURRENT_LIST_DIR expands to ${prefix}/lib/cmake/xxx
+            # cmake configuration files actually installed in ${qt_cmake_module_dir}/xxx
+            foreach cmakedir [glob -type d -nocomplain -tails -directory ${destroot}${qt_libs_dir}/cmake *] {
+                foreach cmakefile [glob -nocomplain -directory ${destroot}${qt_libs_dir}/cmake/${cmakedir} *.cmake] {
+                    reinplace "s|\\\${CMAKE_CURRENT_LIST_DIR}|${qt_cmake_module_dir}/${cmakedir}|g" ${cmakefile}
+                }
+            }
+        }
+    }
 }
 
 livecheck.type      regex

Added: trunk/dports/aqua/qt5/files/patch-add_sdk.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-add_sdk.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-add_sdk.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,11 @@
+--- mkspecs/features/mac/sdk.prf.orig	2015-06-29 13:05:10.000000000 -0700
++++ mkspecs/features/mac/sdk.prf	2015-10-06 21:59:22.000000000 -0700
+@@ -43,7 +43,7 @@
+ QMAKESPEC_NAME = $$basename(QMAKESPEC)
+
+ # Resolve SDK version of various tools
+-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB)) {
++for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_LINK_C)) {
+     tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
+     !isEmpty($$tool_variable) {
+         $$tool = $$eval($$tool_variable)

Added: trunk/dports/aqua/qt5/files/patch-configure.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-configure.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-configure.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,11 @@
+--- configure.orig	2015-10-12 21:35:07.000000000 -0700
++++ configure	2015-10-18 12:19:26.000000000 -0700
+@@ -4230,7 +4230,7 @@
+ 
+     local incdir_raw incdir_mod cflags
+     local libdir_raw libdir_mod libs
+-    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists $pkg_name 2>/dev/null; then
++    if [ -n "$PKG_CONFIG" ] && [ "$qmake_postfix" != "OPENGL" ]  && $PKG_CONFIG --exists $pkg_name 2>/dev/null; then
+         incdir_raw=`$PKG_CONFIG --cflags-only-I $pkg_name 2>/dev/null`
+         cflags=`$PKG_CONFIG --cflags-only-other $pkg_name 2>/dev/null`
+         libdir_raw=`$PKG_CONFIG --libs-only-L $pkg_name 2>/dev/null`

Added: trunk/dports/aqua/qt5/files/patch-fix_sdk.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-fix_sdk.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-fix_sdk.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,60 @@
+From 146ebe26dce3289eb440bed7d5d0a7988ff5f5c9 Mon Sep 17 00:00:00 2001
+From: Sylvain Defresne <sdefresne at chromium.org>
+Date: Fri, 18 Sep 2015 22:18:57 +0200
+Subject: [PATCH] <tools/gyp> [Backport] Fallback to '.tbd' for system missing
+ '.dylib'.
+
+With Xcode 7 the '.dylib' for system libraries are no longer present
+but instead only '.tbd' are shipped maybe in an effort to reduce the
+size of the SDK download.
+
+Change XcodeSettings._AdjustLibrary() to look for a '.tbd' file for
+system libraries (those whose path starts by "$(SDKROOT)"). Only do
+the substitution if the '.dylib' cannot be found and a '.tbd' file
+with the same path exists.
+
+BUG=517914
+R=justincohen at chromium.org, mark at chromium.org
+
+Review URL: https://codereview.chromium.org/1275133004 .
+
+Patch from Sylvain Defresne <sdefresne at chromium.org>.
+
+Change-Id: I8e81340b1258501a2e5f4952c606ae7204b0d74f
+Reviewed-by: Kai Koehne <kai.koehne at theqtcompany.com>
+---
+ chromium/tools/gyp/pylib/gyp/xcode_emulation.py | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/chromium/tools/gyp/pylib/gyp/xcode_emulation.py b/chromium/tools/gyp/pylib/gyp/xcode_emulation.py
+index ac5ffea..14bd7a9 100644
+--- src/3rdparty/chromium/tools/gyp/pylib/gyp/xcode_emulation.py
++++ src/3rdparty/chromium/tools/gyp/pylib/gyp/xcode_emulation.py
+@@ -1006,7 +1006,23 @@ class XcodeSettings(object):
+     sdk_root = self._SdkPath(config_name)
+     if not sdk_root:
+       sdk_root = ''
+-    return l.replace('$(SDKROOT)', sdk_root)
++    # Xcode 7 started shipping with ".tbd" (text based stubs) files instead of
++    # ".dylib" without providing a real support for them. What it does, for
++    # "/usr/lib" libraries, is do "-L/usr/lib -lname" which is dependent on the
++    # library order and cause collision when building Chrome.
++    #
++    # Instead substitude ".tbd" to ".dylib" in the generated project when the
++    # following conditions are both true:
++    # - library is referenced in the gyp file as "$(SDKROOT)/**/*.dylib",
++    # - the ".dylib" file does not exists but a ".tbd" file do.
++    library = l.replace('$(SDKROOT)', sdk_root)
++    if l.startswith('$(SDKROOT)'):
++      basename, ext = os.path.splitext(library)
++      if ext == '.dylib' and not os.path.exists(library):
++        tbd_library = basename + '.tbd'
++        if os.path.exists(tbd_library):
++          library = tbd_library
++    return library
+ 
+   def AdjustLibraries(self, libraries, config_name=None):
+     """Transforms entries like 'Cocoa.framework' in libraries into entries like
+-- 
+2.4.9 (Apple Git-60)
+

Added: trunk/dports/aqua/qt5/files/patch-icu.pro.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-icu.pro.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-icu.pro.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,10 @@
+--- Tools/qmake/config.tests/icu/icu.pro.orig	2015-07-16 11:45:20.000000000 -0700
++++ Tools/qmake/config.tests/icu/icu.pro	2015-07-16 11:46:05.000000000 -0700
+@@ -14,6 +14,7 @@
+         LIBS += -licuin -licuuc -licudt
+     }
+ } else:!contains(QT_CONFIG,no-pkg-config):packagesExist("icu-i18n") {
++    CONFIG += link_pkgconfig
+     PKGCONFIG += icu-i18n
+ } else {
+     LIBS += -licui18n -licuuc -licudata

Modified: trunk/dports/aqua/qt5/files/patch-machtest.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-machtest.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-machtest.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,15 +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
- 
+--- tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro.orig	2015-07-05 12:53:46.000000000 -0700
++++ tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro	2015-07-05 12:53:25.000000000 -0700
+@@ -7,10 +7,10 @@
+ load(qt)
+
  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.commands = $(CXX) $(CXXFLAGS) -shared -arch i386 -o $@ -I$(INCPATH) $<
++i386.commands = $(CXX) $(filter-out -arch i386 x86_64,$(CXXFLAGS)) -shared -arch i386 -o $@ -I$(INCPATH) $<
  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.commands = $(CXX) $(CXXFLAGS) -shared -arch x86_64 -o $@ -I$(INCPATH) $<
++x86_64.commands = $(CXX) $(filter-out -arch i386 x86_64,$(CXXFLAGS)) -shared -arch x86_64 -o $@ -I$(INCPATH) $<
  x86_64.depends += $$PWD/../fakeplugin.cpp
- 
+
  # Current Mac OS X toolchains have no compiler for PPC anymore

Added: trunk/dports/aqua/qt5/files/patch-midifix.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-midifix.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-midifix.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,25 @@
+--- .//src/3rdparty/chromium/media/midi/midi_manager_mac.cc.orig	2015-10-12 21:36:43.000000000 -0700
++++ .//src/3rdparty/chromium/media/midi/midi_manager_mac.cc	2015-11-11 09:31:28.000000000 -0700
+@@ -17,10 +17,6 @@
+ using base::SysCFStringRefToUTF8;
+ using std::string;
+ 
+-// NB: System MIDI types are pointer types in 32-bit and integer types in
+-// 64-bit. Therefore, the initialization is the simplest one that satisfies both
+-// (if possible).
+-
+ namespace media {
+ 
+ namespace {
+@@ -206,11 +202,7 @@
+   // This method is called on a separate high-priority thread owned by CoreMIDI.
+ 
+   MidiManagerMac* manager = static_cast<MidiManagerMac*>(read_proc_refcon);
+-#if __LP64__
+   MIDIEndpointRef source = reinterpret_cast<uintptr_t>(src_conn_refcon);
+-#else
+-  MIDIEndpointRef source = static_cast<MIDIEndpointRef>(src_conn_refcon);
+-#endif
+ 
+   // Dispatch to class method.
+   manager->ReadMidi(source, packet_list);

Added: trunk/dports/aqua/qt5/files/patch-pcfiles.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-pcfiles.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-pcfiles.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,38 @@
+From 3964b683f849baade1576ea2f50aab631970df58 Mon Sep 17 00:00:00 2001
+From: Martin Afanasjew <martin at afanasjew.de>
+Date: Sun, 27 Sep 2015 14:39:06 +0200
+Subject: [PATCH] qmake: Fix 'Libs:' line in .pc files on OS X
+
+On OS X with a framework-based build of Qt, the 'Libs:' line of the
+.pc files generated by `qmake` references the framework. This requires
+two separate arguments to the linker: The fixed string '-framework' and
+the name of the framework (e.g. 'QtCore'). Only the latter might need
+quoting. Prior to this fix, they were treated as a single argument (e.g.
+'-framework QtCore'), thus always quoted because of the contained space,
+and later lead to errors when trying to link a Qt framework discovered
+via `pkg-config`.
+
+Change-Id: I5c11ee651048832007e2ee4ebcbcf2e3212c8f48
+Task-number: QTBUG-47162
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen at theqtcompany.com>
+---
+ qmake/generators/makefile.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
+index 4a03faf..7d4026c 100644
+--- qmake/generators/makefile.cpp
++++ qmake/generators/makefile.cpp
+@@ -3253,7 +3253,8 @@ MakefileGenerator::writePkgConfigFile()
+         int suffix = bundle.lastIndexOf(".framework");
+         if (suffix != -1)
+             bundle = bundle.left(suffix);
+-        pkgConfiglibName = "-framework " + bundle + " ";
++        t << "-framework ";
++        pkgConfiglibName = bundle.toQString();
+     } else {
+         if (!project->values("QMAKE_DEFAULT_LIBDIRS").contains(libDir))
+             t << "-L${libdir} ";
+-- 
+2.4.9 (Apple Git-60)
+

Added: trunk/dports/aqua/qt5/files/patch-qtwebengine32.diff
===================================================================
--- trunk/dports/aqua/qt5/files/patch-qtwebengine32.diff	                        (rev 0)
+++ trunk/dports/aqua/qt5/files/patch-qtwebengine32.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -0,0 +1,28 @@
+From 1e4a0d70224cf48ae9834858848a5d68fd0a96c5 Mon Sep 17 00:00:00 2001
+From: Joerg Bornemann <joerg.bornemann at theqtcompany.com>
+Date: Thu, 17 Sep 2015 17:09:50 +0200
+Subject: [PATCH] enable OS X 32 bit build
+
+Task-number: QTBUG-48228
+Change-Id: Ic8ee640316b95b2e7e2de9115330821dfae0e905
+Reviewed-by: Kai Koehne <kai.koehne at theqtcompany.com>
+---
+ tools/qmake/mkspecs/features/functions.prf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
+index ef0320d..69d3fd3 100644
+--- tools/qmake/mkspecs/features/functions.prf
++++ tools/qmake/mkspecs/features/functions.prf
+@@ -14,7 +14,7 @@ defineTest(isPlatformSupported) {
+ 
+   linux-g++*:!isGCCVersionSupported(): return(false)
+   !isPythonVersionSupported(): return(false)
+-  linux-g++*|win32-msvc2013|macx-clang: return(true)
++  linux-g++*|win32-msvc2013|macx-clang*: return(true)
+   boot2qt: return(true)
+ 
+   skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.")
+-- 
+2.4.9 (Apple Git-60)
+

Modified: trunk/dports/aqua/qt5/files/patch-shared.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-shared.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-shared.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,6 +1,6 @@
---- qttools/src/macdeployqt/shared/shared.cpp.orig	2015-02-16 21:57:17.000000000 -0700
-+++ qttools/src/macdeployqt/shared/shared.cpp	2015-05-31 10:36:56.000000000 -0700
-@@ -196,7 +196,7 @@
+--- src/macdeployqt/shared/shared.cpp.orig	2015-02-16 21:57:17.000000000 -0700
++++ src/macdeployqt/shared/shared.cpp	2015-05-31 10:36:56.000000000 -0700
+@@ -233,7 +233,7 @@
                  state = DylibName;
                  continue;
              } else if (part < parts.count() && parts.at(part).endsWith(".framework")) {

Modified: trunk/dports/aqua/qt5/files/patch-tst_benchlibcallgrind.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_benchlibcallgrind.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-tst_benchlibcallgrind.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,6 +1,6 @@
---- 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 @@
+--- tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp.orig	2014-06-28 00:25:11.000000000 -0700
++++ tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp	2014-06-19 03:08:01.000000000 -0700
+@@ -73,9 +73,9 @@
      QBENCHMARK {
          __asm__ __volatile__(
              "mov $100000000,%%eax   \n"

Deleted: trunk/dports/aqua/qt5/files/patch-tst_qaccessibilitymac_helpers.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qaccessibilitymac_helpers.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-tst_qaccessibilitymac_helpers.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,11 +0,0 @@
---- 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]);
- }
- 

Deleted: trunk/dports/aqua/qt5/files/patch-tst_qarraydata.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qarraydata.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-tst_qarraydata.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,11 +0,0 @@
---- 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.

Modified: trunk/dports/aqua/qt5/files/patch-tst_qpluginloader.diff
===================================================================
--- trunk/dports/aqua/qt5-mac/files/patch-tst_qpluginloader.diff	2015-11-11 21:41:38 UTC (rev 142422)
+++ trunk/dports/aqua/qt5/files/patch-tst_qpluginloader.diff	2015-11-13 16:13:51 UTC (rev 142505)
@@ -1,16 +1,16 @@
---- .//qtbase/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp.orig	2015-05-30 18:33:03.000000000 -0700
-+++ .//qtbase/tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp	2015-05-30 18:34:54.000000000 -0700
+--- tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp.orig	2015-05-30 18:33:03.000000000 -0700
++++ tests/auto/corelib/plugin/qpluginloader/tst_qpluginloader.cpp	2015-05-30 18:34:54.000000000 -0700
 @@ -311,7 +311,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);
 @@ -347,7 +347,7 @@
- 
+
  void tst_QPluginLoader::loadMachO()
  {
 -#ifdef Q_OF_MACH_O

Modified: trunk/dports/aqua/qt5-mac/Portfile
===================================================================
--- trunk/dports/aqua/qt5-mac/Portfile	2015-11-13 15:24:04 UTC (rev 142504)
+++ trunk/dports/aqua/qt5-mac/Portfile	2015-11-13 16:13:51 UTC (rev 142505)
@@ -4,472 +4,24 @@
 PortSystem          1.0
 
 name                qt5-mac
-version             5.4.2
-revision            1
-set branch          [join [lrange [split ${version} .] 0 1] .]
-
-categories          aqua
-platforms           macosx
-maintainers         mcalhoun openmaintainer
+version             5.5.1
 license             {LGPL-2.1 GPL-3}
+categories          aqua
 
-homepage            http://qt.io
-description         Qt Tool Kit ${branch}
-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.io/official_releases/qt/${branch}/${version}/single/
-
-checksums           rmd160  3382c482a99e114560f56a9fe9501b8cabf334a9 \
-                    sha256  cfc768c55f0a0cd232bed914a9022528f8f2e50cb010bf0e4f3f62db3dfa17bd
-
-if { ${os.major} < 11 } {
-    pre-fetch {
-        ui_error "OS X prior to 10.8 (Mountain Lion) is not a Reference Configuration for Qt."
-        ui_error "OS X prior to 10.7 (Lion) is not even tested."
-        ui_error "See http://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
-        return -code error "unsupported OS"
-    }
-} elseif { ${os.major} > 14 } {
-    pre-fetch {
-        ui_warn "OS X subsequent to 10.10 (Yosemite) is not a Reference Configuration for Qt."
-        ui_warn "See http://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
-    }
-} else {
-    # 11 <= ${os.major} <= 14
-    if { [variant_isset universal] } {
-        pre-fetch {
-            ui_warn "Multiple architectures is not a Reference Configuration for Qt."
-            ui_warn "See http://doc.qt.io/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://doc.qt.io/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           conflicts_build 1.0
-    PortGroup           qt5 1.0
-    PortGroup           xcodeversion 1.0
-
-    conflicts           qt3 qt3-mac qt4-mac
-
-    minimum_xcodeversions   {11 4.1}
-
-    # See https://bugreports.qt.io/browse/QTBUG-34902
-    conflicts_build-append  qt4-mac
-
-    # Kuba states in https://trac.macports.org/ticket/44207#comment:7 
-    #  "There's no reason to have parallel building disabled. Really."
-    #use_parallel_build no
-
-    # qtwebengine/src/core/gyp_run.pro buils an executable using g++
-    # This causes an error if UsingTheRightCompiler (https://trac.macports.org/wiki/UsingTheRightCompiler)
-    # Quick fix is to use full path to g++ (should use ${configure.cxx} instead?)
-    # N.B. that the python executable is found from the configuration environment
-    #patchfiles-append patch-ninja-compiler.diff
-
-    #needed? qtwebengine/src/3rdparty/chromium/build/gyp_helper.py
-
-    # qtwebengine/src/core/gyp_run.pro
-    #    calls
-    #   qtwebengine/tools/buildscripts/gyp_qtwebengine
-    # gyp_qtwebengine insists on x64 and libcpp ?
-
-    # qtwebengine/src/3rdparty/ninja/bootstrap.py calls g++ (must set CXX)
-
-    if { [variant_isset tests] } {
-        # 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
-
-        # see http://stackoverflow.com/questions/14506151/invalid-symbol-redefinition-in-inline-asm-on-llvm
-        patchfiles-append patch-tst_benchlibcallgrind.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
-
-        # During testing, NSStringFromRect requires NSRect.
-        patchfiles-append patch-tst_qaccessibilitymac_helpers.diff
-    }
-
-    # see #44934 (and #35067 for the qt4-mac version)
-    if { true } {
-        set framework_list [split ${qt_frameworks_dir} '/']
-        set qt_list        [split ${qt_dir} '/']
-
-        while {[llength ${qt_list}] && [llength ${framework_list}]} {
-            set var_qt        [lindex $qt_list        0]
-            set var_framework [lindex $framework_list 0]
-
-            if { ${var_qt} ne ${var_framework} } {
-                break
-            }
-
-            # remove first element from list
-            set qt_list        [lreplace ${qt_list}        0 0]
-            set framework_list [lreplace ${framework_list} 0 0]
-        }
-        set libreplace [string repeat ../ [llength ${qt_list}]][join ${framework_list} /]
-        if { ${libreplace} ne "lib" } {
-            patchfiles-append patch-shared.diff
-            post-patch {
-                reinplace "s|__MACPORTS_FRAMWORK_DIR__|${libreplace}|g" ${worksrcpath}/qttools/src/macdeployqt/shared/shared.cpp
-            }
-        }
-    }
-
-    # --prefix is not recognized.
-    configure.pre_args-delete       --prefix=${prefix}
-
-    # --disable-dependency-tracking is not recognized.
-    configure.universal_args-delete --disable-dependency-tracking
-
-    # Installation options:
-    #-extprefix     SYSROOT/PREFIX
-    #-hostprefix    EXTPREFIX
-    #-libexecdir    ARCHDATADIR/libexec
-    #-hostbindir    HOSTPREFIX/bin
-    #-hostlibdir    HOSTPREFIX/lib
-    configure.args-append                      \
-        -prefix         ${qt_dir}              \
-        -bindir         ${qt_bins_dir}         \
-        -headerdir      ${qt_includes_dir}     \
-        -libdir         ${qt_libs_dir}         \
-        -archdatadir    ${qt_archdata_dir}     \
-        -plugindir      ${qt_plugins_dir}      \
-        -importdir      ${qt_imports_dir}      \
-        -qmldir         ${qt_qml_dir}          \
-        -datadir        ${qt_data_dir}         \
-        -docdir         ${qt_docs_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           \
-        -largefile        \
-        -accessibility
-    
-    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.args-append \
-        -force-pkg-config
-
-    # Third Party Libraries:
-    configure.args-append   \
-        -system-zlib        \
-        -no-mtdev           \
-        -no-journald        \
-        -system-libpng      \
-        -system-libjpeg     \
-        -system-freetype    \
-        -system-harfbuzz    \
-        -openssl-linked     \
-        -system-pcre        \
-        --disable-xcb       \
-        --disable-xkbcommon \
-        -no-xinput2         \
-        -no-xcb-xlib        \
-        -glib               \
-        -no-pulseaudio      \
-        -no-alsa            \
-        -no-gtkstyle
-
-    # Additional options:
-    configure.args-append       \
-        {-make libs}            \
-        {-make tools}           \
-        {-nomake examples}      \
-        {-nomake tests}         \
-        -gui                    \
-        -widgets                \
-        -rpath                  \
-        -verbose                \
-        -no-optimized-qmake     \
-        -nis                    \
-        -cups                   \
-        -iconv                  \
-        -no-evdev               \
-        -icu                    \
-        -fontconfig             \
-        -strip                  \
-        -no-pch                 \
-        -dbus-linked            \
-        -no-use-gold-linker     \
-        -no-separate-debug-info \
-        -no-xcb                 \
-        -no-eglfs               \
-        -no-directfb            \
-        -no-linuxfb             \
-        -no-kms                 \
-        -no-system-proxies
-    
-    # MacOS/iOS options:
-    configure.args-append    \
-        -framework
-
-    if {${configure.sdkroot} ne ""} {
-        configure.args-append \
-            -sdk [string tolower [join [lrange [split [lindex [split ${configure.sdkroot} "/"] end] "."] 0 end-1] "."]]
-    }
-    
-    # configure options that don't show up in configure --help
-    configure.args-append \
-        -no-libudev       \
-        -no-egl           \
-        -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            \
-        path:lib/libssl.dylib:openssl                         \
-        port:tiff                            \
-        port:libmng                          \
-        path:lib/pkgconfig/glib-2.0.pc:glib2 \
-        port:icu                             \
-        port:pcre                            \
-        port:libiconv                        \
-        port:harfbuzz
-
-    # see https://bugreports.qt.io/browse/QTBUG-35514
-    build.target
-
-    if { [variant_isset universal] } {
-        merger-post-destroot {
-            foreach arch ${universal_archs_to_use} {
-                set dir ${destroot}-${arch}
-
-                # Libs.private contains the value of ${worksrcpath}-${arch}, which prevents merging
-                reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_libs_dir}/pkgconfig/Qt5WebKit.pc
-
-                foreach prlfl [glob ${dir}${qt_libs_dir}/*.framework/*.prl] {
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${prlfl}
-                }
-
-                foreach prlfl [glob ${dir}${qt_libs_dir}/*.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|macx-clang-32|macx-clang|g"              ${dir}${qt_libs_dir}/cmake/Qt5Core/Qt5CoreConfigExtrasMkspecDir.cmake
-                
-                
-                if { [variant_isset examples] } {
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E "/\\w*-arch \\\\/d"                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E "/\\w*${arch} \\\\/d"                    ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace -E {s:-arch +[^ ]+::g}                      ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    reinplace "s|macx-clang-32|macx-clang|g"              ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/fftreal.framework/fftreal.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/multimedia/spectrum/spectrum.app/Contents/Frameworks/fftreal.framework/fftreal.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/sensors/grue/libgruesensor.prl
-                    reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/declarative/tutorials/gettingStarted/parts/part5/filedialog/Makefile
-                    if { [variant_isset debug] } {
-                        reinplace "s|${worksrcpath}-${arch}|${worksrcpath}|g" ${dir}${qt_examples_dir}/widgets/tools/plugandpaint/plugins/libpnp_basictools_debug.prl
-                    }
-                }
-            }
-        }
-
-        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 {
-        # see #44204
-        foreach f [glob -nocomplain -tails -directory ${destroot}${qt_libs_dir} *.framework] {
-            set framework [file rootname ${f}]
-
-            set include_list   [split ${qt_includes_dir}   '/']
-            set framework_list [split ${qt_libs_dir} '/']
-
-            while {[llength ${include_list}] && [llength ${framework_list}]} {
-                set var_include   [lindex $include_list   0]
-                set var_framework [lindex $framework_list 0]
-
-                if { ${var_include} ne ${var_framework} } {
-                    break
-                }
-
-                # remove first element from list
-                set include_list   [lreplace ${include_list} 0 0]
-                set framework_list [lreplace ${framework_list} 0 0]
-            }
-
-            ln -s [string repeat ../ [llength ${include_list}]][join ${framework_list} /]/${f}/Headers ${destroot}${qt_includes_dir}/${framework}
-        }
-    }
-
-    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
-    }
-
-    variant pulseaudio description {Compile PulseAudio support} {
-        depends_lib-append port:pulseaudio
-        configure.args-replace -no-pulseaudio -pulseaudio
-    }
+    replaced_by     qt5
+} elseif { ${subport} eq "${name}-docs"  } {
+    replaced_by     qt5-docs
+} elseif { ${subport} eq "${name}-sqlite3-plugin"  } {
+    replaced_by     qt5-sqlite-plugin
+} elseif { ${subport} eq "${name}-psql84-plugin"  } {
+    replaced_by     qt5-psql-plugin
+} elseif { ${subport} eq "${name}-mysql56-plugin"  } {
+    replaced_by     qt5-mysql-plugin
 }
+PortGroup           obsolete 1.0
 
-subport ${name}-docs {
-    depends_lib-append \
-        path:${qt_bins_dir}/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.
-        ln -s ${qt_bins_dir}/qdoc ${worksrcpath}/qtbase/bin
-
-        # Similarly, location of qhelpgenerator is expected in ${worksrcpath}
-        xinstall -d -m 755 ${worksrcpath}/qttools/bin/
-        ln -s ${qt_bins_dir}/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://doc.qt.io/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://download.qt.io/archive/qt/${branch}/
-livecheck.regex     (\\d+(\\.\\d+)+)
+subport ${name}-docs { }
+subport ${name}-sqlite3-plugin { }
+subport ${name}-psql84-plugin { }
+subport ${name}-mysql56-plugin { }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20151212/89bc4df0/attachment-0001.html>


More information about the macports-changes mailing list