diff options
author | Raphael Kubo da Costa <rakuco@FreeBSD.org> | 2015-09-16 08:55:04 +0000 |
---|---|---|
committer | Raphael Kubo da Costa <rakuco@FreeBSD.org> | 2015-09-16 08:55:04 +0000 |
commit | 39ced03cc1d1a7517467fd89bf9ccbd69675c901 (patch) | |
tree | e7c188c382abfae82fd4ac0c5e99a8570491f129 /x11/kdelibs4 | |
parent | Update to bind99 to 9.9.8 & bind910 to 9.10.3. (diff) |
Update the Qt4 ports to 4.8.7.
According to upstream, this is the last planned Qt4 release.
A list of changes since 4.8.6 can be found here:
<http://download.qt.io/official_releases/qt/4.8/4.8.7/changes-4.8.7>
Porting notes and changes:
- Remove several patches that have been upstreamed.
- Make Uses/qmake.mk pass the contents of LIBS to the qmake environment. [1]
- Repurpose devel/qt4/files/extrapatch-src-corelib-global-qglobal.h now the
original patch is part of the release (curiously enough, the original
patch was never actually used, as the ?= assignment in r362837 after
r362770 was never possible).
This works around the way compiler support for C++11 features is detected
in Qt 4.8.7: while it originally only uses the compiler to determine if
something is supported or not, the initializer lists feature also depends
on the C++ standard library being used. It's a problem in FreeBSD 9.x,
where USES=compiler:c++0x or USES=compiler:c++11-lang means we will use
clang to build a port but use libstdc++ from base (GCC 4.2). The latter
obviously does not support initializer lists, and the build fails because
Qt tries to include headers that do not exist (<initializer_list>).
Since detecting libstdc++'s version is not trivial (we need to include a
non-lightweight header like cstdio and then check for __GLIBCXX__), we
just enable Q_COMPILER_INITIALIZER_LISTS support only when libc++ is used
(there should be no reason for someone to be using clang with GCC 4.8's
libstdc++, for example).
x11/kdelibs4's FindQt4.cmake had to include a backported change from the
upstream FindQt4.cmake in CMake itself to use a C++ compiler to detect
flags like Q_WS_X11, otherwise the inclusion of <ciso646> in qglobal.h
makes the build fail.
This patch contains changes by me, makc@ and alonso@.
PR: 202552 [1]
PR: 202808 [exp-run]
Submitted by: pawel@ [1]
Notes
Notes:
svn path=/head/; revision=397043
Diffstat (limited to 'x11/kdelibs4')
-rw-r--r-- | x11/kdelibs4/Makefile | 1 | ||||
-rw-r--r-- | x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake | 52 |
2 files changed, 50 insertions, 3 deletions
diff --git a/x11/kdelibs4/Makefile b/x11/kdelibs4/Makefile index 918a69347992..c2d4f914f189 100644 --- a/x11/kdelibs4/Makefile +++ b/x11/kdelibs4/Makefile @@ -3,6 +3,7 @@ PORTNAME= kdelibs PORTVERSION= ${KDE4_VERSION} +PORTREVISION= 1 CATEGORIES= x11 kde MASTER_SITES= KDE/${KDE4_BRANCH}/${PORTVERSION}/src DIST_SUBDIR= KDE/${PORTVERSION} diff --git a/x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake b/x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake index 515e221eb028..7213d99f0cf2 100644 --- a/x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake +++ b/x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake @@ -1,6 +1,26 @@ ---- ./cmake/modules/FindQt4.cmake.orig 2011-07-28 05:34:31.000000000 +1100 -+++ ./cmake/modules/FindQt4.cmake 2012-05-18 00:28:12.000000000 +1100 -@@ -627,23 +627,12 @@ +Hunks 1 and 3: + Backport upstream CMake change de30173d ("Remove C compiler requirement from + FindQt4.cmake") so that it uses a C++ compiler to look for Q_WS_X11, + otherwise the build fails because <ciso646> from qglobal.h is not present + when using a C compiler. + +Hunk 2: + Do the same thing we do in devel/cmake's FindQt4.cmake patch. The idea behind + the change is that the directories FindQt4.cmake looks for might not be + present at the time CMake looks for them since the ports that actually create + them may not be required by the port calling CMake. +--- cmake/modules/FindQt4.cmake.orig 2014-11-06 22:33:50 UTC ++++ cmake/modules/FindQt4.cmake +@@ -405,7 +405,7 @@ QT_CHECK_FLAG_EXISTS(-DQT_NO_DEBUG CMAKE + QT_CHECK_FLAG_EXISTS(-DQT_NO_DEBUG CMAKE_CXX_FLAGS_MINSIZEREL "release minsize") + + INCLUDE(MacroPushRequiredVars) +-INCLUDE(CheckSymbolExists) ++INCLUDE(CheckCXXSymbolExists) + INCLUDE(MacroAddFileDependencies) + + SET(QT_USE_FILE ${CMAKE_ROOT}/Modules/UseQt4.cmake) +@@ -638,23 +638,12 @@ IF (QT4_QMAKE_FOUND) # ask qmake for the imports directory IF (QT_LIBRARY_DIR AND NOT QT_IMPORTS_DIR OR QT_QMAKE_CHANGED) _qt4_query_qmake(QT_INSTALL_IMPORTS qt_imports_dir) @@ -26,3 +46,29 @@ ############################################# +@@ -671,19 +660,19 @@ IF (QT4_QMAKE_FOUND) + SET(CMAKE_REQUIRED_FLAGS "-F${QT_LIBRARY_DIR} ") + ENDIF( QT_USE_FRAMEWORKS ) + # Check for Window system symbols (note: only one should end up being set) +- CHECK_SYMBOL_EXISTS(Q_WS_X11 "QtCore/qglobal.h" Q_WS_X11) +- CHECK_SYMBOL_EXISTS(Q_WS_WIN "QtCore/qglobal.h" Q_WS_WIN) +- CHECK_SYMBOL_EXISTS(Q_WS_QWS "QtCore/qglobal.h" Q_WS_QWS) +- CHECK_SYMBOL_EXISTS(Q_WS_MAC "QtCore/qglobal.h" Q_WS_MAC) ++ CHECK_CXX_SYMBOL_EXISTS(Q_WS_X11 "QtCore/qglobal.h" Q_WS_X11) ++ CHECK_CXX_SYMBOL_EXISTS(Q_WS_WIN "QtCore/qglobal.h" Q_WS_WIN) ++ CHECK_CXX_SYMBOL_EXISTS(Q_WS_QWS "QtCore/qglobal.h" Q_WS_QWS) ++ CHECK_CXX_SYMBOL_EXISTS(Q_WS_MAC "QtCore/qglobal.h" Q_WS_MAC) + IF(Q_WS_MAC) + IF(QT_QMAKE_CHANGED) + UNSET(QT_MAC_USE_COCOA CACHE) + ENDIF(QT_QMAKE_CHANGED) +- CHECK_SYMBOL_EXISTS(QT_MAC_USE_COCOA "QtCore/qconfig.h" QT_MAC_USE_COCOA) ++ CHECK_CXX_SYMBOL_EXISTS(QT_MAC_USE_COCOA "QtCore/qconfig.h" QT_MAC_USE_COCOA) + ENDIF(Q_WS_MAC) + + IF (QT_QTCOPY_REQUIRED) +- CHECK_SYMBOL_EXISTS(QT_IS_QTCOPY "QtCore/qglobal.h" QT_KDE_QT_COPY) ++ CHECK_CXX_SYMBOL_EXISTS(QT_IS_QTCOPY "QtCore/qglobal.h" QT_KDE_QT_COPY) + IF (NOT QT_IS_QTCOPY) + MESSAGE(FATAL_ERROR "qt-copy is required, but hasn't been found") + ENDIF (NOT QT_IS_QTCOPY) |