mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: quassel: Fix building with Qt 5.11.
* gnu/packages/irc.scm (quassel)[sources]: Add patch. Return #t from snippet. * gnu/packages/patches/quassel-qt-5.11.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
4edc431b0f
commit
68ddfb2e8d
3 changed files with 77 additions and 2 deletions
|
@ -1067,6 +1067,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/qtbase-use-TZDIR.patch \
|
%D%/packages/patches/qtbase-use-TZDIR.patch \
|
||||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||||
%D%/packages/patches/quagga-reproducible-build.patch \
|
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||||
|
%D%/packages/patches/quassel-qt-5.11.patch \
|
||||||
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
||||||
%D%/packages/patches/rapicorn-isnan.patch \
|
%D%/packages/patches/rapicorn-isnan.patch \
|
||||||
%D%/packages/patches/raptor2-heap-overflow.patch \
|
%D%/packages/patches/raptor2-heap-overflow.patch \
|
||||||
|
|
|
@ -74,13 +74,15 @@ (define-public quassel
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1qkl3sb4ijx4k17m0c42j2p5bc4jymypwhmplm942rbrzm6mg50q"))
|
"1qkl3sb4ijx4k17m0c42j2p5bc4jymypwhmplm942rbrzm6mg50q"))
|
||||||
|
(patches (search-patches "quassel-qt-5.11.patch"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; We don't want to install the bundled scripts.
|
;; We don't want to install the bundled scripts.
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
(delete-file-recursively "data/scripts")
|
(delete-file-recursively "data/scripts")
|
||||||
(substitute* "data/CMakeLists.txt"
|
(substitute* "data/CMakeLists.txt"
|
||||||
(("NOT WIN32") "WIN32"))))))
|
(("NOT WIN32") "WIN32"))
|
||||||
|
#t))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; The three binaries are not mutually exlusive, and are all built
|
;; The three binaries are not mutually exlusive, and are all built
|
||||||
|
@ -91,7 +93,7 @@ (define-public quassel
|
||||||
"-DUSE_QT5=ON" ; default is qt4
|
"-DUSE_QT5=ON" ; default is qt4
|
||||||
"-DWITH_KDE=OFF" ; no to kde integration ...
|
"-DWITH_KDE=OFF" ; no to kde integration ...
|
||||||
"-DWITH_OXYGEN=ON" ; therefore we install bundled icons
|
"-DWITH_OXYGEN=ON" ; therefore we install bundled icons
|
||||||
"-DWITH_WEBKIT=OFF") ; qtwebkit isn't packaged
|
"-DWITH_WEBKIT=OFF") ; we don't depend on qtwebkit
|
||||||
#:tests? #f)) ; no test target
|
#:tests? #f)) ; no test target
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||||
|
|
72
gnu/packages/patches/quassel-qt-5.11.patch
Normal file
72
gnu/packages/patches/quassel-qt-5.11.patch
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
https://github.com/quassel/quassel/commit/92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62.patch
|
||||||
|
This can be removed after quassel 0.12.5.
|
||||||
|
|
||||||
|
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 652c0042d..d77ba1cfb 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)
|
Loading…
Reference in a new issue