about summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorEvgeny Egorochkin <phreedom@yandex.ru>2018-06-24 20:21:33 +0300
committerEvgeny Egorochkin <phreedom@yandex.ru>2018-06-24 20:23:21 +0300
commit05fd6a0c87b8e2dab3a36982a0ea2f06938446d6 (patch)
tree8d341a1432401731462edf11543f67dccdded05e /pkgs/applications/networking
parent832c5cb5d89d3b4c3f2ead24431c716a539fb122 (diff)
downloadnixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar.gz
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar.bz2
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar.lz
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar.xz
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.tar.zst
nixlib-05fd6a0c87b8e2dab3a36982a0ea2f06938446d6.zip
quassel: fix building against Qt-5.11
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix2
-rw-r--r--pkgs/applications/networking/irc/quassel/qt5_11.patch72
2 files changed, 74 insertions, 0 deletions
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 739842bbec3a..9de394422279 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -71,6 +71,8 @@ in with stdenv; mkDerivation rec {
           --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
     '';
 
+  patches = [ ./qt5_11.patch ];
+
   meta = with stdenv.lib; {
     homepage = https://quassel-irc.org/;
     description = "Qt/KDE distributed IRC client suppporting a remote daemon";
diff --git a/pkgs/applications/networking/irc/quassel/qt5_11.patch b/pkgs/applications/networking/irc/quassel/qt5_11.patch
new file mode 100644
index 000000000000..45e43d7f96be
--- /dev/null
+++ b/pkgs/applications/networking/irc/quassel/qt5_11.patch
@@ -0,0 +1,72 @@
+From 92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Thu, 3 May 2018 23:19:34 +0200
+Subject: [PATCH] cmake: Fix build with Qt 5.11
+
+Qt 5.11 removes the qt5_use_modules function, so add a copy. If
+present, the Qt-provided function will be used instead.
+
+Closes GH-355.
+---
+ cmake/QuasselMacros.cmake | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+
+diff --git a/cmake/QuasselMacros.cmake b/cmake/QuasselMacros.cmake
+index 652c0042..d77ba1cf 100644
+--- a/cmake/QuasselMacros.cmake
++++ b/cmake/QuasselMacros.cmake
+@@ -5,6 +5,9 @@
+ # The qt4_use_modules function was taken from CMake's Qt4Macros.cmake:
+ # (C) 2005-2009 Kitware, Inc.
+ #
++# The qt5_use_modules function was taken from Qt 5.10.1 (and modified):
++# (C) 2005-2011 Kitware, Inc.
++#
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ 
+@@ -43,6 +46,41 @@ function(qt4_use_modules _target _link_type)
+     endforeach()
+ endfunction()
+ 
++# Qt 5.11 removed the qt5_use_modules function, so we need to provide it until we can switch to a modern CMake version.
++# If present, the Qt-provided version will be used automatically instead.
++function(qt5_use_modules _target _link_type)
++    if (NOT TARGET ${_target})
++        message(FATAL_ERROR "The first argument to qt5_use_modules must be an existing target.")
++    endif()
++    if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE" )
++        set(_qt5_modules ${ARGN})
++        set(_qt5_link_type ${_link_type})
++    else()
++        set(_qt5_modules ${_link_type} ${ARGN})
++    endif()
++
++    if ("${_qt5_modules}" STREQUAL "")
++        message(FATAL_ERROR "qt5_use_modules requires at least one Qt module to use.")
++    endif()
++    foreach(_module ${_qt5_modules})
++        if (NOT Qt5${_module}_FOUND)
++            find_package(Qt5${_module} PATHS "${_Qt5_COMPONENT_PATH}" NO_DEFAULT_PATH)
++            if (NOT Qt5${_module}_FOUND)
++                message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
++            endif()
++        endif()
++        target_link_libraries(${_target} ${_qt5_link_type} ${Qt5${_module}_LIBRARIES})
++        set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS})
++        set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS})
++        if (Qt5_POSITION_INDEPENDENT_CODE
++                AND (CMAKE_VERSION VERSION_LESS 2.8.12
++                    AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
++                    OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)))
++            set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE})
++        endif()
++    endforeach()
++endfunction()
++
+ # Some wrappers for simplifying dual-Qt support
+ 
+ function(qt_use_modules)
+-- 
+2.16.2
+