Skip to content

Commit 88e4410

Browse files
committed
Require Qt >= 5.5
1 parent 361dd2e commit 88e4410

33 files changed

+58
-389
lines changed

CMakeLists.txt

+29-64
Original file line numberDiff line numberDiff line change
@@ -246,47 +246,28 @@ ELSE (WITH_QTWEBKIT)
246246
MESSAGE(STATUS "Qt WebKit support DISABLED.")
247247
ENDIF(WITH_QTWEBKIT)
248248
#############################################################
249-
# search for Qt4
250-
SET(QT_MIN_VERSION 4.8.0)
251-
SET (ENABLE_QT5 FALSE CACHE BOOL "If enabled will try to find Qt5 before looking for Qt4")
252-
IF (ENABLE_QT5)
253-
FIND_PACKAGE(Qt5Core QUIET)
254-
FIND_PACKAGE(Qt5Gui REQUIRED)
255-
FIND_PACKAGE(Qt5Widgets REQUIRED)
256-
FIND_PACKAGE(Qt5Network REQUIRED)
257-
FIND_PACKAGE(Qt5Xml REQUIRED)
258-
FIND_PACKAGE(Qt5Svg REQUIRED)
259-
FIND_PACKAGE(Qt5Concurrent REQUIRED)
260-
FIND_PACKAGE(Qt5PrintSupport REQUIRED)
261-
FIND_PACKAGE(Qt5Positioning)
262-
IF (WITH_QTWEBKIT)
263-
FIND_PACKAGE(Qt5WebKit REQUIRED)
264-
FIND_PACKAGE(Qt5WebKitWidgets REQUIRED)
265-
ENDIF(WITH_QTWEBKIT)
266-
FIND_PACKAGE(Qt5Test REQUIRED)
267-
FIND_PACKAGE(Qt5UiTools REQUIRED)
268-
FIND_PACKAGE(Qt5Script REQUIRED)
269-
FIND_PACKAGE(Qt5Sql REQUIRED)
270-
SET(QT5_BUILD TRUE)
271-
INCLUDE("cmake/modules/ECMQt4To5Porting.cmake")
272-
MESSAGE(STATUS "Found Qt version: ${Qt5Core_VERSION_STRING}")
273-
ELSE()
274-
FIND_PACKAGE(Qt4 ${QT_MIN_VERSION} REQUIRED)
275-
SET(QT_USE_QTXML 1)
276-
SET(QT_USE_QTNETWORK 1)
277-
SET(QT_USE_QTSVG 1)
278-
SET(QT_USE_QTSQL 1)
279-
IF (WITH_QTWEBKIT)
280-
SET(QT_USE_QTWEBKIT 1)
281-
ENDIF(WITH_QTWEBKIT)
282-
IF (NOT QT_QTXML_FOUND OR NOT QT_QTNETWORK_FOUND OR NOT QT_QTSVG_FOUND OR NOT QT_QTSQL_FOUND OR (WITH_QTWEBKIT AND NOT QT_QTWEBKIT_FOUND) OR (WITH_CUSTOM_WIDGETS AND NOT QT_QTDESIGNER_FOUND))
283-
MESSAGE(SEND_ERROR "Some Qt4 modules haven't been found!")
284-
ENDIF (NOT QT_QTXML_FOUND OR NOT QT_QTNETWORK_FOUND OR NOT QT_QTSVG_FOUND OR NOT QT_QTSQL_FOUND OR (WITH_QTWEBKIT AND NOT QT_QTWEBKIT_FOUND) OR (WITH_CUSTOM_WIDGETS AND NOT QT_QTDESIGNER_FOUND))
285-
286-
INCLUDE( ${QT_USE_FILE} )
287-
288-
MESSAGE(STATUS "Found Qt version: ${QTVERSION}")
289-
ENDIF()
249+
# search for Qt5
250+
SET(QT_MIN_VERSION 5.5.0)
251+
FIND_PACKAGE(Qt5Core QUIET)
252+
FIND_PACKAGE(Qt5Gui REQUIRED)
253+
FIND_PACKAGE(Qt5Widgets REQUIRED)
254+
FIND_PACKAGE(Qt5Network REQUIRED)
255+
FIND_PACKAGE(Qt5Xml REQUIRED)
256+
FIND_PACKAGE(Qt5Svg REQUIRED)
257+
FIND_PACKAGE(Qt5Concurrent REQUIRED)
258+
FIND_PACKAGE(Qt5PrintSupport REQUIRED)
259+
FIND_PACKAGE(Qt5Positioning)
260+
IF (WITH_QTWEBKIT)
261+
FIND_PACKAGE(Qt5WebKit REQUIRED)
262+
FIND_PACKAGE(Qt5WebKitWidgets REQUIRED)
263+
ENDIF(WITH_QTWEBKIT)
264+
FIND_PACKAGE(Qt5Test REQUIRED)
265+
FIND_PACKAGE(Qt5UiTools REQUIRED)
266+
FIND_PACKAGE(Qt5Script REQUIRED)
267+
FIND_PACKAGE(Qt5Sql REQUIRED)
268+
SET(QT5_BUILD TRUE)
269+
INCLUDE("cmake/modules/ECMQt4To5Porting.cmake")
270+
MESSAGE(STATUS "Found Qt version: ${Qt5Core_VERSION_STRING}")
290271

