[102010] trunk/dports/aqua/qt4-mac

michaelld at macports.org michaelld at macports.org
Thu Jan 24 07:04:53 PST 2013


Revision: 102010
          https://trac.macports.org/changeset/102010
Author:   michaelld at macports.org
Date:     2013-01-24 07:04:52 -0800 (Thu, 24 Jan 2013)
Log Message:
-----------
qt4-mac :

* addresses tickets #36872 and #37662;

* add variant and support for compiling Qt (not QMake) using -std=c++11.  If the variant is selected but the compiler does not pass the c++11 test, configure will error out with an appropriate warning.  C++11 is NOT enabled by default either as a variant to this port, nor as a CONFIG option to any project using this QMake; it has to be enabled explicitly, e.g., via "CONFIG += c++11";

* link QtGui.framework/Resources into lib, since some projects look for it there instead of inside the framework;

* remove some of the PSQL code since it is disabled here and found in a separate port;

* remove use of DESTDIR for destroot phase, since QMake does not use that variable (it uses INSTALL_ROOT);

* fix OpenVG variant environment variables to work more reliably;

* split compiling of ObjC and ObjC++ files into different compiler commands.

Modified Paths:
--------------
    trunk/dports/aqua/qt4-mac/Portfile
    trunk/dports/aqua/qt4-mac/files/patch-config.tests_unix_compile.test.diff
    trunk/dports/aqua/qt4-mac/files/patch-configure.diff
    trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff

Added Paths:
-----------
    trunk/dports/aqua/qt4-mac/files/c++11/
    trunk/dports/aqua/qt4-mac/files/c++11/c++11.cpp
    trunk/dports/aqua/qt4-mac/files/c++11/c++11.pro
    trunk/dports/aqua/qt4-mac/files/c++11.prf
    trunk/dports/aqua/qt4-mac/files/objective_cxx.prf
    trunk/dports/aqua/qt4-mac/files/patch-cxx11.diff
    trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-base.conf.diff
    trunk/dports/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff
    trunk/dports/aqua/qt4-mac/files/split_sources.prf

Modified: trunk/dports/aqua/qt4-mac/Portfile
===================================================================
--- trunk/dports/aqua/qt4-mac/Portfile	2013-01-24 13:26:39 UTC (rev 102009)
+++ trunk/dports/aqua/qt4-mac/Portfile	2013-01-24 15:04:52 UTC (rev 102010)
@@ -16,7 +16,7 @@
 #conflicts           qt3 qt3-mac qt4-mac-devel
 conflicts           qt3 qt3-mac
 version             4.8.4
-revision            2
+revision            3
 categories          aqua
 platforms           macosx
 maintainers         michaelld openmaintainer
@@ -66,12 +66,13 @@
 # and set QT_INSTALL_FRAMEWORKS and QMAKE_FRAMEWORKDIR_QT, both here
 # and in the resulting .qmake.cache files. (d) to allow easy
 # replacement of MACOSX_DEPLOYMENT_TARGET: build for just the user's
-# current OS.
+# current OS. (e) add hooks for C++11 testing.
 
 patchfiles-append   patch-configure.diff
 
-# (3) Tweak various scripts to allow easy replacement of
+# (3) (a) Tweak various scripts to allow easy replacement of
 # MACOSX_DEPLOYMENT_TARGET: build for just the user's current OS.
+# (b) Assign initial OBJECTIVE_CXXFLAGS.
 
 patchfiles-append   patch-mkspecs_common_g++-macx.conf.diff
 
@@ -86,7 +87,7 @@
 
 patchfiles-append   patch-mkspecs_features_moc.prf.diff
 
-# (6) Remove Qt's LIBDIR and INCDIR from various Qmake internal
+# (6) Remove Qt's LIBDIR and INCDIR from various QMake internal
 # variables, since they are already included in the user-supplied
 # LIBS and INCLUDEPATH.
 
@@ -103,6 +104,15 @@
 
 patchfiles-append   patch-mkspecs_features_qt_functions.prf.diff
 
+# (7.1) (a) Change "gcc" and "g++" to @'s for replacement in
+# post-patch; (b) add hooks for C++11.
+
+patchfiles-append   patch-mkspecs_common_g++-base.conf.diff
+
+# (7.2) Add default QMake variables for Objective C++.
+
+patchfiles-append   patch-mkspecs_objective_cxx.diff
+
 # (8) Add "absolute_library_soname" to the default CONFIG variables,
 # so that when a DYLIB is created, if "target.path" is set for it then
 # that path is prepended to its "install_name".
@@ -226,11 +236,6 @@
 
 configure.ccache no
 
-# create the global for the psql version, if selected
-
-global psql_version
-set psql_version ""
-
 # find a way to specify the OS MINOR version.
 global MINOR
 set MINOR ""
@@ -296,9 +301,9 @@
 
     # Ensure that correct C/C++ compilers are used.
 
-    reinplace "s| g++\$| ${configure.cxx}|" \
+    reinplace "s|@CXX@|${configure.cxx}|" \
         ${worksrcpath}/mkspecs/common/g++-base.conf
-    reinplace "s| gcc\$| ${configure.cc}|"  \
+    reinplace "s|@CC@|${configure.cc}|"  \
         ${worksrcpath}/mkspecs/common/g++-base.conf
 
     # fix the corewlan .pro file to use the correct developer SDK
@@ -311,12 +316,6 @@
     reinplace "s, at QT_PLUGINS_DIR@,${qt_plugins_dir},g" \
         ${worksrcpath}/tools/macdeployqt/macdeployqt/main.cpp
 
-    # fix path to "pg_config", if the variant was selected
-
-    if {${psql_version} != ""} {
-        reinplace "s, at PATH_TO_PG_CONFIG@,${prefix}/lib/postgresql${psql_version}/bin/,g" ${worksrcpath}/configure
-    }
-
     # if no debug, then do not even build debug code
 
     if {![variant_isset debug]} {
@@ -334,15 +333,32 @@
                 ${worksrcpath}/${fixfile}
         }
     }
+
+    # copy C++11 tests into place, if that variant is set
+
+    if {[variant_isset cxx11]} {
+        copy ${filespath}/c++11.prf ${worksrcpath}/mkspecs/features
+        copy ${filespath}/c++11 ${worksrcpath}/config.tests/unix
+    }
+
+    # copy Objective C / CXX files into place
+
+    copy ${filespath}/objective_cxx.prf \
+        ${worksrcpath}/mkspecs/features/mac
+    copy ${filespath}/split_sources.prf \
+        ${worksrcpath}/mkspecs/features/mac
+
 }
 
-# The build process uses -fconstant-cfstrings.
-# configure.compiler should therefore not be one of the MacPorts compilers.
+# The build process uses -fconstant-cfstrings.  configure.compiler
+# should therefore not be one of the MacPorts compilers unless it
+# supports this flag.
 
 # Some older versions of Clang do not honor CPATH or LIBRARY_PATH,
 # which are required for compiling this port.  The versions seem to
 # be: MacPorts Clang 3.0 or earlier, and Apple Clang 318.0.58 or
 # older.  Block these.
+# http://llvm.org/bugs/show_bug.cgi?id=8971, # #30271, #31076, #31638
 
 compiler.blacklist \
     macports-clang-2.9 \
@@ -554,6 +570,12 @@
 
 build.target all
 
