Allow building against KF6
This commit is contained in:
33
.kde-ci.yml
33
.kde-ci.yml
@@ -2,7 +2,7 @@
|
|||||||
# SPDX-License-Identifier: BSD-2-Clause
|
# SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
|
||||||
Dependencies:
|
Dependencies:
|
||||||
- 'on': ['@all']
|
- 'on': ['Linux/Qt5', 'Android/Qt5', 'FreeBSD/Qt5', 'Windows/Qt5']
|
||||||
'require':
|
'require':
|
||||||
'frameworks/extra-cmake-modules': '@stable'
|
'frameworks/extra-cmake-modules': '@stable'
|
||||||
'frameworks/kcoreaddons': '@stable'
|
'frameworks/kcoreaddons': '@stable'
|
||||||
@@ -19,15 +19,42 @@ Dependencies:
|
|||||||
'third-party/qtkeychain': '@latest'
|
'third-party/qtkeychain': '@latest'
|
||||||
'third-party/cmark': '@latest'
|
'third-party/cmark': '@latest'
|
||||||
'third-party/qcoro': '@latest'
|
'third-party/qcoro': '@latest'
|
||||||
- 'on': ['Windows', 'Linux', 'FreeBSD']
|
- 'on': ['Windows/Qt5', 'Linux/Qt5', 'FreeBSD/Qt5']
|
||||||
'require':
|
'require':
|
||||||
'frameworks/qqc2-desktop-style': '@stable'
|
'frameworks/qqc2-desktop-style': '@stable'
|
||||||
'frameworks/kio': '@stable'
|
'frameworks/kio': '@stable'
|
||||||
'frameworks/kwindowsystem': '@stable'
|
'frameworks/kwindowsystem': '@stable'
|
||||||
'frameworks/kconfigwidgets': '@stable'
|
'frameworks/kconfigwidgets': '@stable'
|
||||||
- 'on': ['Linux', 'FreeBSD']
|
- 'on': ['Linux/Qt5', 'FreeBSD/Qt5']
|
||||||
'require':
|
'require':
|
||||||
'frameworks/kdbusaddons': '@stable'
|
'frameworks/kdbusaddons': '@stable'
|
||||||
|
|
||||||
|
- 'on': ['Linux/Qt6', 'Android/Qt6', 'FreeBSD/Qt6', 'Windows/Qt6']
|
||||||
|
'require':
|
||||||
|
'frameworks/extra-cmake-modules': '@latest-kf6'
|
||||||
|
'frameworks/kcoreaddons': '@latest-kf6'
|
||||||
|
'frameworks/kirigami': '@latest-kf6'
|
||||||
|
'frameworks/ki18n': '@latest-kf6'
|
||||||
|
'frameworks/kconfig': '@latest-kf6'
|
||||||
|
'frameworks/syntax-highlighting': '@latest-kf6'
|
||||||
|
'frameworks/kitemmodels': '@latest-kf6'
|
||||||
|
'frameworks/knotifications': '@latest-kf6'
|
||||||
|
'libraries/kquickimageeditor': '@latest-kf6'
|
||||||
|
'frameworks/sonnet': '@latest-kf6'
|
||||||
|
'libraries/kirigami-addons': '@latest-kf6'
|
||||||
|
'third-party/libquotient': '@latest'
|
||||||
|
'third-party/qtkeychain': '@latest'
|
||||||
|
'third-party/cmark': '@latest'
|
||||||
|
'third-party/qcoro': '@latest'
|
||||||
|
- 'on': ['Windows/Qt6', 'Linux/Qt6', 'FreeBSD/Qt6']
|
||||||
|
'require':
|
||||||
|
'frameworks/qqc2-desktop-style': '@latest-kf6'
|
||||||
|
'frameworks/kio': '@latest-kf6'
|
||||||
|
'frameworks/kwindowsystem': '@latest-kf6'
|
||||||
|
'frameworks/kconfigwidgets': '@latest-kf6'
|
||||||
|
- 'on': ['Linux/Qt6', 'FreeBSD/Qt6']
|
||||||
|
'require':
|
||||||
|
'frameworks/kdbusaddons': '@latest-kf6'
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
require-passing-tests-on: [ 'Linux/Qt5', 'FreeBSD', 'Windows' ]
|
require-passing-tests-on: [ 'Linux/Qt5', 'FreeBSD', 'Windows' ]
|
||||||
|
|||||||
@@ -14,13 +14,13 @@ set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_
|
|||||||
|
|
||||||
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
project(NeoChat VERSION ${RELEASE_SERVICE_VERSION})
|
||||||
|
|
||||||
set(KF5_MIN_VERSION "5.91.0")
|
set(KF_MIN_VERSION "5.91.0")
|
||||||
set(QT_MIN_VERSION "5.15.2")
|
set(QT_MIN_VERSION "5.15.2")
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
set(QT_MIN_VERSION "5.15.8")
|
set(QT_MIN_VERSION "5.15.8")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
|
find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
@@ -57,16 +57,16 @@ set_package_properties(Qt${QT_MAJOR_VERSION} PROPERTIES
|
|||||||
TYPE REQUIRED
|
TYPE REQUIRED
|
||||||
PURPOSE "Basic application components"
|
PURPOSE "Basic application components"
|
||||||
)
|
)
|
||||||
find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS Kirigami2 I18n Notifications Config CoreAddons Sonnet ItemModels)
|
find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} COMPONENTS Kirigami2 I18n Notifications Config CoreAddons Sonnet ItemModels)
|
||||||
set_package_properties(KF5 PROPERTIES
|
set_package_properties(KF${QT_MAJOR_VERSION} PROPERTIES
|
||||||
TYPE REQUIRED
|
TYPE REQUIRED
|
||||||
PURPOSE "Basic application components"
|
PURPOSE "Basic application components"
|
||||||
)
|
)
|
||||||
set_package_properties(KF5Kirigami2 PROPERTIES
|
set_package_properties(KF${QT_MAJOR_VERSION}Kirigami2 PROPERTIES
|
||||||
TYPE REQUIRED
|
TYPE REQUIRED
|
||||||
PURPOSE "Kirigami application UI framework"
|
PURPOSE "Kirigami application UI framework"
|
||||||
)
|
)
|
||||||
find_package(KF5KirigamiAddons 0.7.2 REQUIRED)
|
find_package(KF${QT_MAJOR_VERSION}KirigamiAddons 0.7.2 REQUIRED)
|
||||||
|
|
||||||
find_package(Qt${QT_MAJOR_VERSION}Keychain)
|
find_package(Qt${QT_MAJOR_VERSION}Keychain)
|
||||||
set_package_properties(Qt${QT_MAJOR_VERSION}Keychain PROPERTIES
|
set_package_properties(Qt${QT_MAJOR_VERSION}Keychain PROPERTIES
|
||||||
@@ -82,15 +82,15 @@ if(ANDROID)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} COMPONENTS Widgets)
|
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} COMPONENTS Widgets)
|
||||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS QQC2DesktopStyle ConfigWidgets KIO WindowSystem)
|
find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS QQC2DesktopStyle ConfigWidgets KIO WindowSystem)
|
||||||
set_package_properties(KF5QQC2DesktopStyle PROPERTIES
|
set_package_properties(KF${QT_MAJOR_VERSION}QQC2DesktopStyle PROPERTIES
|
||||||
TYPE RUNTIME
|
TYPE RUNTIME
|
||||||
)
|
)
|
||||||
ecm_find_qmlmodule(org.kde.syntaxhighlighting 1.0)
|
ecm_find_qmlmodule(org.kde.syntaxhighlighting 1.0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
|
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
|
||||||
find_package(KF5DBusAddons ${KF5_MIN_VERSION} REQUIRED)
|
find_package(KF${QT_MAJOR_VERSION}DBusAddons ${KF_MIN_VERSION} REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Quotient 0.6)
|
find_package(Quotient 0.6)
|
||||||
@@ -124,8 +124,8 @@ find_package(QCoro${QT_MAJOR_VERSION} 0.4 COMPONENTS Core REQUIRED)
|
|||||||
|
|
||||||
qcoro_enable_coroutines()
|
qcoro_enable_coroutines()
|
||||||
|
|
||||||
find_package(KF5DocTools ${KF5_MIN_VERSION})
|
find_package(KF${QT_MAJOR_VERSION}DocTools ${KF_MIN_VERSION})
|
||||||
set_package_properties(KF5DocTools PROPERTIES DESCRIPTION
|
set_package_properties(KF${QT_MAJOR_VERSION}DocTools PROPERTIES DESCRIPTION
|
||||||
"Tools to generate documentation"
|
"Tools to generate documentation"
|
||||||
TYPE OPTIONAL
|
TYPE OPTIONAL
|
||||||
)
|
)
|
||||||
@@ -155,7 +155,7 @@ if (BUILD_TESTING AND Quotient_VERSION_MINOR GREATER 6)
|
|||||||
add_subdirectory(autotests)
|
add_subdirectory(autotests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(KF5DocTools_FOUND)
|
if(KF${QT_MAJOR_VERSION}DocTools_FOUND)
|
||||||
kdoctools_install(po)
|
kdoctools_install(po)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ if(NOT ANDROID)
|
|||||||
else()
|
else()
|
||||||
target_sources(neochat PRIVATE trayicon.cpp)
|
target_sources(neochat PRIVATE trayicon.cpp)
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(neochat PUBLIC KF5::ConfigWidgets KF5::WindowSystem)
|
target_link_libraries(neochat PUBLIC KF${QT_MAJOR_VERSION}::ConfigWidgets KF${QT_MAJOR_VERSION}::WindowSystem)
|
||||||
target_compile_definitions(neochat PUBLIC -DHAVE_COLORSCHEME)
|
target_compile_definitions(neochat PUBLIC -DHAVE_COLORSCHEME)
|
||||||
target_compile_definitions(neochat PUBLIC -DHAVE_WINDOWSYSTEM)
|
target_compile_definitions(neochat PUBLIC -DHAVE_WINDOWSYSTEM)
|
||||||
endif()
|
endif()
|
||||||
@@ -87,13 +87,14 @@ endif()
|
|||||||
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
|
if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
|
||||||
target_sources(neochat-app PRIVATE res_desktop.qrc)
|
target_sources(neochat-app PRIVATE res_desktop.qrc)
|
||||||
target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER)
|
target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER)
|
||||||
|
target_compile_definitions(neochat PUBLIC -DHAVE_X11)
|
||||||
target_sources(neochat PRIVATE runner.cpp)
|
target_sources(neochat PRIVATE runner.cpp)
|
||||||
else()
|
else()
|
||||||
target_sources(neochat-app PRIVATE res_android.qrc)
|
target_sources(neochat-app PRIVATE res_android.qrc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR})
|
target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR})
|
||||||
target_link_libraries(neochat PUBLIC Qt::Core Qt::Quick Qt::Qml Qt::Gui Qt::Multimedia Qt::Network Qt::QuickControls2 KF5::I18n KF5::Kirigami2 KF5::Notifications KF5::ConfigCore KF5::ConfigGui KF5::CoreAddons KF5::SonnetCore KF5::ItemModels Quotient cmark::cmark ${QTKEYCHAIN_LIBRARIES} QCoro::Core)
|
target_link_libraries(neochat PUBLIC Qt::Core Qt::Quick Qt::Qml Qt::Gui Qt::Multimedia Qt::Network Qt::QuickControls2 KF${QT_MAJOR_VERSION}::I18n KF${QT_MAJOR_VERSION}::Kirigami2 KF${QT_MAJOR_VERSION}::Notifications KF${QT_MAJOR_VERSION}::ConfigCore KF${QT_MAJOR_VERSION}::ConfigGui KF${QT_MAJOR_VERSION}::CoreAddons KF${QT_MAJOR_VERSION}::SonnetCore KF${QT_MAJOR_VERSION}::ItemModels Quotient cmark::cmark ${QTKEYCHAIN_LIBRARIES} QCoro::Core)
|
||||||
kconfig_add_kcfg_files(neochat GENERATE_MOC neochatconfig.kcfgc)
|
kconfig_add_kcfg_files(neochat GENERATE_MOC neochatconfig.kcfgc)
|
||||||
|
|
||||||
if(NEOCHAT_FLATPAK)
|
if(NEOCHAT_FLATPAK)
|
||||||
@@ -176,7 +177,7 @@ if(ANDROID)
|
|||||||
"visibility"
|
"visibility"
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(neochat PUBLIC Qt::Widgets KF5::KIOWidgets)
|
target_link_libraries(neochat PUBLIC Qt::Widgets KF${QT_MAJOR_VERSION}::KIOWidgets)
|
||||||
install(FILES neochat.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})
|
install(FILES neochat.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -184,12 +185,12 @@ if(NOT ANDROID)
|
|||||||
set_target_properties(neochat-app PROPERTIES OUTPUT_NAME "neochat")
|
set_target_properties(neochat-app PROPERTIES OUTPUT_NAME "neochat")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(TARGET KF5::DBusAddons)
|
if(TARGET KF${QT_MAJOR_VERSION}::DBusAddons)
|
||||||
target_link_libraries(neochat PUBLIC KF5::DBusAddons)
|
target_link_libraries(neochat PUBLIC KF${QT_MAJOR_VERSION}::DBusAddons)
|
||||||
target_compile_definitions(neochat PUBLIC -DHAVE_KDBUSADDONS)
|
target_compile_definitions(neochat PUBLIC -DHAVE_KDBUSADDONS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TARGET KF5::KIOWidgets)
|
if (TARGET KF${QT_MAJOR_VERSION}::KIOWidgets)
|
||||||
target_compile_definitions(neochat PUBLIC -DHAVE_KIO)
|
target_compile_definitions(neochat PUBLIC -DHAVE_KIO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
#include <KWindowConfig>
|
#include <KWindowConfig>
|
||||||
|
|
||||||
#ifdef HAVE_WINDOWSYSTEM
|
#ifdef HAVE_WINDOWSYSTEM
|
||||||
|
#if HAVE_X11
|
||||||
#include <KStartupInfo>
|
#include <KStartupInfo>
|
||||||
|
#endif
|
||||||
#include <KWindowSystem>
|
#include <KWindowSystem>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -49,7 +51,9 @@ void WindowController::showAndRaiseWindow(const QString &startupId)
|
|||||||
#ifdef HAVE_WINDOWSYSTEM
|
#ifdef HAVE_WINDOWSYSTEM
|
||||||
if (!startupId.isEmpty()) {
|
if (!startupId.isEmpty()) {
|
||||||
if (KWindowSystem::isPlatformX11()) {
|
if (KWindowSystem::isPlatformX11()) {
|
||||||
|
#if HAVE_X11
|
||||||
KStartupInfo::setNewStartupId(m_window, startupId.toUtf8());
|
KStartupInfo::setNewStartupId(m_window, startupId.toUtf8());
|
||||||
|
#endif
|
||||||
} else if (KWindowSystem::isPlatformWayland()) {
|
} else if (KWindowSystem::isPlatformWayland()) {
|
||||||
KWindowSystem::setCurrentXdgActivationToken(startupId);
|
KWindowSystem::setCurrentXdgActivationToken(startupId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user