SHA256
1
0
forked from pool/quassel
Dominique Leuenberger 2018-06-25 09:41:55 +00:00 committed by Git OBS Bridge
commit ffb91d44ab
3 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,69 @@
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)

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Jun 22 17:44:58 UTC 2018 - wbauer@tmo.at
- Add Fix-build-with-Qt5.11.patch to fix build with Qt 5.11
-------------------------------------------------------------------
Fri May 11 10:50:50 UTC 2018 - mchandras@suse.de

View File

@ -35,6 +35,8 @@ Source4: %{name}.SuSEfirewall2
Source5: quassel-rpmlintrc
# PATCH-FIX-SUSE: Set the correct libraries and compiler flags in order to use qglobal.h in check_cxx_source_compiles function
Patch0: quassel-set-required-libs-and-flags.patch
# PATCH-FIX-UPSTREAM
Patch1: Fix-build-with-Qt5.11.patch
BuildRequires: cmake >= 2.8.10
BuildRequires: extra-cmake-modules
BuildRequires: fdupes
@ -149,6 +151,7 @@ This contains common parts shared by %{name} and %{name}-client.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%build
FAKE_BUILDDATE=$(LC_ALL=C date -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')