+# do not use DESTDIR directly in the destroot command; Qt uses DISTDIR
+# internally for other purposes, and instead uses INSTALL_ROOT for the
+# additional install root prefix.
+
+destroot.post_args
+
 post-destroot {
 
     set destroot_qt ${destroot}${qt_dir}
@@ -881,6 +903,12 @@
         copy ${worksrcpath}/include/Qt ${destroot}${qt_includes_dir}
 
     }
+
+    # link in Resource to ${qt_libs_dir}
+
+    ln -s ${qt_frameworks_dir}/QtGui.framework/Resources \
+        ${destroot}${qt_libs_dir}
+
 }
 
 pre-activate {
@@ -922,6 +950,9 @@
 variant psql91 conflicts psql83 psql84 psql90 \
 description {PostgreSQL 9.1 Qt4 Plugin Legacy Compatibility Variant} {}
 
+global psql_version
+set psql_version ""
+
 if {[variant_isset psql83]} {
     set psql_version "83"
 } elseif {[variant_isset psql84]} {
@@ -972,23 +1003,36 @@
         reinplace "s at CONFIG_ARG@QMAKE_OPENVG_ARG at g" \
             ${worksrcpath}/configure
 
-        # allow us to set the QMAKE_SWITCHES
-
-        reinplace "s at QMAKE_SWITCHES=@@g" \
-            ${worksrcpath}/configure
-
     }
 
     pre-configure {
 
         # set OpenVG arg, for both testing and building
 
-        configure.env-append \
-            QMAKE_OPENVG_ARG=-lOpenVG \
-            QMAKE_SWITCHES=\"QMAKE_LIBS_OPENVG=-lOpenVG\"
+        configure.env-append QMAKE_OPENVG_ARG=-lOpenVG
+
     }
 }
 
+variant cxx11 description {Add library support for C++11 (EXPERIMENTAL)} {
+
+    pre-extract {
+
+        ui_msg "WARNING: You have enabled C++11 support for Qt4, which is EXPERIMENTAL.  Qt's libraries and applications (not including QMake) will be compiled using C++11.  That said, C++11 will NOT be enabled by default when using QMake.  You can enable C++11 by specifying \'CONFIG += c++11\' in any QMake build file."
+
+    }
+
+    # patches for C++11 only
+
+    patchfiles-append patch-cxx11.diff
+
+    # have configure test for C++11; our hooks
+    # will error out if C++11 is not found.
+
+    configure.args-append -c++11
+
+}
+
 #variant quartz conflicts x11
 #variant quartz \
 #description {Build for Native OSX Quartz GUI, not X11 (default)} {}

Added: trunk/dports/aqua/qt4-mac/files/c++11/c++11.cpp
===================================================================
--- trunk/dports/aqua/qt4-mac/files/c++11/c++11.cpp	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/c++11/c++11.cpp	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,12 @@
+// from Qt 5.0
+
+#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
+#else
+#  error "__cplusplus must be >= 201103L, or __GXX_EXPERIMENTAL_CXX0X__ must be defined"
+#endif
+
+constexpr int get_five() {return 5;}
+
+int some_value[get_five() + 7];
+
+int main(int, char **) { return 0; }

Added: trunk/dports/aqua/qt4-mac/files/c++11/c++11.pro
===================================================================
--- trunk/dports/aqua/qt4-mac/files/c++11/c++11.pro	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/c++11/c++11.pro	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,3 @@
+SOURCES = c++11.cpp
+CONFIG += c++11
+CONFIG -= qt app_bundle

Added: trunk/dports/aqua/qt4-mac/files/c++11.prf
===================================================================
--- trunk/dports/aqua/qt4-mac/files/c++11.prf	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/c++11.prf	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,3 @@
+QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11
+QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_CXX11
+QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11

Added: trunk/dports/aqua/qt4-mac/files/objective_cxx.prf
===================================================================
--- trunk/dports/aqua/qt4-mac/files/objective_cxx.prf	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/objective_cxx.prf	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,18 @@
+# Add compiler directives for Objective C++ (.mm) only
+#
+# OBJECTIVE_CXX_SOURCES has already been set in "split_sources"
+
+isEmpty(QMAKE_OBJECTIVE_CXX):QMAKE_OBJECTIVE_CXX = $$QMAKE_CXX
+
+OBJECTIVE_CXX_OBJECTS_DIR = $$OBJECTS_DIR
+isEmpty(OBJECTIVE_CXX_OBJECTS_DIR):OBJECTIVE_CXX_OBJECTS_DIR = .
+isEmpty(QMAKE_EXT_OBJECTIVE_CXX):QMAKE_EXT_OBJECTIVE_CXX = .mm
+
+objective_cxx.dependency_type = TYPE_C
+objective_cxx.variables = QMAKE_OBJECTIVE_CXXFLAGS
+objective_cxx.commands = $$QMAKE_OBJECTIVE_CXX -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CXXFLAGS) $(DEFINES) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
+objective_cxx.output = $$OBJECTIVE_CXX_OBJECTS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+objective_cxx.input = OBJECTIVE_CXX_SOURCES
+objective_cxx.name = Compile ${QMAKE_FILE_IN}
+silent:objective_cxx.commands = @echo objective-cxx ${QMAKE_FILE_IN} && $$objective_cxx.commands
+QMAKE_EXTRA_COMPILERS += objective_cxx

Modified: trunk/dports/aqua/qt4-mac/files/patch-config.tests_unix_compile.test.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-config.tests_unix_compile.test.diff	2013-01-24 13:26:39 UTC (rev 102009)
+++ trunk/dports/aqua/qt4-mac/files/patch-config.tests_unix_compile.test.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -5,7 +5,7 @@
  
  echo "QT_BUILD_TREE = $OUTDIR" > "$OUTDIR/$TEST/.qmake.cache"
 -"$OUTDIR/bin/qmake" -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG-=debug_and_release" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
-+"$OUTDIR/bin/qmake" -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG-=debug_and_release app_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CFLAGS*=$CXXFLAGS" "QMAKE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS*=$CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
++"$OUTDIR/bin/qmake" -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG-=debug_and_release app_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CFLAGS*=$CXXFLAGS" "QMAKE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS*=$CXXFLAGS" "QMAKE_OBJECTIVE_CFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_OBJECTIVE_CXXFLAGS*=$CXXFLAGS" "QMAKE_OBJECTIVE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
  
  if [ "$VERBOSE" = "yes" ]; then
      $MAKE

Modified: trunk/dports/aqua/qt4-mac/files/patch-configure.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-configure.diff	2013-01-24 13:26:39 UTC (rev 102009)
+++ trunk/dports/aqua/qt4-mac/files/patch-configure.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -1,6 +1,13 @@
---- configure.orig	2012-11-23 05:11:23.000000000 -0500
-+++ configure	2012-11-29 12:08:53.000000000 -0500
-@@ -924,6 +924,7 @@
+--- configure.orig	2013-01-20 15:22:24.000000000 -0500
++++ configure	2013-01-22 15:50:39.000000000 -0500
+@@ -918,12 +918,14 @@
+ CFG_ICU=auto
+ CFG_SYSTEM_PROXIES=no
+ CFG_SLOG2=auto
++CFG_CXX11=no
+ 
+ # initalize variables used for installation
+ QT_INSTALL_PREFIX=
  QT_INSTALL_DOCS=
  QT_INSTALL_HEADERS=
  QT_INSTALL_LIBS=
@@ -8,7 +15,16 @@
  QT_INSTALL_BINS=
  QT_INSTALL_PLUGINS=
  QT_INSTALL_IMPORTS=