291272
IF (WITH_QTMOBILITY)
292273
FIND_PACKAGE(QtMobility 1.1.0)
@@ -690,7 +671,7 @@ IF (UNIX AND NOT APPLE)
690671
SET (QGIS_MANUAL_DIR ${CMAKE_INSTALL_PREFIX}/${QGIS_MANUAL_SUBDIR})
691672
ENDIF (UNIX AND NOT APPLE)
692673

693-
SET (DISABLE_DEPRECATED ${ENABLE_QT5} CACHE BOOL "If set to true, it will disable deprecated functionality to prepare for the next generation of QGIS")
674+
SET (DISABLE_DEPRECATED FALSE CACHE BOOL "If set to true, it will disable deprecated functionality to prepare for the next generation of QGIS")
694675
IF (DISABLE_DEPRECATED)
695676
ADD_DEFINITIONS(-DQGIS_DISABLE_DEPRECATED)
696677
ENDIF (DISABLE_DEPRECATED)
@@ -699,12 +680,7 @@ ENDIF (DISABLE_DEPRECATED)
699680
#############################################################
700681
# Python build dependency
701682

702-
SET (ENABLE_PYTHON3 ${ENABLE_QT5} CACHE BOOL "If enabled will try to find Python 3 before looking for Python 2")
703-
IF(ENABLE_PYTHON3)
704-
SET(PYTHON_VER 3 CACHE STRING "Python version")
705-
ELSE(ENABLE_PYTHON3)
706-
SET(PYTHON_VER 2.7 CACHE STRING "Python version")
707-
ENDIF(ENABLE_PYTHON3)
683+
SET(PYTHON_VER 3 CACHE STRING "Python version")
708684

709685
FIND_PACKAGE(PythonInterp ${PYTHON_VER} REQUIRED)
710686

@@ -715,17 +691,10 @@ IF (WITH_BINDINGS)
715691

716692
FIND_PACKAGE(PythonLibrary REQUIRED)
717693

