svn commit: r405187 - in head: Mk devel/qt5-core devel/qt5/files
Raphael Kubo da Costa
rakuco at FreeBSD.org
Sun Jan 3 21:25:24 UTC 2016
Author: rakuco
Date: Sun Jan 3 21:25:23 2016
New Revision: 405187
URL: https://svnweb.freebsd.org/changeset/ports/405187
Log:
Qt5: Add a patch to allow using clang, -std=c++11 and base libstdc++.
This is similar to what we did for Qt4 in r362770. Some C++11 features actually
depend on the C++ standard library, such as <initializer_list> or std::move().
So far, ports with USES=compiler:c++0x and similar failed to build with Qt5 on
FreeBSD 9.x, as base libstdc++ is very old and does not support those C++11
features.
Piggyback on a check that is already present upstream for OS X, which has the
same ancient libstdc++ version. Apple's version has a custom patch with version
macros that we can't use, so we make a broader check and disable the features
that depend on a modern standard library if libc++ is not used.
Added:
head/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h (contents, props changed)
Modified:
head/Mk/bsd.qt.mk
head/devel/qt5-core/Makefile
Modified: head/Mk/bsd.qt.mk
==============================================================================
--- head/Mk/bsd.qt.mk Sun Jan 3 21:15:57 2016 (r405186)
+++ head/Mk/bsd.qt.mk Sun Jan 3 21:25:23 2016 (r405187)
@@ -173,11 +173,13 @@ CONFIGURE_ARGS+=-verbose
. if ${QT_DIST} == "base" || ${_QT_VERSION:M4*}
. if ${_QT_VERSION:M4*}
_EXTRA_PATCHES_QT4= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-src-corelib-global-qglobal.h
+. else
+_EXTRA_PATCHES_QT5= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-src_corelib_global_qcompilerdetection.h
. endif
EXTRA_PATCHES?= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-configure \
${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-config.tests-unix-compile.test \
${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-libtool \
- ${_EXTRA_PATCHES_QT4}
+ ${_EXTRA_PATCHES_QT4} ${_EXTRA_PATCHES_QT5}
. endif
# Override settings installed in qconfig.h and *.pri files. The flags will be
Modified: head/devel/qt5-core/Makefile
==============================================================================
--- head/devel/qt5-core/Makefile Sun Jan 3 21:15:57 2016 (r405186)
+++ head/devel/qt5-core/Makefile Sun Jan 3 21:25:23 2016 (r405187)
@@ -2,7 +2,7 @@
PORTNAME= core
DISTVERSION= ${QT5_VERSION}
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel
PKGNAMEPREFIX= qt5-
Added: head/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/qt5/files/extrapatch-src_corelib_global_qcompilerdetection.h Sun Jan 3 21:25:23 2016 (r405187)
@@ -0,0 +1,15 @@
+--- src/corelib/global/qcompilerdetection.h.orig 2016-01-03 18:13:55 UTC
++++ src/corelib/global/qcompilerdetection.h
+@@ -900,10 +900,10 @@
+ # undef Q_COMPILER_REF_QUALIFIERS
+ # endif
+ # endif // Q_OS_QNX
+-# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && defined(Q_OS_MAC) && defined(__GNUC_LIBSTD__) \
+- && ((__GNUC_LIBSTD__-0) * 100 + __GNUC_LIBSTD_MINOR__-0 <= 402)
++# if (defined(Q_CC_CLANG) || defined(Q_CC_INTEL)) && !defined(_LIBCPP_VERSION)
+ // Mac OS X: Apple has not updated libstdc++ since 2007, which means it does not have
+ // <initializer_list> or std::move. Let's disable these features
++// The same applies to FreeBSD's base libstdc++ version used in FreeBSD 9.x.
+ # undef Q_COMPILER_INITIALIZER_LISTS
+ # undef Q_COMPILER_RVALUE_REFS
+ # undef Q_COMPILER_REF_QUALIFIERS
More information about the svn-ports-head
mailing list