-@@ -1392,6 +1393,9 @@
+@@ -1137,7 +1139,7 @@
+         VAL=no
+         ;;
+     #Qt style yes options
+-    -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu)
++    -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu|-c++11)
+         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+         VAL=yes
+         ;;
+@@ -1392,6 +1394,9 @@
      libdir)
          QT_INSTALL_LIBS="$VAL"
          ;;
@@ -18,7 +34,21 @@
      qtnamespace)
          QT_NAMESPACE="$VAL"
          ;;
-@@ -3685,6 +3689,19 @@
+@@ -2509,6 +2514,13 @@
+             UNKNOWN_OPT=yes
+         fi
+         ;;
++    c++11)
++        if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
++            CFG_CXX11="$VAL"
++        else
++            UNKNOWN_OPT=yes
++        fi
++        ;;
+     system-proxies)
+         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+             CFG_SYSTEM_PROXIES="$VAL"
+@@ -3685,6 +3697,19 @@
      fi
      QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
  
@@ -38,7 +68,7 @@
      #bins
      if [ -z "$QT_INSTALL_BINS" ]; then #default
          if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
-@@ -4752,6 +4769,7 @@
+@@ -4752,6 +4777,7 @@
  DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
  HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
  LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
@@ -46,7 +76,7 @@
  BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
  PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
  IMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_INSTALL_IMPORTS"`
-@@ -4777,6 +4795,7 @@
+@@ -4777,6 +4803,7 @@
      HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
      HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
      HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
@@ -54,7 +84,7 @@
      HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
      HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
      HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
-@@ -4794,6 +4813,7 @@
+@@ -4794,6 +4821,7 @@
  static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
  static const char qt_configure_headers_path_str      [256 + 12] = "$HOSTHEADERS_PATH_STR";
  static const char qt_configure_libraries_path_str    [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
@@ -62,7 +92,7 @@
  static const char qt_configure_binaries_path_str     [256 + 12] = "$HOSTBINARIES_PATH_STR";
  static const char qt_configure_plugins_path_str      [256 + 12] = "$HOSTPLUGINS_PATH_STR";
  static const char qt_configure_imports_path_str      [256 + 12] = "$HOSTIMPORTS_PATH_STR";
-@@ -4812,6 +4832,7 @@
+@@ -4812,6 +4840,7 @@
  static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
  static const char qt_configure_headers_path_str      [256 + 12] = "$HEADERS_PATH_STR";
  static const char qt_configure_libraries_path_str    [256 + 12] = "$LIBRARIES_PATH_STR";
@@ -70,7 +100,7 @@
  static const char qt_configure_binaries_path_str     [256 + 12] = "$BINARIES_PATH_STR";
  static const char qt_configure_plugins_path_str      [256 + 12] = "$PLUGINS_PATH_STR";
  static const char qt_configure_imports_path_str      [256 + 12] = "$IMPORTS_PATH_STR";
-@@ -4837,6 +4858,7 @@
+@@ -4837,6 +4866,7 @@
  #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
  #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
  #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
@@ -78,7 +108,7 @@
  #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
  #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
  #define QT_CONFIGURE_IMPORTS_PATH qt_configure_imports_path_str + 12;
-@@ -4996,20 +5018,11 @@
+@@ -4996,20 +5026,11 @@
              EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
              EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
              EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
@@ -104,21 +134,25 @@
  	    if [ '!' -z "$CFG_SDK" ]; then
  		echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
  		echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
-@@ -5511,9 +5524,9 @@
-         psql)
-             if [ "$CFG_SQL_psql" != "no" ]; then
-                 # Be careful not to use native pg_config when cross building.
--                if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
--                    QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
--                    QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
-+                if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" @PATH_TO_PG_CONFIG at pg_config >/dev/null 2>&1; then
-+                    QT_CFLAGS_PSQL=`@PATH_TO_PG_CONFIG at pg_config --includedir 2>/dev/null`
-+                    QT_LFLAGS_PSQL=`@PATH_TO_PG_CONFIG at pg_config --libdir 2>/dev/null`
-                 fi
-                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
-                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
-@@ -7161,16 +7174,8 @@
+@@ -5118,6 +5139,16 @@
+ # tests that need qmake
+ #-------------------------------------------------------------------------------
  
++# Detect C++11 support, only if requested
++if [ "$CFG_CXX11" = "yes" ]; then
++    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/c++11 "c++11" $L_FLAGS $I_FLAGS $l_FLAGS; then
++	CFG_CXX11=yes
++    else
++        echo "C++11 support was requested but the functionality test for C++11 failed!"
++        exit 101
++    fi
++fi
++
+ # detect availability of float math.h functions
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
+     CFG_USE_FLOATMATH=yes
+@@ -7161,16 +7192,8 @@
+ 
  # set the global Mac deployment target. This is overridden on an arch-by-arch basis
  # in some cases, see code further down
 -case "$PLATFORM,$CFG_MAC_COCOA" in
@@ -136,7 +170,18 @@
  
  # disable Qt 3 support on VxWorks, Symbian and INTEGRITY
  case "$XPLATFORM" in
-@@ -7910,28 +7915,28 @@
+@@ -7447,6 +7470,10 @@
+     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GUI"
+ fi
+ 
++if [ "$CFG_CXX11" = "yes" ]; then
++    QT_CONFIG="$QT_CONFIG c++11"
++    QMAKE_CONFIG="$QMAKE_CONFIG c++11"
++fi
+ 
+ if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
+     #On Mac we implicitly link against libz, so we
+@@ -7910,28 +7937,32 @@
  # env. variable. 
  if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] ; then
      if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
@@ -148,6 +193,7 @@
 +        QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
++        QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
      fi
      if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
 -        QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
@@ -158,6 +204,7 @@
 +        QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
++        QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
      fi
      if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
 -        QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
@@ -168,6 +215,7 @@
 +        QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
++        QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
      fi
      if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
 -        QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
@@ -178,10 +226,11 @@
 +        QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
 +        QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
++        QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
      fi
  fi
  
-@@ -8689,6 +8694,7 @@
+@@ -8689,6 +8720,7 @@
  QMAKE_RCC        = \$\$QT_BUILD_TREE/bin/rcc
  QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
  QMAKE_INCDIR_QT  = \$\$QT_BUILD_TREE/include
@@ -189,3 +238,23 @@
  QMAKE_LIBDIR_QT  = \$\$QT_BUILD_TREE/lib
  
  EOF
