Warning, /network/neochat/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2020-2021 Carl Schwan <carl@carlschwan.eu>
0002 # SPDX-FileCopyrightText: 2020-2021 Nicolas Fella <nicolas.fella@gmx.de>
0003 # SPDX-FileCopyrightText: 2020-2021 Tobias Fella <tobias.fella@kde.org>
0004 # SPDX-License-Identifier: BSD-2-Clause
0005 
0006 add_library(neochat STATIC
0007     controller.cpp
0008     controller.h
0009     actionshandler.cpp
0010     actionshandler.h
0011     models/emojimodel.cpp
0012     models/emojimodel.h
0013     emojitones.cpp
0014     emojitones.h
0015     models/customemojimodel.cpp
0016     models/customemojimodel.h
0017     clipboard.cpp
0018     clipboard.h
0019     matriximageprovider.cpp
0020     matriximageprovider.h
0021     models/messageeventmodel.cpp
0022     models/messageeventmodel.h
0023     models/messagefiltermodel.cpp
0024     models/messagefiltermodel.h
0025     models/roomlistmodel.cpp
0026     models/roomlistmodel.h
0027     models/sortfilterspacelistmodel.cpp
0028     models/sortfilterspacelistmodel.h
0029     models/accountemoticonmodel.cpp
0030     models/accountemoticonmodel.h
0031     spacehierarchycache.cpp
0032     spacehierarchycache.h
0033     roommanager.cpp
0034     roommanager.h
0035     neochatroom.cpp
0036     neochatroom.h
0037     models/userlistmodel.cpp
0038     models/userlistmodel.h
0039     models/userfiltermodel.cpp
0040     models/userfiltermodel.h
0041     models/publicroomlistmodel.cpp
0042     models/publicroomlistmodel.h
0043     models/spacechildrenmodel.cpp
0044     models/spacechildrenmodel.h
0045     models/spacechildsortfiltermodel.cpp
0046     models/spacechildsortfiltermodel.h
0047     models/spacetreeitem.cpp
0048     models/spacetreeitem.h
0049     models/userdirectorylistmodel.cpp
0050     models/userdirectorylistmodel.h
0051     models/pushrulemodel.cpp
0052     models/pushrulemodel.h
0053     models/emoticonfiltermodel.cpp
0054     models/emoticonfiltermodel.h
0055     notificationsmanager.cpp
0056     notificationsmanager.h
0057     models/sortfilterroomlistmodel.cpp
0058     models/sortfilterroomlistmodel.h
0059     chatdocumenthandler.cpp
0060     chatdocumenthandler.h
0061     models/devicesmodel.cpp
0062     models/devicesmodel.h
0063     models/devicesproxymodel.cpp
0064     filetype.cpp
0065     filetype.h
0066     login.cpp
0067     login.h
0068     models/webshortcutmodel.cpp
0069     models/webshortcutmodel.h
0070     blurhash.cpp
0071     blurhash.h
0072     blurhashimageprovider.cpp
0073     blurhashimageprovider.h
0074     models/mediamessagefiltermodel.cpp
0075     models/mediamessagefiltermodel.h
0076     urlhelper.cpp
0077     urlhelper.h
0078     windowcontroller.cpp
0079     windowcontroller.h
0080     linkpreviewer.cpp
0081     linkpreviewer.h
0082     models/completionmodel.cpp
0083     models/completionmodel.h
0084     models/completionproxymodel.cpp
0085     models/completionproxymodel.h
0086     models/actionsmodel.cpp
0087     models/actionsmodel.h
0088     models/serverlistmodel.cpp
0089     models/serverlistmodel.h
0090     models/statemodel.cpp
0091     models/statemodel.h
0092     models/statefiltermodel.cpp
0093     models/statefiltermodel.h
0094     filetransferpseudojob.cpp
0095     filetransferpseudojob.h
0096     models/searchmodel.cpp
0097     models/searchmodel.h
0098     texthandler.cpp
0099     texthandler.h
0100     logger.cpp
0101     logger.h
0102     models/stickermodel.cpp
0103     models/stickermodel.h
0104     models/imagepacksmodel.cpp
0105     models/imagepacksmodel.h
0106     events/imagepackevent.cpp
0107     events/imagepackevent.h
0108     events/joinrulesevent.cpp
0109     events/joinrulesevent.h
0110     models/reactionmodel.cpp
0111     models/reactionmodel.h
0112     delegatesizehelper.cpp
0113     delegatesizehelper.h
0114     models/livelocationsmodel.cpp
0115     models/livelocationsmodel.h
0116     models/locationsmodel.cpp
0117     models/locationsmodel.h
0118     locationhelper.cpp
0119     locationhelper.h
0120     events/pollevent.cpp
0121     pollhandler.cpp
0122     utils.h
0123     registration.cpp
0124     neochatconnection.cpp
0125     neochatconnection.h
0126     jobs/neochatdeactivateaccountjob.cpp
0127     jobs/neochatdeactivateaccountjob.h
0128     jobs/neochatdeletedevicejob.cpp
0129     jobs/neochatdeletedevicejob.h
0130     jobs/neochatchangepasswordjob.cpp
0131     jobs/neochatchangepasswordjob.h
0132     mediasizehelper.cpp
0133     mediasizehelper.h
0134     eventhandler.cpp
0135     enums/delegatetype.h
0136     roomlastmessageprovider.cpp
0137     roomlastmessageprovider.h
0138     chatbarcache.cpp
0139     chatbarcache.h
0140     colorschemer.cpp
0141     colorschemer.h
0142     models/notificationsmodel.cpp
0143     models/notificationsmodel.h
0144     models/timelinemodel.cpp
0145     models/timelinemodel.h
0146     enums/pushrule.h
0147 )
0148 
0149 qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN
0150     QML_FILES
0151         qml/main.qml
0152         qml/AccountMenu.qml
0153         qml/ExploreComponent.qml
0154         qml/ExploreComponentMobile.qml
0155         qml/ContextMenu.qml
0156         qml/CollapsedRoomDelegate.qml
0157         qml/RoomDelegate.qml
0158         qml/RoomListPage.qml
0159         qml/SpaceListContextMenu.qml
0160         qml/UserInfo.qml
0161         qml/UserInfoDesktop.qml
0162         qml/RoomPage.qml
0163         qml/RoomWindow.qml
0164         qml/JoinRoomPage.qml
0165         qml/ManualRoomDialog.qml
0166         qml/ExplorerDelegate.qml
0167         qml/InviteUserPage.qml
0168         qml/StartChatPage.qml
0169         qml/ImageEditorPage.qml
0170         qml/WelcomePage.qml
0171         qml/General.qml
0172         qml/RoomSecurity.qml
0173         qml/PushNotification.qml
0174         qml/Categories.qml
0175         qml/Permissions.qml
0176         qml/NeochatMaximizeComponent.qml
0177         qml/FancyEffectsContainer.qml
0178         qml/TypingPane.qml
0179         qml/QuickSwitcher.qml
0180         qml/HoverActions.qml
0181         qml/ChatBar.qml
0182         qml/AttachmentPane.qml
0183         qml/ReplyPane.qml
0184         qml/CompletionMenu.qml
0185         qml/PieProgressBar.qml
0186         qml/QuickFormatBar.qml
0187         qml/RoomData.qml
0188         qml/ServerData.qml
0189         qml/EmojiPicker.qml
0190         qml/TimelineDelegate.qml
0191         qml/ReplyComponent.qml
0192         qml/StateDelegate.qml
0193         qml/RichLabel.qml
0194         qml/MessageDelegate.qml
0195         qml/Bubble.qml
0196         qml/SectionDelegate.qml
0197         qml/VideoDelegate.qml
0198         qml/ReactionDelegate.qml
0199         qml/LinkPreviewDelegate.qml
0200         qml/AudioDelegate.qml
0201         qml/FileDelegate.qml
0202         qml/ImageDelegate.qml
0203         qml/EncryptedDelegate.qml
0204         qml/EventDelegate.qml
0205         qml/TextDelegate.qml
0206         qml/ReadMarkerDelegate.qml
0207         qml/PollDelegate.qml
0208         qml/MimeComponent.qml
0209         qml/StateComponent.qml
0210         qml/MessageEditComponent.qml
0211         qml/AvatarFlow.qml
0212         qml/LoginStep.qml
0213         qml/Login.qml
0214         qml/Homeserver.qml
0215         qml/Username.qml
0216         qml/RegisterPassword.qml
0217         qml/Captcha.qml
0218         qml/Terms.qml
0219         qml/Email.qml
0220         qml/Password.qml
0221         qml/LoginRegister.qml
0222         qml/Loading.qml
0223         qml/LoginMethod.qml
0224         qml/Sso.qml
0225         qml/UserDetailDialog.qml
0226         qml/CreateRoomDialog.qml
0227         qml/EmojiDialog.qml
0228         qml/OpenFileDialog.qml
0229         qml/KeyVerificationDialog.qml
0230         qml/ConfirmLogoutDialog.qml
0231         qml/PowerLevelDialog.qml
0232         qml/Message.qml
0233         qml/EmojiItem.qml
0234         qml/EmojiRow.qml
0235         qml/EmojiSas.qml
0236         qml/ConfirmDeactivateAccountDialog.qml
0237         qml/VerificationCanceled.qml
0238         qml/GlobalMenu.qml
0239         qml/EditMenu.qml
0240         qml/MessageDelegateContextMenu.qml
0241         qml/FileDelegateContextMenu.qml
0242         qml/MessageSourceSheet.qml
0243         qml/ReportSheet.qml
0244         qml/SettingsPage.qml
0245         qml/ThemeRadioButton.qml
0246         qml/ColorScheme.qml
0247         qml/GeneralSettingsPage.qml
0248         qml/EmoticonsPage.qml
0249         qml/EmoticonEditorPage.qml
0250         qml/EmoticonFormCard.qml
0251         qml/GlobalNotificationsPage.qml
0252         qml/NotificationRuleItem.qml
0253         qml/AppearanceSettingsPage.qml
0254         qml/AccountsPage.qml
0255         qml/AccountEditorPage.qml
0256         qml/DevicesPage.qml
0257         qml/DeviceDelegate.qml
0258         qml/DevicesCard.qml
0259         qml/About.qml
0260         qml/AboutKDE.qml
0261         qml/SonnetConfigPage.qml
0262         qml/NetworkProxyPage.qml
0263         qml/DevtoolsPage.qml
0264         qml/ConfirmEncryptionDialog.qml
0265         qml/RemoveSheet.qml
0266         qml/BanSheet.qml
0267         qml/EmojiTonesPicker.qml
0268         qml/EmojiDelegate.qml
0269         qml/EmojiGrid.qml
0270         qml/SearchPage.qml
0271         qml/LocationDelegate.qml
0272         qml/LocationChooser.qml
0273         qml/TimelineView.qml
0274         qml/InvitationView.qml
0275         qml/AvatarTabButton.qml
0276         qml/SpaceDrawer.qml
0277         qml/OsmLocationPlugin.qml
0278         qml/LiveLocationDelegate.qml
0279         qml/FullScreenMap.qml
0280         qml/LocationsPage.qml
0281         qml/LocationMapItem.qml
0282         qml/RoomDrawer.qml
0283         qml/RoomDrawerPage.qml
0284         qml/DirectChatDrawerHeader.qml
0285         qml/GroupChatDrawerHeader.qml
0286         qml/RoomInformation.qml
0287         qml/RoomMedia.qml
0288         qml/ChooseRoomDialog.qml
0289         qml/ShareAction.qml
0290         qml/SpaceHomePage.qml
0291         qml/SpaceHierarchyDelegate.qml
0292         qml/RemoveChildDialog.qml
0293         qml/SelectParentDialog.qml
0294         qml/Security.qml
0295         qml/QrCodeMaximizeComponent.qml
0296         qml/SelectSpacesDialog.qml
0297         qml/AttachDialog.qml
0298         qml/NotificationsView.qml
0299         qml/LoadingDelegate.qml
0300         qml/TimelineEndDelegate.qml
0301     RESOURCES
0302         qml/confetti.png
0303         qml/glowdot.png
0304 )
0305 
0306 if(WIN32)
0307     set_target_properties(neochat PROPERTIES OUTPUT_NAME "neochatlib")
0308 endif()
0309 
0310 ecm_qt_declare_logging_category(neochat
0311     HEADER "messageeventmodel_logging.h"
0312     IDENTIFIER "MessageEvent"
0313     CATEGORY_NAME "org.kde.neochat.messageeventmodel"
0314     DESCRIPTION "Neochat: messageeventmodel"
0315     DEFAULT_SEVERITY Info
0316     EXPORT NEOCHAT
0317 )
0318 
0319 ecm_qt_declare_logging_category(neochat
0320     HEADER "eventhandler_logging.h"
0321     IDENTIFIER "EventHandling"
0322     CATEGORY_NAME "org.kde.neochat.eventhandler"
0323     DEFAULT_SEVERITY Info
0324 )
0325 
0326 ecm_qt_declare_logging_category(neochat
0327     HEADER "chatdocumenthandler_logging.h"
0328     IDENTIFIER "ChatDocumentHandling"
0329     CATEGORY_NAME "org.kde.neochat.chatdocumenthandler"
0330     DEFAULT_SEVERITY Info
0331 )
0332 
0333 add_executable(neochat-app
0334     main.cpp
0335 )
0336 
0337 if(TARGET Qt::WebView)
0338     target_link_libraries(neochat-app PUBLIC Qt::WebView)
0339     target_compile_definitions(neochat-app PUBLIC -DHAVE_WEBVIEW)
0340 endif()
0341 
0342 target_include_directories(neochat-app PRIVATE ${CMAKE_BINARY_DIR})
0343 
0344 target_link_libraries(neochat-app PRIVATE
0345     neochat
0346 )
0347 
0348 ecm_add_app_icon(NEOCHAT_ICON ICONS ${CMAKE_SOURCE_DIR}/128-logo.png)
0349 
0350 target_sources(neochat-app PRIVATE ${NEOCHAT_ICON})
0351 
0352 if(NOT ANDROID)
0353     if (NOT WIN32 AND NOT APPLE)
0354         target_sources(neochat PRIVATE trayicon_sni.cpp trayicon_sni.h)
0355         target_link_libraries(neochat PRIVATE KF6::StatusNotifierItem)
0356     else()
0357         target_sources(neochat PRIVATE trayicon.cpp trayicon.h)
0358     endif()
0359     target_link_libraries(neochat PUBLIC KF6::WindowSystem ICU::uc)
0360     target_compile_definitions(neochat PUBLIC -DHAVE_WINDOWSYSTEM)
0361     target_compile_definitions(neochat PUBLIC -DHAVE_ICU)
0362 endif()
0363 
0364 if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
0365     target_compile_definitions(neochat PUBLIC -DHAVE_RUNNER)
0366     target_compile_definitions(neochat PUBLIC -DHAVE_X11)
0367     target_sources(neochat PRIVATE runner.cpp)
0368 endif()
0369 
0370 target_include_directories(neochat PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/models ${CMAKE_CURRENT_SOURCE_DIR}/enums)
0371 target_link_libraries(neochat PUBLIC
0372     Qt::Core
0373     Qt::Quick
0374     Qt::Qml
0375     Qt::Gui
0376     Qt::Multimedia
0377     Qt::Network
0378     Qt::QuickControls2
0379     KF6::I18n
0380     KF6::Kirigami
0381     KF6::Notifications
0382     KF6::ConfigCore
0383     KF6::ConfigGui
0384     KF6::CoreAddons
0385     KF6::SonnetCore
0386     KF6::ColorScheme
0387     KF6::ItemModels
0388     QuotientQt6
0389     cmark::cmark
0390     QCoro::Core
0391     QCoro::Network
0392 )
0393 
0394 kconfig_add_kcfg_files(neochat GENERATE_MOC neochatconfig.kcfgc)
0395 
0396 if(NEOCHAT_FLATPAK)
0397     target_compile_definitions(neochat PUBLIC NEOCHAT_FLATPAK)
0398 endif()
0399 
0400 if(ANDROID)
0401     target_sources(neochat PRIVATE notifyrc.qrc)
0402     target_link_libraries(neochat PRIVATE Qt::Svg OpenSSL::SSL)
0403     if(SQLite3_FOUND)
0404         target_link_libraries(neochat-app PRIVATE SQLite::SQLite3)
0405     endif()
0406     target_sources(neochat-app PRIVATE notifyrc.qrc)
0407     target_link_libraries(neochat PUBLIC Qt::Svg OpenSSL::SSL)
0408     kirigami_package_breeze_icons(ICONS
0409         "arrow-down"
0410         "arrow-up"
0411         "checkmark"
0412         "help-about"
0413         "im-user"
0414         "im-invisible-user"
0415         "im-kick-user"
0416         "mail-attachment"
0417         "dialog-cancel"
0418         "preferences-desktop-emoticons"
0419         "document-open"
0420         "document-save"
0421         "document-send"
0422         "dialog-close"
0423         "edit-delete-remove"
0424         "code-context"
0425         "document-edit"
0426         "list-user-add"
0427         "list-add-user"
0428         "user-others"
0429         "media-playback-pause"
0430         "media-playback-start"
0431         "media-playback-stop"
0432         "go-previous"
0433         "go-up"
0434         "go-down"
0435         "list-add"
0436         "irc-join-channel"
0437         "settings-configure"
0438         "configure"
0439         "rating"
0440         "rating-unrated"
0441         "search"
0442         "mail-replied-symbolic"
0443         "edit-clear"
0444         "edit-copy"
0445         "gtk-quit"
0446         "compass"
0447         "computer"
0448         "network-connect"
0449         "list-remove-user"
0450         "org.kde.neochat"
0451         "preferences-system-users"
0452         "preferences-desktop-theme-global"
0453         "notifications"
0454         "notifications-disabled"
0455         "audio-volume-high"
0456         "audio-volume-muted"
0457         "draw-highlight"
0458         "zoom-in"
0459         "zoom-out"
0460         "image-rotate-left-symbolic"
0461         "image-rotate-right-symbolic"
0462         "channel-secure-symbolic"
0463         "download"
0464         "smiley"
0465         "tools-check-spelling"
0466         "username-copy"
0467         "system-switch-user"
0468         "bookmark-new"
0469         "bookmark-remove"
0470         "favorite"
0471         "window-new"
0472         "globe"
0473         "visibility"
0474         "home"
0475         "preferences-desktop-notification"
0476         "computer-symbolic"
0477         "gps"
0478         "system-users-symbolic"
0479         "map-flat"
0480         "documentinfo"
0481         "view-list-details"
0482         "go-previous"
0483         "mail-forward-symbolic"
0484         "dialog-warning-symbolic"
0485         "object-rotate-left"
0486         "object-rotate-right"
0487         "add-subtitle"
0488         "security-low"
0489         "security-low-symbolic"
0490         "kde"
0491         "list-remove-symbolic"
0492         "edit-delete"
0493     )
0494     ecm_add_android_apk(neochat-app ANDROID_DIR ${CMAKE_SOURCE_DIR}/android)
0495 else()
0496     target_link_libraries(neochat PUBLIC Qt::Widgets KF6::KIOWidgets)
0497     install(FILES neochat.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})
0498 endif()
0499 
0500 if(NOT ANDROID)
0501     set_target_properties(neochat-app PROPERTIES OUTPUT_NAME "neochat")
0502 endif()
0503 
0504 if(TARGET KF6::DBusAddons)
0505     target_link_libraries(neochat PUBLIC KF6::DBusAddons)
0506     target_compile_definitions(neochat PUBLIC -DHAVE_KDBUSADDONS)
0507 endif()
0508 
0509 if (TARGET KF6::KIOWidgets)
0510     target_compile_definitions(neochat PUBLIC -DHAVE_KIO)
0511 endif()
0512 
0513 if (TARGET KUnifiedPush)
0514     target_compile_definitions(neochat PUBLIC -DHAVE_KUNIFIEDPUSH)
0515     target_link_libraries(neochat PUBLIC KUnifiedPush)
0516 
0517     if (NOT ANDROID)
0518         configure_file(org.kde.neochat.service.in ${CMAKE_CURRENT_BINARY_DIR}/org.kde.neochat.service)
0519         install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.neochat.service DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR})
0520     endif()
0521 endif()
0522 
0523 install(TARGETS neochat-app ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0524 
0525 if (NOT ANDROID AND NOT WIN32 AND NOT APPLE)
0526     install(FILES plasma-runner-neochat.desktop DESTINATION ${KDE_INSTALL_DATAROOTDIR}/krunner/dbusplugins)
0527 endif()