refactor: Port to Qt 6

This commit is contained in:
Lars Toenning
2024-03-17 11:31:08 +01:00
parent 54c28863c1
commit 5266cc1909
112 changed files with 358 additions and 609 deletions

View File

@@ -37,8 +37,8 @@ endif()
# Workaround to get Qt paths for deployment (until switching to Qt6 deployment tool)
if(UNIX AND NOT APPLE)
execute_process(COMMAND qmake -query QT_INSTALL_LIBS OUTPUT_VARIABLE QT_INSTALL_LIBS)
execute_process(COMMAND qmake -query QT_INSTALL_PLUGINS OUTPUT_VARIABLE QT_INSTALL_PLUGINS)
execute_process(COMMAND qmake6 -query QT_INSTALL_LIBS OUTPUT_VARIABLE QT_INSTALL_LIBS)
execute_process(COMMAND qmake6 -query QT_INSTALL_PLUGINS OUTPUT_VARIABLE QT_INSTALL_PLUGINS)
# Avoid line breaks
string(STRIP ${QT_INSTALL_LIBS} QT_INSTALL_LIBS)
@@ -51,19 +51,19 @@ if(UNIX AND NOT APPLE)
endfunction()
installLib(${QT_INSTALL_LIBS} libQt5Core.so.5)
installLib(${QT_INSTALL_LIBS} libQt5DBus.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Gui.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Multimedia.so.5)
installLib(${QT_INSTALL_LIBS} libQt5MultimediaWidgets.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Network.so.5)
installLib(${QT_INSTALL_LIBS} libQt5OpenGL.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Qml.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Svg.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Widgets.so.5)
installLib(${QT_INSTALL_LIBS} libQt5XcbQpa.so.5)
installLib(${QT_INSTALL_LIBS} libQt5Xml.so.5)
installLib(${QT_INSTALL_LIBS} libQt5MultimediaGstTools.so.5)
installLib(${QT_INSTALL_LIBS} libQt6Core.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Core5Compat.so.6)
installLib(${QT_INSTALL_LIBS} libQt6DBus.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Gui.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Multimedia.so.6)
installLib(${QT_INSTALL_LIBS} libQt6MultimediaWidgets.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Network.so.6)
installLib(${QT_INSTALL_LIBS} libQt6OpenGL.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Qml.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Svg.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Widgets.so.6)
installLib(${QT_INSTALL_LIBS} libQt6XcbQpa.so.6)
installLib(${QT_INSTALL_LIBS} libQt6Xml.so.6)
macro(resolve_symlink lib_name)
# Adapted from CMake file() documentation
@@ -76,12 +76,12 @@ if(UNIX AND NOT APPLE)
endmacro()
if(EXISTS ${QT_INSTALL_LIBS}/libicui18n.so.56 AND EXISTS ${QT_INSTALL_LIBS}/libicuuc.so.56 AND EXISTS ${QT_INSTALL_LIBS}/libicudata.so.56)
if(EXISTS ${QT_INSTALL_LIBS}/libicui18n.so.73 AND EXISTS ${QT_INSTALL_LIBS}/libicuuc.so.73 AND EXISTS ${QT_INSTALL_LIBS}/libicudata.so.73)
# Use specific requested version that is found in the Qt library dir (at least in the Github Actions environment)
message(STATUS "Install specific libicu version from Qt dir")
installLib(${QT_INSTALL_LIBS} libicui18n.so.56)
installLib(${QT_INSTALL_LIBS} libicuuc.so.56)
installLib(${QT_INSTALL_LIBS} libicudata.so.56)
installLib(${QT_INSTALL_LIBS} libicui18n.so.73)
installLib(${QT_INSTALL_LIBS} libicuuc.so.73)
installLib(${QT_INSTALL_LIBS} libicudata.so.73)
else()
message(STATUS "Using systems libicu library")
# This might not work for creating the installer as the version can differ
@@ -92,21 +92,12 @@ if(UNIX AND NOT APPLE)
install(FILES ${ICU_I18N_ABS} ${ICU_UC_ABS} ${ICU_DATA_ABS} TYPE LIB)
endif()
file(GLOB audioPlugins ${QT_INSTALL_PLUGINS}/audio/*.so)
install(FILES ${audioPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/audio)
file(GLOB bearerPlugins ${QT_INSTALL_PLUGINS}/bearer/*.so)
install(FILES ${bearerPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/bearer)
file(GLOB iconEnginePlugins ${QT_INSTALL_PLUGINS}/iconengines/*.so)
install(FILES ${iconEnginePlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/iconengines)
file(GLOB imageformatsPlugins ${QT_INSTALL_PLUGINS}/imageformats/*.so)
install(FILES ${imageformatsPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/imageformats)
file(GLOB mediaservicePlugins ${QT_INSTALL_PLUGINS}/mediaservice/*.so)
install(FILES ${mediaservicePlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/mediaservice)
install(FILES ${QT_INSTALL_PLUGINS}/platforms/libqxcb.so DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/platforms)
file(GLOB platforminputcontextsPlugins ${QT_INSTALL_PLUGINS}/platforminputcontexts/*.so)
@@ -115,6 +106,9 @@ if(UNIX AND NOT APPLE)
file(GLOB platformthemesPlugins ${QT_INSTALL_PLUGINS}/platformthemes/*.so)
install(FILES ${platformthemesPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/platformthemes)
file(GLOB tlsPlugins ${QT_INSTALL_PLUGINS}/tls/*.so)
install(FILES ${tlsPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/tls)
file(GLOB xcbglintegrationsPlugins ${QT_INSTALL_PLUGINS}/xcbglintegrations/*.so)
install(FILES ${xcbglintegrationsPlugins} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/xcbglintegrations)
@@ -124,15 +118,14 @@ elseif(APPLE)
install(SCRIPT ${PROJECT_SOURCE_DIR}/cmake/qt_deploy_mac.cmake)
# Install plugins
execute_process(COMMAND qmake -query QT_INSTALL_PLUGINS OUTPUT_VARIABLE QT_INSTALL_PLUGINS)
execute_process(COMMAND qmake6 -query QT_INSTALL_PLUGINS OUTPUT_VARIABLE QT_INSTALL_PLUGINS)
string(STRIP ${QT_INSTALL_PLUGINS} QT_INSTALL_PLUGINS)
install(DIRECTORY ${QT_INSTALL_PLUGINS}/audio DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/bearer DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/iconengines DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/imageformats DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/mediaservice DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(FILES ${QT_INSTALL_PLUGINS}/platforms/libqcocoa.dylib DESTINATION bin/platforms)
install(DIRECTORY ${QT_INSTALL_PLUGINS}/platforminputcontexts DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/platformthemes DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
install(DIRECTORY ${QT_INSTALL_PLUGINS}/tls DESTINATION bin FILES_MATCHING PATTERN "*.dylib")
endif()

View File

@@ -6,6 +6,7 @@
# For example "core" uses the same PCH as "misc" but with additional headers included.
set(SWIFT_MISC_PCH
<QAudioDevice>
[["blackmisc/collection.h"]]
[["blackmisc/containerbase.h"]]
[["blackmisc/dbus.h"]]

View File

@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: Copyright (C) swift Project Community / Contributors
# SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
execute_process(COMMAND qmake -query QT_INSTALL_LIBS OUTPUT_VARIABLE QT_INSTALL_LIBS)
execute_process(COMMAND qmake6 -query QT_INSTALL_LIBS OUTPUT_VARIABLE QT_INSTALL_LIBS)
string(STRIP ${QT_INSTALL_LIBS} QT_INSTALL_LIBS)
@@ -12,6 +12,7 @@ endfunction()
copy_framework(QtConcurrent)
copy_framework(QtCore)
copy_framework(QtCore5Compat)
copy_framework(QtDBus)
copy_framework(QtGui)
copy_framework(QtMultimedia)

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
message(STATUS "Running windeployqt")
execute_process(COMMAND qmake -query QT_INSTALL_BINS OUTPUT_VARIABLE QT_INSTALL_BINS)
execute_process(COMMAND qmake6 -query QT_INSTALL_BINS OUTPUT_VARIABLE QT_INSTALL_BINS)
string(STRIP ${QT_INSTALL_BINS} QT_INSTALL_BINS)
@@ -19,11 +19,8 @@ execute_process(COMMAND ${QT_INSTALL_BINS}/windeployqt.exe
--no-translations
--no-compiler-runtime
--no-system-d3d-compiler
--no-system-dxc-compiler
--no-opengl-sw
--no-webkit2
--no-virtualkeyboard
-opengl # not detected automatically
--skip-plugin-types generic,multimedia,networkinformation,qmltooling
WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)
# Remove unused files
file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/bin/playlistformats ${CMAKE_INSTALL_PREFIX}/bin/styles)

View File

@@ -1,21 +0,0 @@
# SPDX-FileCopyrightText: Copyright (C) swift Project Community / Contributors
# SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
if(WIN32)
add_library(externals_ssl SHARED IMPORTED GLOBAL)
if(SWIFT_WIN32)
set_target_properties(externals_ssl PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/32/lib/libssl-1_1.dll)
elseif(SWIFT_WIN64)
set_target_properties(externals_ssl PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/64/lib/libssl-1_1-x64.dll)
endif()
install(IMPORTED_RUNTIME_ARTIFACTS externals_ssl)
add_library(externals_crypto SHARED IMPORTED GLOBAL)
if(SWIFT_WIN32)
set_target_properties(externals_crypto PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/32/lib/libcrypto-1_1.dll)
elseif(SWIFT_WIN64)
set_target_properties(externals_crypto PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/third_party/externals/win32-msvc/64/lib/libcrypto-1_1-x64.dll)
endif()
install(IMPORTED_RUNTIME_ARTIFACTS externals_crypto)
endif()