+@@ -8727,6 +8759,11 @@
+     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
+ fi
+ 
++#dump in the OPENVG_LIBS info
++if [ "$CFG_OPENVG" = "yes" ]; then
++   echo "QMAKE_LIBS_OPENVG = $QMAKE_OPENVG_ARG" >> "$CACHEFILE.tmp"
++fi
++
+ #dump in the OPENSSL_LIBS info
+ if [ '!' -z "$OPENSSL_LIBS" ]; then
+     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
+@@ -8886,6 +8923,7 @@
+ else
+    echo "Debug .................. $CFG_DEBUG"
+ fi
++echo "C++11 support .......... $CFG_CXX11"
+ echo "Qt 3 compatibility ..... $CFG_QT3SUPPORT"
+ [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
+ [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"

Added: trunk/dports/aqua/qt4-mac/files/patch-cxx11.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-cxx11.diff	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/patch-cxx11.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,561 @@
+--- src/gui/kernel/qcursor_mac.mm.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/kernel/qcursor_mac.mm	2013-01-22 16:05:57.000000000 -0500
+@@ -367,7 +367,7 @@
+     type = QCursorData::TYPE_ImageCursor;
+     curs.cp.my_cursor = true;
+     QPixmap bmCopy = QPixmap::fromImage(finalCursor);
+-    NSPoint hotSpot = { hx, hy };
++    NSPoint hotSpot = { (CGFloat) hx, (CGFloat) hy };
+     nsimage = static_cast<NSImage*>(qt_mac_create_nsimage(bmCopy));
+     curs.cp.nscursor = [[NSCursor alloc] initWithImage:nsimage hotSpot: hotSpot];
+     [nsimage release];
+@@ -377,7 +377,7 @@
+ {
+     type = QCursorData::TYPE_ImageCursor;
+     curs.cp.my_cursor = true;
+-    NSPoint hotSpot = { hx, hy };
++    NSPoint hotSpot = { (CGFloat) hx, (CGFloat) hy };
+     NSImage *nsimage;
+     nsimage = static_cast<NSImage *>(qt_mac_create_nsimage(pixmap));
+     curs.cp.nscursor = [[NSCursor alloc] initWithImage:nsimage hotSpot: hotSpot];
+--- src/gui/kernel/qcocoaview_mac.mm.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/kernel/qcocoaview_mac.mm	2013-01-22 16:05:57.000000000 -0500
+@@ -1346,7 +1346,7 @@
+     // Save supported actions:
+     [theView setSupportedActions: qt_mac_mapDropActions(dragPrivate()->possible_actions)];
+     QPoint pointInView = [theView qt_qwidget]->mapFromGlobal(dndParams->globalPoint);
+-    NSPoint imageLoc = {pointInView.x() - hotspot.x(), pointInView.y() + pix.height() - hotspot.y()};
++    NSPoint imageLoc = {(CGFloat)(pointInView.x() - hotspot.x()), (CGFloat)(pointInView.y() + pix.height() - hotspot.y())};
+     NSSize mouseOffset = {0.0, 0.0};
+     NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
+     dragPrivate()->executed_action = Qt::ActionMask;
+--- src/gui/kernel/qt_cocoa_helpers_mac.mm.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/kernel/qt_cocoa_helpers_mac.mm	2013-01-22 16:05:57.000000000 -0500
+@@ -459,17 +459,17 @@
+ {
+     NSEvent *proximityEvent = static_cast<NSEvent *>(tabletEvent);
+     // simply construct a Carbon proximity record and handle it all in one spot.
+-    TabletProximityRec carbonProximityRec = { [proximityEvent vendorID],
+-                                              [proximityEvent tabletID],
+-                                              [proximityEvent pointingDeviceID],
+-                                              [proximityEvent deviceID],
+-                                              [proximityEvent systemTabletID],
+-                                              [proximityEvent vendorPointingDeviceType],
+-                                              [proximityEvent pointingDeviceSerialNumber],
++    TabletProximityRec carbonProximityRec = {(UInt16) [proximityEvent vendorID],
++                                              (UInt16) [proximityEvent tabletID],
++                                              (UInt16) [proximityEvent pointingDeviceID],
++                                              (UInt16) [proximityEvent deviceID],
++                                              (UInt16) [proximityEvent systemTabletID],
++                                              (UInt16) [proximityEvent vendorPointingDeviceType],
++                                              (UInt32) [proximityEvent pointingDeviceSerialNumber],
+                                               [proximityEvent uniqueID],
+-                                              [proximityEvent capabilityMask],
+-                                              [proximityEvent pointingDeviceType],
+-                                              [proximityEvent isEnteringProximity] };
++                                              (UInt32) [proximityEvent capabilityMask],
++					      (UInt8) [proximityEvent pointingDeviceType],
++					      (UInt8) [proximityEvent isEnteringProximity] };
+     qt_dispatchTabletProximityEvent(carbonProximityRec);
+ }
+ #endif // QT_MAC_USE_COCOA
+--- src/gui/accessible/qaccessible_mac.mm.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/accessible/qaccessible_mac.mm	2013-01-22 16:05:57.000000000 -0500
+@@ -266,129 +266,129 @@
+     int qt;
+     QAXRoleType mac;
+     bool settable;
+-} text_bindings[][10] = {
++} text_bindings[][3] = {
+     { { QAccessible::MenuItem, QAXMenuItemRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::MenuBar, QAXMenuBarRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ScrollBar, QAXScrollBarRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Grip, QAXGrowAreaRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Window, QAXWindowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Dialog, QAXWindowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::AlertMessage, QAXWindowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ToolTip, QAXWindowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::HelpBalloon, QAXWindowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::PopupMenu, QAXMenuRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Application, QAXApplicationRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Pane, QAXGroupRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Grouping, QAXGroupRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Separator, QAXSplitterRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ToolBar, QAXToolbarRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::PageTab, QAXRadioButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ButtonMenu, QAXMenuButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ButtonDropDown, QAXPopUpButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::SpinBox, QAXIncrementorRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Slider, QAXSliderRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ProgressBar, QAXProgressIndicatorRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ComboBox, QAXPopUpButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::RadioButton, QAXRadioButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::CheckBox, QAXCheckBoxRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::StaticText, QAXStaticTextRole, false },
+       { QAccessible::Name, QAXValueAttribute, false },
+       { -1, 0, false }
+     },
+     { { QAccessible::Table, QAXTableRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::StatusBar, QAXStaticTextRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Column, QAXColumnRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ColumnHeader, QAXColumnRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Row, QAXRowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::RowHeader, QAXRowRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Cell, QAXTextFieldRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::PushButton, QAXButtonRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::EditableText, QAXTextFieldRole, true },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Link, QAXTextFieldRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Indicator, QAXValueIndicatorRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Splitter, QAXSplitGroupRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::List, QAXListRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::ListItem, QAXStaticTextRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+     { { QAccessible::Cell, QAXStaticTextRole, false },
+-      { -1, 0, false }
++      { -1, 0, false }, { -1, 0, false }
+     },
+-    { { -1, 0, false } }
++    { { -1, 0, false }, { -1, 0, false }, { -1, 0, false } }
+ };
+ 
+ class QAInterface;
+--- src/gui/styles/qmacstyle_mac.mm.orig	2013-01-22 19:50:08.000000000 -0500
++++ src/gui/styles/qmacstyle_mac.mm	2013-01-22 19:55:50.000000000 -0500
+@@ -3471,8 +3471,8 @@
+                     tti.version = qt_mac_hitheme_version;
+                     tti.state = tds;
+                     QColor textColor = btn->palette.buttonText().color();
+-                    CGFloat colorComp[] = { textColor.redF(), textColor.greenF(),
+-                                          textColor.blueF(), textColor.alphaF() };
++                    CGFloat colorComp[] = { CGFloat(textColor.redF()), CGFloat(textColor.greenF()),
++					    CGFloat(textColor.blueF()), CGFloat(textColor.alphaF()) };
+                     CGContextSetFillColorSpace(cg, QCoreGraphicsPaintEngine::macGenericColorSpace());
+                     CGContextSetFillColor(cg, colorComp);
+                     tti.fontID = themeId;
+@@ -3714,8 +3714,8 @@
+                 tti.version = qt_mac_hitheme_version;
+                 tti.state = tds;
+                 QColor textColor = myTab.palette.windowText().color();
+-                CGFloat colorComp[] = { textColor.redF(), textColor.greenF(),
+-                                        textColor.blueF(), textColor.alphaF() };
++                CGFloat colorComp[] = { CGFloat(textColor.redF()), CGFloat(textColor.greenF()),
++                                        CGFloat(textColor.blueF()), CGFloat(textColor.alphaF()) };
+                 CGContextSetFillColorSpace(cg, QCoreGraphicsPaintEngine::macGenericColorSpace());
+                 CGContextSetFillColor(cg, colorComp);
+                 switch (d->aquaSizeConstrain(opt, w)) {
+@@ -3895,8 +3895,8 @@
+                 CGContextSetShouldAntialias(cg, true);
+                 CGContextSetShouldSmoothFonts(cg, true);
+                 QColor textColor = p->pen().color();
+-                CGFloat colorComp[] = { textColor.redF(), textColor.greenF(),
+-                                      textColor.blueF(), textColor.alphaF() };
++                CGFloat colorComp[] = { CGFloat(textColor.redF()), CGFloat(textColor.greenF()),
++					CGFloat(textColor.blueF()), CGFloat(textColor.alphaF()) };
+                 CGContextSetFillColorSpace(cg, QCoreGraphicsPaintEngine::macGenericColorSpace());
+                 CGContextSetFillColor(cg, colorComp);
+                 HIThemeTextInfo tti;
+@@ -5031,8 +5031,8 @@
+                 tti.version = qt_mac_hitheme_version;
+                 tti.state = tds;
+                 QColor textColor = groupBox->palette.windowText().color();
+-                CGFloat colorComp[] = { textColor.redF(), textColor.greenF(),
+-                                      textColor.blueF(), textColor.alphaF() };
++                CGFloat colorComp[] = { CGFloat(textColor.redF()), CGFloat(textColor.greenF()),
++					CGFloat(textColor.blueF()), CGFloat(textColor.alphaF()) };
+                 CGContextSetFillColorSpace(cg, QCoreGraphicsPaintEngine::macGenericColorSpace());
+                 CGContextSetFillColor(cg, colorComp);
+                 tti.fontID = checkable ? kThemeSystemFont : kThemeSmallSystemFont;
+--- src/gui/text/qtextdocument_p.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/text/qtextdocument_p.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -63,7 +63,15 @@
+ // The VxWorks DIAB compiler crashes when initializing the anonymouse union with { a7 }
+ #if !defined(Q_CC_DIAB)
+ #  define QT_INIT_TEXTUNDOCOMMAND(c, a1, a2, a3, a4, a5, a6, a7, a8) \
+-          QTextUndoCommand c = { a1, a2, 0, 0, quint8(a3), a4, a5, a6, { a7 }, a8 }
++  QTextUndoCommand c; \
++  c.command = a1; \
++  c.block_part = a2; \
++  c.operation = a3; \
++  c.format = a4; \
++  c.strPos = a5; \
++  c.pos = a6; \
++  c.length = a7; \
++  c.revision = a8;
+ #else
+ #  define QT_INIT_TEXTUNDOCOMMAND(c, a1, a2, a3, a4, a5, a6, a7, a8) \
+           QTextUndoCommand c = { a1, a2, 0, 0, a3, a4, a5, a6 }; c.blockFormat = a7; c.revision = a8
+--- src/gui/widgets/qdialogbuttonbox.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/gui/widgets/qdialogbuttonbox.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -212,7 +212,7 @@
+     return QDialogButtonBox::InvalidRole;
+ }
+ 
+-static const int layouts[2][5][14] =
++static const UInt32 layouts[2][5][14] =
+ {
+     // Qt::Horizontal
+     {
+@@ -407,7 +407,7 @@
+             tmpPolicy = 4;  // Mac modeless
+     }
+ 
+-    const int *currentLayout = layouts[orientation == Qt::Vertical][tmpPolicy];
++    const UInt32 *currentLayout = layouts[orientation == Qt::Vertical][tmpPolicy];
+ 
+     if (center)
+         buttonLayout->addStretch();
+@@ -415,7 +415,7 @@
+     QList<QAbstractButton *> acceptRoleList = buttonLists[AcceptRole];
+ 
+     while (*currentLayout != EOL) {
+-        int role = (*currentLayout & ~Reverse);
++        UInt32 role = (*currentLayout & ~Reverse);
+         bool reverse = (*currentLayout & Reverse);
+ 
+         switch (role) {
+--- src/qt3support/other/q3dragobject.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/qt3support/other/q3dragobject.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -1495,9 +1495,9 @@
+ 
+ void Q3ColorDrag::setColor(const QColor &col)
+ {
+-    short r = (col.red()   << 8) | col.red();
+-    short g = (col.green() << 8) | col.green();
+-    short b = (col.blue()  << 8) | col.blue();
++    ushort r = (col.red()   << 8) | col.red();
++    ushort g = (col.green() << 8) | col.green();
++    ushort b = (col.blue()  << 8) | col.blue();
+ 
+     // make sure we transmit data in network order
+     r = htons(r);
+--- src/opengl/gl2paintengineex/qtriangulator.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/opengl/gl2paintengineex/qtriangulator.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -1710,7 +1710,7 @@
+         } else {
+             Q_ASSERT(i + 1 < m_parent->m_indices.size());
+             // {node, from, to, next, previous, winding, mayIntersect, pointingUp, originallyPointingUp}
+-            Edge edge = {0, m_parent->m_indices.at(i), m_parent->m_indices.at(i + 1), -1, -1, 0, true, false, false};
++            Edge edge = {0, int(m_parent->m_indices.at(i)), int(m_parent->m_indices.at(i + 1)), -1, -1, 0, true, false, false};
+             m_edges.add(edge);
+         }
+     }
+--- src/openvg/qpaintengine_vg.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/openvg/qpaintengine_vg.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -971,23 +971,23 @@
+     yRadius = qMin(yRadius, rect.height() / 2);
+ 
+     VGfloat pts[] = {
+-        x1 + xRadius, y1,                   // MoveTo
+-        x2 - xRadius, y1,                   // LineTo
+-        x2 - (1 - KAPPA) * xRadius, y1,     // CurveTo
+-        x2, y1 + (1 - KAPPA) * yRadius,
+-        x2, y1 + yRadius,
+-        x2, y2 - yRadius,                   // LineTo
+-        x2, y2 - (1 - KAPPA) * yRadius,     // CurveTo
+-        x2 - (1 - KAPPA) * xRadius, y2,
+-        x2 - xRadius, y2,
+-        x1 + xRadius, y2,                   // LineTo
+-        x1 + (1 - KAPPA) * xRadius, y2,     // CurveTo
+-        x1, y2 - (1 - KAPPA) * yRadius,
+-        x1, y2 - yRadius,
+-        x1, y1 + yRadius,                   // LineTo
+-        x1, y1 + (1 - KAPPA) * yRadius,     // CurveTo
+-        x1 + (1 - KAPPA) * xRadius, y1,
+-        x1 + xRadius, y1
++      VGfloat(x1 + xRadius), VGfloat(y1),                   // MoveTo
++      VGfloat(x2 - xRadius), VGfloat(y1),                   // LineTo
++      VGfloat(x2 - (1 - KAPPA) * xRadius), VGfloat(y1),     // CurveTo
++      VGfloat(x2), VGfloat(y1 + (1 - KAPPA) * yRadius),
++      VGfloat(x2), VGfloat(y1 + yRadius),
++      VGfloat(x2), VGfloat(y2 - yRadius),                   // LineTo
++      VGfloat(x2), VGfloat(y2 - (1 - KAPPA) * yRadius),     // CurveTo
++      VGfloat(x2 - (1 - KAPPA) * xRadius), VGfloat(y2),
++      VGfloat(x2 - xRadius), VGfloat(y2),
++      VGfloat(x1 + xRadius), VGfloat(y2),                   // LineTo
++      VGfloat(x1 + (1 - KAPPA) * xRadius), VGfloat(y2),     // CurveTo
++      VGfloat(x1), VGfloat(y2 - (1 - KAPPA) * yRadius),
++      VGfloat(x1), VGfloat(y2 - yRadius),
++      VGfloat(x1), VGfloat(y1 + yRadius),                   // LineTo
++      VGfloat(x1), VGfloat(y1 + (1 - KAPPA) * yRadius),     // CurveTo
++      VGfloat(x1 + (1 - KAPPA) * xRadius), VGfloat(y1),
++      VGfloat(x1 + xRadius), VGfloat(y1)
+     };
+ 
+ #if !defined(QVG_NO_MODIFY_PATH)
+@@ -3207,7 +3207,7 @@
+         1.0f, 0.0f, 0.0f, 0.0f,
+         0.0f, 1.0f, 0.0f, 0.0f,
+         0.0f, 0.0f, 1.0f, 0.0f,
+-        0.0f, 0.0f, 0.0f, d->opacity,
++        0.0f, 0.0f, 0.0f, VGfloat(d->opacity),
+         0.0f, 0.0f, 0.0f, 0.0f
+     };
+     VGImage tileWithOpacity = VG_INVALID_HANDLE;
+--- src/openvg/qpixmapdata_vg.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/openvg/qpixmapdata_vg.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -421,7 +421,7 @@
+             1.0f, 0.0f, 0.0f, 0.0f,
+             0.0f, 1.0f, 0.0f, 0.0f,
+             0.0f, 0.0f, 1.0f, 0.0f,
+-            0.0f, 0.0f, 0.0f, opacity,
++            0.0f, 0.0f, 0.0f, VGfloat(opacity),
+             0.0f, 0.0f, 0.0f, 0.0f
+         };
+         vgColorMatrix(vgImageOpacity, vgImage, matrix);
+--- src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h	2013-01-22 16:05:57.000000000 -0500
+@@ -176,7 +176,7 @@
+             // Node::emitCode assumes that dst, if provided, is either a local or a referenced temporary.
+             ASSERT(!dst || dst == ignoredResult() || !dst->isTemporary() || dst->refCount());
+             if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) {
+-                LineInfo info = { instructions().size(), n->lineNo() };
++	      LineInfo info = { uint32_t(instructions().size()), int32_t(n->lineNo()) };
+                 m_codeBlock->addLineInfo(info);
+             }
+             if (m_emitNodeDepth >= s_maxEmitNodeDepth)
+@@ -195,7 +195,7 @@
+         void emitNodeInConditionContext(ExpressionNode* n, Label* trueTarget, Label* falseTarget, bool fallThroughMeansTrue)
+         {
+             if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) {
+-                LineInfo info = { instructions().size(), n->lineNo() };
++	      LineInfo info = { uint32_t(instructions().size()), int32_t(n->lineNo()) };
+                 m_codeBlock->addLineInfo(info);
+             }
+             if (m_emitNodeDepth >= s_maxEmitNodeDepth)
+--- src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -1835,7 +1835,7 @@
+ RegisterID* BytecodeGenerator::emitCatch(RegisterID* targetRegister, Label* start, Label* end)
+ {
+ #if ENABLE(JIT)
+-    HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth, CodeLocationLabel() };
++  HandlerInfo info = { uint32_t(start->bind(0, 0)), uint32_t(end->bind(0, 0)), uint32_t(instructions().size()), uint32_t(m_dynamicScopeDepth + m_baseScopeDepth), CodeLocationLabel() };
+ #else
+     HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth };
+ #endif
+@@ -1889,7 +1889,7 @@
+ 
+ void BytecodeGenerator::beginSwitch(RegisterID* scrutineeRegister, SwitchInfo::SwitchType type)
+ {
+-    SwitchInfo info = { instructions().size(), type };
++  SwitchInfo info = { uint32_t(instructions().size()), type };
+     switch (type) {
+         case SwitchInfo::SwitchImmediate:
+             emitOpcode(op_switch_imm);
+--- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -195,7 +195,7 @@
+         UString::Rep::empty().hash();
+         return &UString::Rep::empty();
+     }
+-    UCharBuffer buf = {s, length}; 
++    UCharBuffer buf = {s, (unsigned int) length}; 
+     pair<HashSet<UString::Rep*>::iterator, bool> addResult = globalData->identifierTable->add<UCharBuffer, UCharBufferTranslator>(buf);
+ 
+     // If the string is newly-translated, then we need to adopt it.
+--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/NullPtr.h.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/NullPtr.h	2013-01-22 16:05:57.000000000 -0500
+@@ -31,16 +31,21 @@
+ // nullptr_t type and nullptr object. They are defined in the same namespaces they
+ // would be in compiler and library that had the support.
+ 
+-#ifndef __has_feature
+-    #define __has_feature(feature) 0
+-#endif
++#if (__cplusplus >= 201103L) || defined(__GXX_EXPERIMENTAL_CXX0X__)
++
++#include <cstddef>
+ 
+-#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL))
++// libstdc++ supports nullptr_t starting with gcc 4.6.
++#if defined(__GLIBCXX__) && __GLIBCXX__ < 20110325
++namespace std {
++typedef decltype(nullptr) nullptr_t;
++}
++#endif
+ 
+ #define HAVE_NULLPTR 1
+ 
+ #else
+-
++#warning "reverting to non NULLPTR"
+ namespace std {
+     class nullptr_t { };
+ }
+--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/text/AtomicString.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/text/AtomicString.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -301,7 +301,7 @@
+     if (!length)
+         return StringImpl::empty();
+ 
+-    UCharBuffer buffer = { s, length };
++    UCharBuffer buffer = { s, (unsigned int) length };
+     return addToStringTable<UCharBuffer, UCharBufferTranslator>(buffer);
+ }
+ 
+--- src/3rdparty/webkit/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -2058,7 +2058,7 @@
+ {
+     m_usesExceptions = true;
+ #if ENABLE(JIT)
+-    HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth, CodeLocationLabel() };
++    HandlerInfo info = { uint32_t(start->bind(0, 0)), uint32_t(end->bind(0, 0)), uint32_t(instructions().size()), uint32_t(m_dynamicScopeDepth + m_baseScopeDepth), CodeLocationLabel() };
+ #else
+     HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth };
+ #endif
+@@ -2107,7 +2107,7 @@
+ 
+ void BytecodeGenerator::beginSwitch(RegisterID* scrutineeRegister, SwitchInfo::SwitchType type)
+ {
+-    SwitchInfo info = { instructions().size(), type };
++    SwitchInfo info = { uint32_t(instructions().size()), type };
+     switch (type) {
+         case SwitchInfo::SwitchImmediate:
+             emitOpcode(op_switch_imm);
+--- src/3rdparty/webkit/Source/JavaScriptCore/runtime/Identifier.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/JavaScriptCore/runtime/Identifier.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -222,7 +222,7 @@
+     }
+     if (!length)
+         return StringImpl::empty();
+-    UCharBuffer buf = {s, length}; 
++    UCharBuffer buf = {s, (unsigned int) length}; 
+     pair<HashSet<StringImpl*>::iterator, bool> addResult = globalData->identifierTable->add<UCharBuffer, IdentifierUCharBufferTranslator>(buf);
+ 
+     // If the string is newly-translated, then we need to adopt it.
+--- src/3rdparty/webkit/Source/JavaScriptCore/runtime/StringPrototype.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/JavaScriptCore/runtime/StringPrototype.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -463,7 +463,7 @@
+     }
+     
+     size_t matchEnd = matchPos + matchLen;
+-    int ovector[2] = { matchPos, matchEnd };
++    int ovector[2] = { int (matchPos), int (matchEnd) };
+     return JSValue::encode(jsString(exec, source.substringSharingImpl(0, matchPos), substituteBackreferences(replacementString, source, ovector, 0), source.substringSharingImpl(matchEnd)));
+ }
+ 
+--- src/3rdparty/webkit/Source/WebCore/dom/DocumentMarkerController.cpp.orig	2013-01-22 16:04:44.000000000 -0500
++++ src/3rdparty/webkit/Source/WebCore/dom/DocumentMarkerController.cpp	2013-01-22 16:05:57.000000000 -0500
+@@ -59,7 +59,7 @@
+     for (TextIterator markedText(range); !markedText.atEnd(); markedText.advance()) {
+         RefPtr<Range> textPiece = markedText.range();
+         int exception = 0;
+-        DocumentMarker marker = {type, textPiece->startOffset(exception), textPiece->endOffset(exception), description, false};
++        DocumentMarker marker = {type, (unsigned int) textPiece->startOffset(exception), (unsigned int) textPiece->endOffset(exception), description, false};
+         addMarker(textPiece->startContainer(exception), marker);
+     }
+ }