718-
# python support: check for interpreter, sip, pyqt4
719-
IF(ENABLE_QT5)
720-
FIND_PACKAGE(PyQt5 REQUIRED)
721-
SET(PYQT_SIP_FLAGS ${PYQT5_SIP_FLAGS})
722-
SET(PYQT_SIP_DIR ${PYQT5_SIP_DIR})
723-
ELSE(ENABLE_QT5)
724-
FIND_PACKAGE(PyQt4 REQUIRED)
725-
# setup SIP variables
726-
SET(PYQT_SIP_FLAGS ${PYQT4_SIP_FLAGS})
727-
SET(PYQT_SIP_DIR ${PYQT4_SIP_DIR})
728-
ENDIF(ENABLE_QT5)
694+
# python support: check for interpreter, sip, pyqt5
695+
FIND_PACKAGE(PyQt5 REQUIRED)
696+
SET(PYQT_SIP_FLAGS ${PYQT5_SIP_FLAGS})
697+
SET(PYQT_SIP_DIR ${PYQT5_SIP_DIR})
729698
SEPARATE_ARGUMENTS(PYQT_SIP_FLAGS) # convert space separated values to a list
730699

731700
FIND_PACKAGE(SIP REQUIRED)
@@ -742,11 +711,7 @@ IF (WITH_BINDINGS)
742711
ENDIF (NOT BINDINGS_GLOBAL_INSTALL)
743712

744713
IF (WITH_CUSTOM_WIDGETS)
745-
IF(ENABLE_QT5)
746-
SET(PYUIC_WIDGET_PLUGIN_DIRECTORY ${PYQT5_MOD_DIR}/uic/widget-plugins/)
747-
ELSE(ENABLE_QT5)
748-
SET(PYUIC_WIDGET_PLUGIN_DIRECTORY ${PYQT4_MOD_DIR}/uic/widget-plugins/)
749-
ENDIF(ENABLE_QT5)
714+
SET(PYUIC_WIDGET_PLUGIN_DIRECTORY ${PYQT5_MOD_DIR}/uic/widget-plugins/)
750715
ENDIF (WITH_CUSTOM_WIDGETS)
751716

752717
ENDIF (WITH_BINDINGS)

ci/travis/linux/qt5/install.sh

-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ cmake \
5151
-DWITH_ASTYLE=ON \
5252
-DWITH_SERVER=ON \
5353
-DWITH_INTERNAL_YAML=OFF \
54-
-DENABLE_QT5=ON \
55-
-DENABLE_PYTHON3=ON \
5654
-DDISABLE_DEPRECATED=ON \
5755
-DPORT_PLUGINS=ON \
5856
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \

cmake/FindPythonLibrary.cmake

+1-5
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,7 @@ else(EXISTS "${PYTHON_INCLUDE_PATH}" AND EXISTS "${PYTHON_LIBRARY}" AND EXISTS "
4444
endif("${PYTHON_CUSTOM_FRAMEWORK}" MATCHES "Python\\.framework")
4545
endif(APPLE AND PYTHON_CUSTOM_FRAMEWORK)
4646

47-
IF (ENABLE_PYTHON3)
48-
FIND_PACKAGE(PythonInterp 3)
49-
ELSE (ENABLE_PYTHON3)
50-
FIND_PACKAGE(PythonInterp 2.7)
51-
ENDIF (ENABLE_PYTHON3)
47+
FIND_PACKAGE(PythonInterp 3)
5248

5349
if(PYTHONINTERP_FOUND)
5450
FIND_FILE(_find_lib_python_py FindLibPython.py PATHS ${CMAKE_MODULE_PATH})

cmake/FindQCA.cmake

+1-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ if(QCA_INCLUDE_DIR AND QCA_LIBRARY)
2020

2121
else(QCA_INCLUDE_DIR AND QCA_LIBRARY)
2222

23-
if(ENABLE_QT5)
24-
set(QCA_LIBRARY_NAMES qca-qt5 qca2-qt5)
25-
else(ENABLE_QT5)
26-
set(QCA_LIBRARY_NAMES qca qca2)
27-
endif(ENABLE_QT5)
23+
set(QCA_LIBRARY_NAMES qca-qt5 qca2-qt5)
2824

2925
find_library(QCA_LIBRARY
3026
NAMES ${QCA_LIBRARY_NAMES}

cmake/FindQScintilla.cmake

+1-5
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,7 @@ ELSE(EXISTS QSCINTILLA_VERSION_STR)
3333
/usr/include
3434
)
3535

36-
if(ENABLE_QT5)
37-
set(QSCINTILLA_LIBRARY_NAMES qscintilla2-qt5 libqt5scintilla2 libqscintilla2-qt5 qt5scintilla2 libqscintilla2-qt5.dylib)
38-
else(ENABLE_QT5)
39-
set(QSCINTILLA_LIBRARY_NAMES qscintilla2 libqscintilla2 libqscintilla2.dylib)
40-
endif(ENABLE_QT5)
36+
set(QSCINTILLA_LIBRARY_NAMES qscintilla2-qt5 libqt5scintilla2 libqscintilla2-qt5 qt5scintilla2 libqscintilla2-qt5.dylib)
4137

4238
find_library(QSCINTILLA_LIBRARY
4339
NAMES ${QSCINTILLA_LIBRARY_NAMES}

cmake/FindQsci.cmake

+5-16
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@ ELSE(EXISTS QSCI_MOD_VERSION_STR)
2323

2424
FIND_FILE(_find_qsci_py FindQsci.py PATHS ${CMAKE_MODULE_PATH})
2525

26-
IF(ENABLE_QT5)
27-
SET(QSCI_VER 5)
28-
ELSE(ENABLE_QT5)
29-
SET(QSCI_VER 4)
30-
ENDIF(ENABLE_QT5)
26+
SET(QSCI_VER 5)
3127

3228
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_qsci_py} ${QSCI_VER} OUTPUT_VARIABLE qsci_ver)
3329

