summaryrefslogtreecommitdiff
path: root/x11/kdelibs4
diff options
context:
space:
mode:
authorRaphael Kubo da Costa <rakuco@FreeBSD.org>2015-09-16 08:55:04 +0000
committerRaphael Kubo da Costa <rakuco@FreeBSD.org>2015-09-16 08:55:04 +0000
commit39ced03cc1d1a7517467fd89bf9ccbd69675c901 (patch)
treee7c188c382abfae82fd4ac0c5e99a8570491f129 /x11/kdelibs4
parentUpdate 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/Makefile1
-rw-r--r--x11/kdelibs4/files/patch-cmake_modules_FindQt4.cmake52
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)