Added: trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-base.conf.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-base.conf.diff	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-base.conf.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,26 @@
+--- mkspecs/common/g++-base.conf.orig	2013-01-22 16:04:48.000000000 -0500
++++ mkspecs/common/g++-base.conf	2013-01-23 20:54:44.000000000 -0500
+@@ -8,14 +8,14 @@
+ # you can use the manual test in tests/manual/mkspecs.
+ #
+ 
+-QMAKE_CC = gcc
++QMAKE_CC = @CC@
+ 
+ QMAKE_LINK_C       = $$QMAKE_CC
+ QMAKE_LINK_C_SHLIB = $$QMAKE_CC
+ 
+ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g
+ 
+-QMAKE_CXX = g++
++QMAKE_CXX = @CXX@
+ 
+ QMAKE_LINK       = $$QMAKE_CXX
+ QMAKE_LINK_SHLIB = $$QMAKE_CXX
+@@ -28,3 +28,6 @@
+ QMAKE_CFLAGS_USE_PRECOMPILE   = -include ${QMAKE_PCH_OUTPUT_BASE}
+ QMAKE_CXXFLAGS_PRECOMPILE     = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
++
++QMAKE_CXXFLAGS_CXX11 = -std=c++11
++QMAKE_LFLAGS_CXX11   =