@@ -37,17 +33,10 @@ ELSE(EXISTS QSCI_MOD_VERSION_STR)
3733
ENDIF(qsci_ver)
3834

3935
IF(QSCI_FOUND)
40-
IF(ENABLE_QT5)
41-
FIND_PATH(QSCI_SIP_DIR
42-
NAMES Qsci/qscimod5.sip
43-
PATHS ${PYQT5_SIP_DIR}
44-
)
45-
ELSE(ENABLE_QT5)
46-
FIND_PATH(QSCI_SIP_DIR
47-
NAMES Qsci/qscimod4.sip
48-
PATHS ${PYQT4_SIP_DIR}
49-
)
50-
ENDIF(ENABLE_QT5)
36+
FIND_PATH(QSCI_SIP_DIR
37+
NAMES Qsci/qscimod5.sip
38+
PATHS ${PYQT5_SIP_DIR}
39+
)
5140

5241
IF(NOT QSCI_FIND_QUIETLY)
5342
MESSAGE(STATUS "Found QScintilla2 PyQt module: ${QSCI_MOD_VERSION_STR}")

cmake/FindQwt.cmake

+1-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ FIND_PATH(QWT_INCLUDE_DIR NAMES qwt.h PATHS
2020
PATH_SUFFIXES qwt-qt4 qwt qwt5 qwt6
2121
)
2222

23-
if(ENABLE_QT5)
24-
set(QWT_LIBRARY_NAMES qwt-qt5 qwt6-qt5)
25-
else(ENABLE_QT5)
26-
set(QWT_LIBRARY_NAMES qwt qwt6 qwt5 qwt-qt4 qwt6-qt4 qwt5-qt4)
27-
endif(ENABLE_QT5)
23+
set(QWT_LIBRARY_NAMES qwt-qt5 qwt6-qt5)
2824

