Skip to content

Commit

Permalink
Enable WITH_QUICK on Qt6 builds and apply needed fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
nirvn committed Nov 8, 2022
1 parent bd895d5 commit 1d7921b
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 18 deletions.
2 changes: 2 additions & 0 deletions .docker/qgis3-qt6-build-deps.dockerfile
Expand Up @@ -40,6 +40,8 @@ RUN dnf -y --refresh install \
qt6-qtdeclarative-devel \
qt6-qttools-static \
qt6-qtsvg-devel \
qt6-qtpositioning-devel \
qt6-qtdeclarative-devel \
qt6-qt5compat-devel \
spatialindex-devel \
sqlite-devel \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-tests.yml
Expand Up @@ -58,7 +58,7 @@ jobs:
with-qt6: ON
with-qt5: OFF
with-3d: ON
with-quick: OFF
with-quick: ON
with-clazy: OFF
with-grass7: OFF
with-grass8: OFF
Expand Down
5 changes: 1 addition & 4 deletions CMakeLists.txt
Expand Up @@ -461,12 +461,9 @@ if(WITH_CORE)
set (HAVE_QT5SERIALPORT TRUE)
endif()

find_package(${QT_VERSION_BASE} COMPONENTS Core Gui Widgets Network Xml Svg Concurrent Test Sql REQUIRED)
find_package(${QT_VERSION_BASE} COMPONENTS Core Gui Widgets Network Xml Svg Concurrent Test Sql Positioning REQUIRED)
if (BUILD_WITH_QT6)
find_package(${QT_VERSION_BASE} COMPONENTS Core5Compat REQUIRED)
else()
# TODO only available starting from Qt 6.2
find_package(${QT_VERSION_BASE} COMPONENTS Positioning)
endif()
if (NOT IOS)
find_package(${QT_VERSION_BASE} COMPONENTS PrintSupport REQUIRED)
Expand Down
18 changes: 8 additions & 10 deletions src/quickgui/CMakeLists.txt
Expand Up @@ -55,18 +55,16 @@ add_library(qgis_quick ${LIBRARY_TYPE}
# require c++17
target_compile_features(qgis_quick PRIVATE cxx_std_17)

if (BUILD_WITH_QT6)
target_link_libraries(qgis_quick Qt6::Quick Qt6::Qml Qt6::Xml Qt6::Concurrent Qt6::Positioning qgis_core)
else()
target_link_libraries(qgis_quick Qt5::Quick Qt5::Qml Qt5::Xml Qt5::Concurrent Qt5::Positioning qgis_core)
endif()
target_link_libraries(qgis_quick
${QT_VERSION_BASE}::Quick
${QT_VERSION_BASE}::Qml
${QT_VERSION_BASE}::Xml
${QT_VERSION_BASE}::Concurrent
${QT_VERSION_BASE}::Positioning
qgis_core)

if(CMAKE_SYSTEM_NAME STREQUAL "Android")
if (BUILD_WITH_QT6)
target_link_libraries(qgis_quick Qt6::AndroidExtras)
else()
target_link_libraries(qgis_quick Qt5::AndroidExtras)
endif()
target_link_libraries(qgis_quick ${QT_VERSION_BASE}::AndroidExtras)
endif()
target_compile_definitions(qgis_quick PRIVATE "-DQT_NO_FOREACH")

Expand Down
15 changes: 13 additions & 2 deletions tests/src/quickgui/app/CMakeLists.txt
Expand Up @@ -33,7 +33,12 @@ include_directories(SYSTEM
${QTKEYCHAIN_INCLUDE_DIR}
)

QT5_WRAP_CPP(QGIS_QUICK_APP_MOC_SRCS ${QGIS_QUICK_APP_MOC_HDRS})
if (BUILD_WITH_QT6)
QT6_WRAP_CPP(QGIS_QUICK_APP_MOC_SRCS ${QGIS_QUICK_APP_MOC_HDRS})
else()
QT5_WRAP_CPP(QGIS_QUICK_APP_MOC_SRCS ${QGIS_QUICK_APP_MOC_HDRS})
endif()

set(QGIS_QUICK_APP_RCCS qml.qrc)
set(QGIS_QUICK_APP_NAME qgis_quickapp)
add_executable(${QGIS_QUICK_APP_NAME}
Expand All @@ -45,7 +50,13 @@ add_executable(${QGIS_QUICK_APP_NAME}

target_compile_features(${QGIS_QUICK_APP_NAME} PRIVATE cxx_std_17)

target_link_libraries(${QGIS_QUICK_APP_NAME} Qt5::Gui Qt5::Qml Qt5::Quick Qt5::Xml qgis_core qgis_quick)
target_link_libraries(${QGIS_QUICK_APP_NAME}
${QT_VERSION_BASE}::Gui
${QT_VERSION_BASE}::Qml
${QT_VERSION_BASE}::Quick
${QT_VERSION_BASE}::Xml
qgis_core
qgis_quick)
set_target_properties(${QGIS_QUICK_APP_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
target_compile_definitions(${QGIS_QUICK_APP_NAME} PRIVATE "-DQT_NO_FOREACH")
add_dependencies(${QGIS_QUICK_APP_NAME}
Expand Down
1 change: 0 additions & 1 deletion tests/src/quickgui/testqgsquickmapsettings.cpp
Expand Up @@ -14,7 +14,6 @@
***************************************************************************/
#include <QObject>
#include <QApplication>
#include <QDesktopWidget>

#include "qgsapplication.h"
#include "qgstest.h"
Expand Down

0 comments on commit 1d7921b

Please sign in to comment.