Modified: trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff	2013-01-24 13:26:39 UTC (rev 102009)
+++ trunk/dports/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -1,6 +1,6 @@
---- mkspecs/common/g++-macx.conf.orig	2012-04-23 14:49:04.000000000 -0400
-+++ mkspecs/common/g++-macx.conf	2012-04-17 14:38:16.000000000 -0400
-@@ -16,8 +16,8 @@
+--- mkspecs/common/g++-macx.conf.orig	2013-01-22 16:04:48.000000000 -0500
++++ mkspecs/common/g++-macx.conf	2013-01-23 20:55:09.000000000 -0500
+@@ -16,16 +16,20 @@
  
  QMAKE_LFLAGS_STATIC_LIB += -all_load
  
@@ -11,3 +11,15 @@
  
  QMAKE_CXXFLAGS_X86_64         = $$QMAKE_CFLAGS_X86_64
  QMAKE_CXXFLAGS_PPC_64         = $$QMAKE_CFLAGS_PPC_64
+ QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
+ QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
++QMAKE_OBJECTIVE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
++QMAKE_OBJECTIVE_CXXFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
+ QMAKE_LFLAGS_X86_64           = $$QMAKE_CFLAGS_X86_64
+ QMAKE_LFLAGS_PPC_64           = $$QMAKE_CFLAGS_PPC_64
+ 
++QMAKE_OBJECTIVE_CXXFLAGS_CXX11 = $$QMAKE_CXXFLAGS_CXX11
++
+ QMAKE_OBJCFLAGS_PRECOMPILE       = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_OBJCFLAGS_USE_PRECOMPILE   = $$QMAKE_CFLAGS_USE_PRECOMPILE
+ QMAKE_OBJCXXFLAGS_PRECOMPILE     = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}

