guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: quassel: Fix building with Qt 5.11.


From: Efraim Flashner
Subject: 01/01: gnu: quassel: Fix building with Qt 5.11.
Date: Sun, 3 Jun 2018 08:50:54 -0400 (EDT)

efraim pushed a commit to branch master
in repository guix.

commit 68ddfb2e8d43de248a64a9baf34ff7002053ede6
Author: Efraim Flashner <address@hidden>
Date:   Sun Jun 3 13:17:25 2018 +0300

    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.
---
 gnu/local.mk                               |  1 +
 gnu/packages/irc.scm                       |  6 ++-
 gnu/packages/patches/quassel-qt-5.11.patch | 72 ++++++++++++++++++++++++++++++
 3 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index db04ee0..d291186 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1067,6 +1067,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/qtbase-use-TZDIR.patch                  \
   %D%/packages/patches/qtscript-disable-tests.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/rapicorn-isnan.patch                    \
   %D%/packages/patches/raptor2-heap-overflow.patch             \
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 219e803..993102f 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -74,13 +74,15 @@
         (sha256
          (base32
           "1qkl3sb4ijx4k17m0c42j2p5bc4jymypwhmplm942rbrzm6mg50q"))
+        (patches (search-patches "quassel-qt-5.11.patch"))
         (modules '((guix build utils)))
         ;; We don't want to install the bundled scripts.
         (snippet
          '(begin
             (delete-file-recursively "data/scripts")
             (substitute* "data/CMakeLists.txt"
-              (("NOT WIN32") "WIN32"))))))
+              (("NOT WIN32") "WIN32"))
+            #t))))
     (build-system cmake-build-system)
     (arguments
       ;; The three binaries are not mutually exlusive, and are all built
@@ -91,7 +93,7 @@
                            "-DUSE_QT5=ON" ; default is qt4
                            "-DWITH_KDE=OFF" ; no to kde integration ...
                            "-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
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/patches/quassel-qt-5.11.patch 
b/gnu/packages/patches/quassel-qt-5.11.patch
new file mode 100644
index 0000000..545f8b7
--- /dev/null
+++ b/gnu/packages/patches/quassel-qt-5.11.patch
@@ -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 <address@hidden>
+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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]