2925
find_library(QWT_LIBRARY
3026
NAMES ${QWT_LIBRARY_NAMES}

cmake/PyQtMacros.cmake

+3-9
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,9 @@
44
# Redistribution and use is allowed according to the terms of the BSD license.
55
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
66

7-
IF(ENABLE_QT5)
8-
SET(PYUIC_PROG_NAME pyuic5)
9-
SET(PYUIC_PROG_NAMES pyuic5)
10-
SET(PYRCC_PROG_NAME pyrcc5)
11-
ELSE(ENABLE_QT5)
12-
SET(PYUIC_PROG_NAME pyuic4)
13-
SET(PYUIC_PROG_NAMES python2-pyuic4 pyuic4)
14-
SET(PYRCC_PROG_NAME pyrcc4)
15-
ENDIF(ENABLE_QT5)
7+
SET(PYUIC_PROG_NAME pyuic5)
8+
SET(PYUIC_PROG_NAMES pyuic5)
9+
SET(PYRCC_PROG_NAME pyrcc5)
1610

1711
IF(NOT PYUIC_PROGRAM)
1812
IF (MSVC)

python/CMakeLists.txt

-7
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ INCLUDE_DIRECTORIES(
121121
${CMAKE_BINARY_DIR} # qgsconfig.h, qgsversion.h
122122
)
123123

124-
IF(NOT ENABLE_QT5)
125-
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QT5_SUPPORT)
126-
ENDIF(NOT ENABLE_QT5)
127-
128124
IF(NOT ANDROID)
129125
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} ANDROID)
130126
ENDIF(NOT ANDROID)
@@ -146,9 +142,6 @@ IF(PYQT4_VERSION_NUM LESS 263680) # 0x040600
146142
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} PROXY_FACTORY)
147143
ENDIF(PYQT4_VERSION_NUM LESS 263680)
148144

149-
IF(NOT PYQT4_VERSION_NUM LESS 263941 AND NOT ENABLE_QT5) # 0x040705
150-
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETINT_CONVERSION)
151-
ENDIF(NOT PYQT4_VERSION_NUM LESS 263941 AND NOT ENABLE_QT5)
152145
#
153146
IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
154147
SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)

python/PyQt/CMakeLists.txt