Added: trunk/dports/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff
===================================================================
--- trunk/dports/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,166 @@
+--- mkspecs/common/gcc-base-macx.conf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/common/gcc-base-macx.conf	2013-01-24 08:25:21.000000000 -0500
+@@ -29,12 +29,23 @@
+ QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+ QMAKE_OBJECTIVE_CFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
+ QMAKE_OBJECTIVE_CFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
+-QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
++QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS
+ QMAKE_OBJECTIVE_CFLAGS_X86      = $$QMAKE_CFLAGS_X86
+ QMAKE_OBJECTIVE_CFLAGS_X86_64   = $$QMAKE_CFLAGS_X86_64
+ QMAKE_OBJECTIVE_CFLAGS_PPC      = $$QMAKE_CFLAGS_PPC
+ QMAKE_OBJECTIVE_CFLAGS_PPC_64   = $$QMAKE_CFLAGS_PPC_64
+ 
++QMAKE_OBJECTIVE_CXXFLAGS          = $$QMAKE_CXXFLAGS
++QMAKE_OBJECTIVE_CXXFLAGS_WARN_ON  = $$QMAKE_CXXFLAGS_WARN_ON
++QMAKE_OBJECTIVE_CXXFLAGS_WARN_OFF = $$QMAKE_CXXFLAGS_WARN_OFF
++QMAKE_OBJECTIVE_CXXFLAGS_DEBUG    = $$QMAKE_CXXFLAGS_DEBUG
++QMAKE_OBJECTIVE_CXXFLAGS_RELEASE  = $$QMAKE_CXXFLAGS_RELEASE
++QMAKE_OBJECTIVE_CXXFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS
++QMAKE_OBJECTIVE_CXXFLAGS_X86      = $$QMAKE_CXXFLAGS_X86
++QMAKE_OBJECTIVE_CXXFLAGS_X86_64   = $$QMAKE_CXXFLAGS_X86_64
++QMAKE_OBJECTIVE_CXXFLAGS_PPC      = $$QMAKE_CXXFLAGS_PPC
++QMAKE_OBJECTIVE_CXXFLAGS_PPC_64   = $$QMAKE_CXXFLAGS_PPC_64
++
+ QMAKE_LFLAGS_X86    += $$QMAKE_CFLAGS_X86
+ QMAKE_LFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
+ QMAKE_LFLAGS_PPC    += $$QMAKE_CFLAGS_PPC
+--- mkspecs/features/debug.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/debug.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -3,6 +3,7 @@
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_DEBUG
+ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG
+ QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_DEBUG
++QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_DEBUG
+ QMAKE_LFLAGS += $$QMAKE_LFLAGS_DEBUG
+ QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_DEBUG
+ !debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(debug, release)
+--- mkspecs/features/mac/default_post.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/default_post.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -1,5 +1,5 @@
+ load(default_post)
+-!no_objective_c:CONFIG += objective_c
++!no_objective_c:CONFIG += split_sources objective_c objective_cxx
+ 
+ # Pick a suitable default architecture for qmake-based applications.
+ # If the Qt package contains one of x86 and x86_64, pick that one. If it
+--- mkspecs/features/mac/objective_c.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/objective_c.prf	2013-01-24 09:48:39.000000000 -0500
+@@ -1,23 +1,18 @@
+-
+-for(source, SOURCES) {
+-    contains(source,.*\\.mm?$) {
+-        warning(Objective-C source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
+-        SOURCES -= $$source
+-        OBJECTIVE_SOURCES += $$source
+-    }
+-}
++# Add compiler directives for Objective C (.m) only
++#
++# OBJECTIVE_C_SOURCES has already been set in "split_sources"
+ 
+ isEmpty(QMAKE_OBJECTIVE_CC):QMAKE_OBJECTIVE_CC = $$QMAKE_CC
+ 
+ OBJECTIVE_C_OBJECTS_DIR = $$OBJECTS_DIR
+ isEmpty(OBJECTIVE_C_OBJECTS_DIR):OBJECTIVE_C_OBJECTS_DIR = .
+-isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .mm .m
++isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .m
+ 
+ objective_c.dependency_type = TYPE_C
+ objective_c.variables = QMAKE_OBJECTIVE_CFLAGS
+-objective_c.commands = $$QMAKE_OBJECTIVE_CC -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
++objective_c.commands = $$QMAKE_OBJECTIVE_CC -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
+ objective_c.output = $$OBJECTIVE_C_OBJECTS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+-objective_c.input = OBJECTIVE_SOURCES
++objective_c.input = OBJECTIVE_C_SOURCES
+ objective_c.name = Compile ${QMAKE_FILE_IN}
+ silent:objective_c.commands = @echo objective-c ${QMAKE_FILE_IN} && $$objective_c.commands
+ QMAKE_EXTRA_COMPILERS += objective_c
+--- mkspecs/features/mac/ppc.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/ppc.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+ } else {
+     QMAKE_CFLAGS += $$QMAKE_CFLAGS_PPC
+     QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_PPC
++    QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_PPC
+     QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_PPC
+     QMAKE_LFLAGS += $$QMAKE_LFLAGS_PPC
+ }
+--- mkspecs/features/mac/ppc64.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/ppc64.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+ } else {
+     QMAKE_CFLAGS += $$QMAKE_CFLAGS_PPC_64
+     QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_PPC_64
++    QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_PPC_64
+     QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_PPC_64
+     QMAKE_LFLAGS += $$QMAKE_LFLAGS_PPC_64
+ }
+--- mkspecs/features/mac/sdk.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/sdk.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+     !macx-xcode:!macx-pbuilder {
+         QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK
+         QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_MAC_SDK
++        QMAKE_OBJECTIVE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK
+         QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK
+         QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK
+     }
+--- mkspecs/features/mac/x86.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/x86.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+ } else {
+    QMAKE_CFLAGS += $$QMAKE_CFLAGS_X86
+    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_X86
++   QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_X86
+    QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_X86
+    QMAKE_LFLAGS += $$QMAKE_LFLAGS_X86
+ }
+--- mkspecs/features/mac/x86_64.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/mac/x86_64.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+ } else {
+    QMAKE_CFLAGS += $$QMAKE_CFLAGS_X86_64
+    QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_X86_64
++   QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_X86_64
+    QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_X86_64
+    QMAKE_LFLAGS += $$QMAKE_LFLAGS_X86_64
+ }
+--- mkspecs/features/release.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/release.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,6 +2,7 @@
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE
+ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE
+ QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_RELEASE
++QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_RELEASE
+ QMAKE_LFLAGS += $$QMAKE_LFLAGS_RELEASE
+ QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE
+-!debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(release, debug)
+\ No newline at end of file
++!debug_and_release:fix_output_dirs:fixExclusiveOutputDirs(release, debug)
+--- mkspecs/features/unix/hide_symbols.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/unix/hide_symbols.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -1,4 +1,5 @@
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_HIDESYMS
+ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_HIDESYMS
+ QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_HIDESYMS
++QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_HIDESYMS
+ QMAKE_LFLAGS += $$QMAKE_LFLAGS_HIDESYMS
+--- mkspecs/features/warn_off.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/warn_off.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -1,4 +1,5 @@
+ CONFIG -= warn_on
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_OFF
+ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_OFF
+-QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_OFF
+\ No newline at end of file
++QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_OFF
++QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_WARN_OFF
+--- mkspecs/features/warn_on.prf.orig	2013-01-24 08:20:57.000000000 -0500
++++ mkspecs/features/warn_on.prf	2013-01-24 08:25:21.000000000 -0500
+@@ -2,4 +2,4 @@
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_ON
+ QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_ON
+-
++QMAKE_OBJECTIVE_CXXFLAGS += $$QMAKE_OBJECTIVE_CXXFLAGS_WARN_ON

