Warning, /network/tokodon/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org> 0002 # SPDX-License-Identifier: BSD-2-Clause 0003 0004 qt_add_qml_module(tokodon_static 0005 STATIC 0006 URI org.kde.tokodon 0007 VERSION 1.0) 0008 0009 ecm_qt_declare_logging_category(tokodon_static 0010 HEADER tokodon_debug.h 0011 IDENTIFIER TOKODON_LOG 0012 CATEGORY_NAME org.kde.tokodon 0013 DESCRIPTION "tokodon" 0014 DEFAULT_SEVERITY Warning 0015 EXPORT TOKODON 0016 ) 0017 0018 ecm_qt_declare_logging_category(tokodon_static 0019 HEADER tokodon_http_debug.h 0020 IDENTIFIER TOKODON_HTTP 0021 CATEGORY_NAME org.kde.tokodon.http 0022 DESCRIPTION "Tokodon request" 0023 EXPORT TOKODON 0024 ) 0025 0026 target_sources(tokodon_static 0027 PRIVATE 0028 # Account 0029 account/abstractaccount.cpp 0030 account/abstractaccount.h 0031 account/accountmanager.cpp 0032 account/accountmanager.h 0033 account/announcementmodel.cpp 0034 account/announcementmodel.h 0035 account/featuredtagsmodel.cpp 0036 account/featuredtagsmodel.h 0037 account/account.cpp 0038 account/account.h 0039 account/preferences.cpp 0040 account/preferences.h 0041 account/identity.cpp 0042 account/identity.h 0043 account/listsmodel.cpp 0044 account/listsmodel.h 0045 account/socialgraphmodel.cpp 0046 account/socialgraphmodel.h 0047 account/relationship.cpp 0048 account/rulesmodel.cpp 0049 account/rulesmodel.h 0050 account/profileeditor.cpp 0051 account/notificationhandler.cpp 0052 account/notificationhandler.h 0053 0054 # Editor 0055 editor/posteditorbackend.cpp 0056 editor/posteditorbackend.h 0057 editor/attachmenteditormodel.cpp 0058 editor/attachmenteditormodel.h 0059 editor/polltimemodel.cpp 0060 editor/polltimemodel.h 0061 editor/languagemodel.cpp 0062 editor/languagemodel.h 0063 editor/listeditorbackend.cpp 0064 editor/listeditorbackend.h 0065 editor/polleditorbackend.cpp 0066 editor/polleditorbackend.h 0067 editor/reporteditorbackend.cpp 0068 editor/reporteditorbackend.h 0069 0070 # Conversation view 0071 conversation/conversationmodel.cpp 0072 conversation/conversationmodel.h 0073 0074 # Timeline 0075 timeline/post.cpp 0076 timeline/post.h 0077 timeline/poll.cpp 0078 timeline/poll.h 0079 timeline/tag.h 0080 timeline/tag.cpp 0081 timeline/accountmodel.cpp 0082 timeline/accountmodel.h 0083 timeline/threadmodel.cpp 0084 timeline/threadmodel.h 0085 timeline/timelinemodel.cpp 0086 timeline/timelinemodel.h 0087 timeline/tagstimelinemodel.cpp 0088 timeline/tagstimelinemodel.h 0089 timeline/maintimelinemodel.cpp 0090 timeline/maintimelinemodel.h 0091 timeline/abstracttimelinemodel.cpp 0092 timeline/abstracttimelinemodel.h 0093 timeline/tagsmodel.h 0094 timeline/tagsmodel.cpp 0095 timeline/abstractlistmodel.cpp 0096 timeline/abstractlistmodel.h 0097 0098 # Search 0099 search/searchmodel.cpp 0100 search/searchmodel.h 0101 0102 # Misc utils 0103 utils/blurhash.cpp 0104 utils/blurhash.hpp 0105 utils/blurhashimageprovider.cpp 0106 utils/blurhashimageprovider.h 0107 utils/filehelper.cpp 0108 utils/filehelper.h 0109 utils/filetransferjob.cpp 0110 utils/filetransferjob.h 0111 utils/clipboard.cpp 0112 utils/clipboard.h 0113 utils/navigation.cpp 0114 utils/navigation.h 0115 utils/emojimodel.cpp 0116 utils/emojimodel.h 0117 utils/emojis.h 0118 utils/emojitones.cpp 0119 utils/emojitones.h 0120 utils/emojitones_data.h 0121 utils/messagefiltercontainer.cpp 0122 utils/messagefiltercontainer.h 0123 utils/mpvplayer.cpp 0124 utils/mpvplayer.h 0125 utils/textpreprocessing.cpp 0126 utils/textpreprocessing.h 0127 utils/utils.cpp 0128 utils/utils.h 0129 utils/colorschemer.cpp 0130 utils/colorschemer.h 0131 utils/customemoji.cpp 0132 utils/customemoji.h 0133 utils/windowcontroller.cpp 0134 utils/windowcontroller.h 0135 0136 # Network related classes 0137 network/networkrequestprogress.cpp 0138 network/networkrequestprogress.h 0139 network/networkaccessmanagerfactory.cpp 0140 network/networkaccessmanagerfactory.h 0141 network/networkcontroller.cpp 0142 network/networkcontroller.h 0143 0144 # Admin 0145 admin/accounttoolmodel.cpp 0146 admin/accounttoolmodel.h 0147 admin/adminaccountinfo.cpp 0148 admin/adminaccountinfo.h 0149 admin/federationtoolmodel.cpp 0150 admin/federationtoolmodel.h 0151 admin/federationinfo.h 0152 admin/federationinfo.cpp 0153 admin/ipinfo.cpp 0154 admin/ipinfo.h 0155 admin/iprulestoolmodel.cpp 0156 admin/iprulestoolmodel.h 0157 admin/emailblocktoolmodel.cpp 0158 admin/emailblocktoolmodel.h 0159 admin/emailinfo.cpp 0160 admin/emailinfo.h 0161 admin/reporttoolmodel.cpp 0162 admin/reporttoolmodel.h 0163 admin/reportinfo.h 0164 admin/reportinfo.cpp 0165 0166 # Notification models 0167 notification/notificationgroupingmodel.cpp 0168 notification/notificationgroupingmodel.h 0169 notification/notificationmodel.cpp 0170 notification/notificationmodel.h 0171 ) 0172 0173 qt_target_qml_sources(tokodon_static 0174 QML_FILES 0175 # Components 0176 content/ui/Components/Emoji/EmojiDelegate.qml 0177 content/ui/Components/Emoji/EmojiGrid.qml 0178 content/ui/Components/Emoji/EmojiPicker.qml 0179 content/ui/Components/Emoji/EmojiTonesPicker.qml 0180 content/ui/Components/FocusedImage.qml 0181 content/ui/Components/PopupShadow.qml 0182 content/ui/Components/UserCard.qml 0183 0184 # Login Flow 0185 content/ui/LoginFlow/AuthorizationPage.qml 0186 content/ui/LoginFlow/LoginIssuePage.qml 0187 content/ui/LoginFlow/LoginPage.qml 0188 content/ui/LoginFlow/RegistrationPage.qml 0189 content/ui/LoginFlow/RulesPage.qml 0190 content/ui/LoginFlow/ServersPage.qml 0191 content/ui/LoginFlow/WelcomePage.qml 0192 0193 # Moderation Tools 0194 content/ui/ModerationTools/AccountToolPage.qml 0195 content/ui/ModerationTools/EmailBlockToolPage.qml 0196 content/ui/ModerationTools/FederationToolPage.qml 0197 content/ui/ModerationTools/IpRulePage.qml 0198 content/ui/ModerationTools/MainAccountToolPage.qml 0199 content/ui/ModerationTools/MainFederationToolPage.qml 0200 content/ui/ModerationTools/MainIpRulePage.qml 0201 content/ui/ModerationTools/MainReportToolPage.qml 0202 content/ui/ModerationTools/ModerationToolPage.qml 0203 content/ui/ModerationTools/ReportToolPage.qml 0204 0205 # Notifications 0206 content/ui/Notifications/GroupInteractionLabel.qml 0207 content/ui/Notifications/UserInteractionLabel.qml 0208 0209 # Settings 0210 content/ui/Settings/AboutKDEPage.qml 0211 content/ui/Settings/AboutPage.qml 0212 content/ui/Settings/AccountsPage.qml 0213 content/ui/Settings/AppearancePage.qml 0214 content/ui/Settings/NetworkProxyPage.qml 0215 content/ui/Settings/NotificationsPage.qml 0216 content/ui/Settings/ProfileEditor.qml 0217 content/ui/Settings/SettingsPage.qml 0218 content/ui/Settings/SonnetPage.qml 0219 0220 # Composer 0221 content/ui/StatusComposer/EditorAttachmentGrid.qml 0222 content/ui/StatusComposer/AttachmentInfoDialog.qml 0223 content/ui/StatusComposer/ComposerPoll.qml 0224 content/ui/StatusComposer/EmojiDialog.qml 0225 content/ui/StatusComposer/StatusComposer.qml 0226 content/ui/StatusComposer/StatusPreview.qml 0227 0228 # Delegate 0229 content/ui/StatusDelegate/AttachmentGrid.qml 0230 content/ui/StatusDelegate/ImageMenu.qml 0231 content/ui/StatusDelegate/InformationBar.qml 0232 content/ui/StatusDelegate/InlineIdentityInfo.qml 0233 content/ui/StatusDelegate/InteractionButton.qml 0234 content/ui/StatusDelegate/LinkPreview.qml 0235 content/ui/StatusDelegate/MediaContainer.qml 0236 content/ui/StatusDelegate/OverflowMenu.qml 0237 content/ui/StatusDelegate/PostContent.qml 0238 content/ui/StatusDelegate/PostInfoBar.qml 0239 content/ui/StatusDelegate/StandaloneTags.qml 0240 content/ui/StatusDelegate/StatusDelegate.qml 0241 content/ui/StatusDelegate/StatusPoll.qml 0242 content/ui/StatusDelegate/UserInteractionLabel.qml 0243 content/ui/StatusDelegate/VideoAttachment.qml 0244 0245 # Other 0246 content/ui/AccountInfo.qml 0247 content/ui/AnnouncementsPage.qml 0248 content/ui/ConversationDelegate.qml 0249 content/ui/ConversationPage.qml 0250 content/ui/EditListPage.qml 0251 content/ui/ExplorePage.qml 0252 content/ui/FollowDelegate.qml 0253 content/ui/FullScreenImage.qml 0254 content/ui/LanguageSelector.qml 0255 content/ui/ListPage.qml 0256 content/ui/ListsPage.qml 0257 content/ui/Main.qml 0258 content/ui/MastoPage.qml 0259 content/ui/NotificationPage.qml 0260 content/ui/ReportDialog.qml 0261 content/ui/SearchField.qml 0262 content/ui/SearchPage.qml 0263 content/ui/SearchView.qml 0264 content/ui/ShareDialog.qml 0265 content/ui/SocialGraphPage.qml 0266 content/ui/StandaloneComposer.qml 0267 content/ui/ThreadPage.qml 0268 content/ui/TimelinePage.qml 0269 content/ui/UserInfo.qml 0270 ) 0271 0272 set_source_files_properties(../org.kde.tokodon.svg PROPERTIES 0273 QT_RESOURCE_ALIAS /org.kde.tokodon.svg 0274 ) 0275 0276 qt_target_qml_sources(tokodon_static 0277 PREFIX / 0278 RESOURCES 0279 content/elephant.svg 0280 ../org.kde.tokodon.svg 0281 ) 0282 0283 if (NOT ANDROID) 0284 install(DIRECTORY icons/ DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/actions) 0285 else() 0286 install(DIRECTORY icons/ DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami/breeze-internal/icons/) 0287 endif() 0288 0289 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/search) 0290 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/timeline) 0291 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/account) 0292 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/utils) 0293 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/notification) 0294 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/network) 0295 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/admin) 0296 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/conversation) 0297 target_include_directories(tokodon_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/editor) 0298 0299 if (BUILD_TESTING) 0300 qt_target_qml_sources(tokodon_static 0301 QML_FILES 0302 content/ui/Debug/DebugPage.qml 0303 ) 0304 endif() 0305 0306 if(ANDROID) 0307 target_sources(tokodon_static 0308 PRIVATE 0309 utils/androidutils.cpp 0310 utils/androidutils.h 0311 ) 0312 qt_target_qml_sources(tokodon_static 0313 QML_FILES 0314 content/ui/Android/ShareAction.qml 0315 content/ui/Android/ShareMenu.qml 0316 ) 0317 set_source_files_properties(content/ui/Android/ShareAction.qml PROPERTIES 0318 QT_RESOURCE_ALIAS content/ui/ShareAction.qml 0319 ) 0320 set_source_files_properties(content/ui/Android/ShareMenu.qml PROPERTIES 0321 QT_RESOURCE_ALIAS content/ui/ShareMenu.qml 0322 ) 0323 else() 0324 qt_target_qml_sources(tokodon_static 0325 QML_FILES 0326 content/ui/ShareAction.qml 0327 content/ui/ShareMenu.qml 0328 ) 0329 endif() 0330 0331 kconfig_add_kcfg_files(tokodon_static GENERATE_MOC config.kcfgc accountconfig.kcfgc) 0332 target_link_libraries(tokodon_static 0333 PUBLIC 0334 Qt::Quick 0335 Qt::Qml 0336 Qt::Gui 0337 Qt::Network 0338 Qt::WebSockets 0339 Qt::QuickControls2 0340 Qt::WebView 0341 KF6::I18n 0342 KF6::Kirigami 0343 KF6::KirigamiPlatform 0344 KF6::Notifications 0345 KF6::ConfigCore 0346 KF6::ConfigGui 0347 KF6::CoreAddons 0348 KF6::ColorScheme 0349 MpvQt::MpvQt 0350 ${QTKEYCHAIN_LIBRARIES} 0351 ) 0352 target_compile_options(tokodon_static PRIVATE -fexceptions) 0353 0354 if (TARGET KF6::KIOWidgets) 0355 target_compile_definitions(tokodon_static PUBLIC -DHAVE_KIO) 0356 target_link_libraries(tokodon_static PUBLIC KF6::KIOWidgets) 0357 endif() 0358 0359 if (TARGET KUnifiedPush) 0360 target_sources(tokodon_static PRIVATE 0361 utils/ecdh.cpp 0362 utils/ecdh.h) 0363 target_compile_definitions(tokodon_static PUBLIC -DHAVE_KUNIFIEDPUSH) 0364 target_link_libraries(tokodon_static PUBLIC KUnifiedPush OpenSSL::Crypto) 0365 endif() 0366 0367 if (SAILFISHOS) 0368 target_compile_definitions(tokodon_static PUBLIC -DSAILFISHOS) 0369 endif() 0370 0371 if(TOKODON_FLATPAK) 0372 target_compile_definitions(tokodon_static PUBLIC TOKODON_FLATPAK) 0373 endif() 0374 0375 if (BUILD_TESTING) 0376 add_subdirectory(autotests) 0377 endif() 0378 0379 add_executable(tokodon 0380 main.cpp 0381 ) 0382 0383 target_include_directories(tokodon PRIVATE ${CMAKE_BINARY_DIR}) 0384 target_link_libraries(tokodon PRIVATE tokodon_static tokodon_staticplugin) 0385 0386 if(ANDROID) 0387 target_link_libraries(tokodon PRIVATE Qt::Svg OpenSSL::SSL) 0388 kirigami_package_breeze_icons(ICONS 0389 "help-about" 0390 "im-user" 0391 "im-invisible-user" 0392 "im-kick-user" 0393 "mail-attachment" 0394 "mail-attachment-symbolic" 0395 "dialog-cancel" 0396 "preferences-desktop-emoticons" 0397 "document-open" 0398 "document-save" 0399 "document-send" 0400 "dialog-close" 0401 "edit-delete-remove" 0402 "code-context" 0403 "document-edit" 0404 "list-user-add" 0405 "list-add-user" 0406 "user-others" 0407 "media-playback-pause" 0408 "media-playback-start" 0409 "go-up" 0410 "go-down" 0411 "list-add" 0412 "irc-join-channel" 0413 "settings-configure" 0414 "configure" 0415 "rating" 0416 "rating-unrated" 0417 "search" 0418 "mail-replied-symbolic" 0419 "edit-copy" 0420 "gtk-quit" 0421 "compass" 0422 "network-connect" 0423 "notifications" 0424 "kstars_xplanet" 0425 "kstars_planets" 0426 "system-users" 0427 "go-home-large" 0428 "view-hidden" 0429 "favorite" 0430 "cell_edit" 0431 "office-chart-bar" 0432 "im-ban-kick-user" 0433 "user-group-properties" 0434 "microphone-sensitivity-muted" 0435 "cards-block" 0436 "system-search" 0437 "bookmarks" 0438 "checkmark" 0439 "lock" 0440 "edit-clear" 0441 "approved" 0442 "delete" 0443 "user-identity" 0444 "download" 0445 "edit-reset" 0446 "dialog-ok" 0447 "gnumeric-graphguru" 0448 "mail-message" 0449 "bookmark-new" 0450 "window-unpin" 0451 "pin" 0452 "edit-entry" 0453 "edit-cut" 0454 "system-switch-user" 0455 "note" 0456 "view-list-text" 0457 "view-filter" 0458 "preferences-desktop-theme-global" 0459 "preferences-desktop-notification" 0460 "preferences-system-users" 0461 "kde" 0462 "cloud-upload" 0463 "expand" 0464 "view-web-browser-dom-tree" 0465 "window" 0466 "emblem-shared-symbolic" 0467 "data-warning" 0468 "arrow-up" 0469 "arrow-down" 0470 "zoom-out" 0471 "zoom-in" 0472 "object-rotate-left" 0473 "object-rotate-right" 0474 "add-subtitle" 0475 "unlock" 0476 "dialog-warning-symbolic" 0477 "list-remove-user" 0478 ) 0479 else() 0480 target_link_libraries(tokodon PRIVATE Qt::Widgets) 0481 endif() 0482 0483 if (TARGET KF6::DBusAddons) 0484 target_link_libraries(tokodon PRIVATE KF6::DBusAddons KF6::WindowSystem) 0485 target_compile_definitions(tokodon PRIVATE -DHAVE_KDBUSADDONS) 0486 endif () 0487 0488 if(ANDROID) 0489 target_sources(tokodon PRIVATE notifyrc.qrc) 0490 0491 ecm_add_android_apk(tokodon ANDROID_DIR ${CMAKE_SOURCE_DIR}/android) 0492 else() 0493 install(FILES tokodon.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR}) 0494 0495 if (TARGET KUnifiedPush) 0496 configure_file(org.kde.tokodon.service.in ${CMAKE_CURRENT_BINARY_DIR}/org.kde.tokodon.service) 0497 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.tokodon.service DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}) 0498 endif() 0499 endif() 0500 0501 install(TARGETS tokodon ${KF6_INSTALL_TARGETS_DEFAULT_ARGS}) 0502 0503 if(BUILD_TESTING) 0504 add_definitions(-DDATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/autotests/data" ) 0505 0506 add_executable(tokodon-offline 0507 main.cpp 0508 autotests/mockaccount.cpp) 0509 target_compile_definitions(tokodon-offline PUBLIC TEST_MODE=1) 0510 target_link_libraries(tokodon-offline PRIVATE tokodon_static tokodon_staticplugin) 0511 target_include_directories(tokodon-offline PRIVATE ${CMAKE_BINARY_DIR}) 0512 0513 if (TARGET KF6::DBusAddons) 0514 target_link_libraries(tokodon-offline PRIVATE KF6::DBusAddons KF6::WindowSystem) 0515 target_compile_definitions(tokodon-offline PRIVATE -DHAVE_KDBUSADDONS) 0516 endif () 0517 0518 install(TARGETS tokodon-offline ${KF6_INSTALL_TARGETS_DEFAULT_ARGS}) 0519 endif() 0520 0521 if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT TOKODON_FLATPAK) 0522 add_subdirectory(purpose) 0523 endif ()