+1-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@ SET(PYQT_COMPAT_FILES
2323
ADD_CUSTOM_TARGET(pyqtcompat ALL)
2424
ADD_DEPENDENCIES(pyqtcompat pyutils)
2525

26-
IF(ENABLE_QT5)
27-
SET(PYQT_PREFIX PyQt5)
28-
ELSE(ENABLE_QT5)
29-
SET(PYQT_PREFIX PyQt4)
30-
ENDIF(ENABLE_QT5)
26+
SET(PYQT_PREFIX PyQt5)
3127

3228
FOREACH(pyfile ${PYQT_COMPAT_FILES})
3329
GET_FILENAME_COMPONENT(_dir ${pyfile} PATH)

python/ext-libs/CMakeLists.txt

+1-32
Original file line numberDiff line numberDiff line change
@@ -35,43 +35,12 @@ ENDMACRO(EXT_PYLIB lib)
3535

3636
# Our yaml package is not compatible with python 3
3737
# Fallback to system package by default
38-
IF(PYTHON_VER VERSION_LESS 3)
39-
EXT_PYLIB(yaml TRUE)
40-
ELSEIF(PYTHON_VER VERSION_LESS 3)
41-
EXT_PYLIB(yaml FALSE)
42-
ENDIF(PYTHON_VER VERSION_LESS 3)
38+
EXT_PYLIB(yaml FALSE)
4339

4440
FOREACH(pkg httplib2 jinja2 markupsafe owslib pygments dateutil pytz nose2 requests)
4541
EXT_PYLIB(${pkg} TRUE)
4642
ENDFOREACH(pkg)
4743

48-
IF(NOT ENABLE_PYTHON3)
49-
SET (WITH_INTERNAL_FUTURE TRUE CACHE BOOL "Determines whether python future should be included")
50-
IF(WITH_INTERNAL_FUTURE)
51-
ADD_CUSTOM_TARGET(pyfuture)
52-
53-
FILE(GLOB items RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/future future/*)
54-
55-
FOREACH(item ${items})
56-
INSTALL(DIRECTORY future/${item} DESTINATION "${QGIS_PYTHON_DIR}")
57-
FILE(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/future future/*)
58-
ADD_CUSTOM_COMMAND(TARGET pyfuture
59-
POST_BUILD
60-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${item} "${PYTHON_OUTPUT_DIRECTORY}/"
61-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
62-
DEPENDS ${files}
63-
)
64-
PY_COMPILE(pyfuture "${PYTHON_OUTPUT_DIRECTORY}/${item}")
65-
66-
ADD_CUSTOM_COMMAND(TARGET clean-staged-plugins
67-
COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_OUTPUT_DIRECTORY}/${item}"
68-
)
69-
ENDFOREACH(item ${items})
70-
71-
ADD_DEPENDENCIES(staged-plugins pyfuture)
72-
ENDIF(WITH_INTERNAL_FUTURE)
73-
ENDIF(NOT ENABLE_PYTHON3)
74-
7544
SET (WITH_INTERNAL_SIX TRUE CACHE BOOL "Determines whether python six should be included")
7645
IF(WITH_INTERNAL_SIX)
7746
INSTALL(FILES six.py DESTINATION "${QGIS_PYTHON_DIR}")

python/plugins/CMakeLists.txt

+14-17
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,16 @@
88

99
FILE(WRITE ${CMAKE_BINARY_DIR}/stagecount 0)
1010

11-
IF(ENABLE_QT5)
12-
# The target port-plugins acts as a container for all port-plugin-XXX targets
13-
# Each port-plugin-XXX target will run scripts/2to3 on a plugin and migrate
14-
# Python 3 and Qt 5 code.
15-
SET (PORT_PLUGINS FALSE CACHE BOOL "Determines whether python plugins in staged or installed locations should be migrated to Python 3 and Qt 5")
16-
IF(PORT_PLUGINS)
17-
ADD_CUSTOM_TARGET(port-plugins ALL)
18-
ELSE(PORT_PLUGINS)
19-
ADD_CUSTOM_TARGET(port-plugins)
20-
ENDIF(PORT_PLUGINS)
21-
ENDIF(ENABLE_QT5)
11+
# The target port-plugins acts as a container for all port-plugin-XXX targets
12+
# Each port-plugin-XXX target will run scripts/2to3 on a plugin and migrate
13+
# Python 3 and Qt 5 code.
14+
SET (PORT_PLUGINS FALSE CACHE BOOL "Determines whether python plugins in staged or installed locations should be migrated to Python 3 and Qt 5")
15+
IF(PORT_PLUGINS)
16+
ADD_CUSTOM_TARGET(port-plugins ALL)
17+
ELSE(PORT_PLUGINS)
18+
ADD_CUSTOM_TARGET(port-plugins)
19+
ENDIF(PORT_PLUGINS)
20+
2221

2322
MACRO (PLUGIN_INSTALL plugin subdir )
2423
FILE(READ ${CMAKE_BINARY_DIR}/stagecount n)
@@ -47,12 +46,10 @@ MACRO (PLUGIN_INSTALL plugin subdir )
4746
ADD_CUSTOM_TARGET(staged-${plugin} DEPENDS zzz-${plugin}-stageinstall)
4847
FILE(WRITE ${_cmake} "")
4948

50-
IF(ENABLE_QT5)
51-
ADD_CUSTOM_TARGET(port-plugin-${plugin})
52-
PY_2TO3(port-plugin-${plugin} ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin})
53-
ADD_DEPENDENCIES(port-plugins port-plugin-${plugin})
54-
ADD_DEPENDENCIES(port-plugin-${plugin} staged-${plugin})
55-
ENDIF(ENABLE_QT5)
49+
ADD_CUSTOM_TARGET(port-plugin-${plugin})
50+
PY_2TO3(port-plugin-${plugin} ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin})
51+
ADD_DEPENDENCIES(port-plugins port-plugin-${plugin})
52+
ADD_DEPENDENCIES(port-plugin-${plugin} staged-${plugin})
5653
ENDIF(NOT TARGET zzz-${plugin}-stageinstall)
5754

5855
ADD_CUSTOM_TARGET(zzz-${plugin}-${n}-depend DEPENDS ${ARGN})

0 commit comments

Comments
 (0)