Added: trunk/dports/aqua/qt4-mac/files/split_sources.prf
===================================================================
--- trunk/dports/aqua/qt4-mac/files/split_sources.prf	                        (rev 0)
+++ trunk/dports/aqua/qt4-mac/files/split_sources.prf	2013-01-24 15:04:52 UTC (rev 102010)
@@ -0,0 +1,52 @@
+# move Obective C and C++ files from SOURCES to OBJECTIVE_SOURCES
+
+for(source, SOURCES) {
+    contains(source,.*\\.m$) {
+        warning(Objective-C source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
+        SOURCES -= $$source
+        OBJECTIVE_SOURCES += $$source
+    } else {
+        contains(source,.*\\.mm$) {
+            warning(Objective-C++ source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES)
+            SOURCES -= $$source
+            OBJECTIVE_SOURCES += $$source
+ 	}
+    }
+}
+
+# move C and C++ files from OBJECTIVE_SOURCES to SOURCES
+
+for(source, OBJECTIVE_SOURCES) {
+    contains(source,.*\\.c$) {
+        warning(C source \'$$source\' found in SOURCES but should be in SOURCES)
+        OBJECTIVE_SOURCES -= $$source
+        SOURCES += $$source
+    } else {
+      	contains(source,.*\\.cc$) {
+            warning(C++ source \'$$source\' found in SOURCES but should be in SOURCES)
+            OBJECTIVE_SOURCES -= $$source
+            SOURCES += $$source
+        } else {
+    	    contains(source,.*\\.cpp$) {
+	        warning(C++ source \'$$source\' found in SOURCES but should be in SOURCES)
+		OBJECTIVE_SOURCES -= $$source
+		SOURCES += $$source
+            }
+        }
+    }
+}
+
+# split Objective C and C++ sources into their own variables
+
+for(source, OBJECTIVE_SOURCES) {
+    contains(source,.*\\.mm$) {
+        OBJECTIVE_CXX_SOURCES += $$source
+    } else {
+        contains(source,.*\\.m$) {
+            OBJECTIVE_C_SOURCES += $$source
+        } else {
+            warning(Source \'$$source\' was found in OBJECTIVE_SOURCES but its file extension is not a typical objective C (\'.m\') or C++ (\'.mm\') extension; assuming Objective C.)
+            OBJECTIVE_C_SOURCES += $$source
+	}
+    }
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130124/825b7458/attachment-0001.html>


More information about the macports-changes mailing list