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

0001 # common - configure file and version definitions
0002 
0003 set(SPECTACLE_QML_URI "org.kde.spectacle.private")
0004 set(SPECTACLE_QML_PATH "qrc:/qt/qml/org/kde/spectacle/private")
0005 configure_file(Config.h.in ${CMAKE_CURRENT_BINARY_DIR}/Config.h)
0006 
0007 # target
0008 
0009 kconfig_add_kcfg_files(SPECTACLE_SRCS GENERATE_MOC Gui/SettingsDialog/settings.kcfgc)
0010 
0011 ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_core_debug.h IDENTIFIER SPECTACLE_CORE_LOG CATEGORY_NAME org.kde.spectacle.core DESCRIPTION "spectacle (core)" EXPORT SPECTACLE)
0012 ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_gui_debug.h IDENTIFIER SPECTACLE_GUI_LOG CATEGORY_NAME org.kde.spectacle.gui DESCRIPTION "spectacle (gui)" EXPORT SPECTACLE)
0013 
0014 add_executable(spectacle
0015     ${SPECTACLE_SRCS}
0016     Main.cpp
0017     CaptureModeModel.cpp
0018     CommandLineOptions.cpp
0019     RecordingModeModel.cpp
0020     ExportManager.cpp
0021     Geometry.cpp
0022     PlasmaVersion.cpp
0023     ScreenShotEffect.cpp
0024     SpectacleCore.cpp
0025     SpectacleDBusAdapter.cpp
0026     ShortcutActions.cpp
0027     VideoFormatModel.cpp
0028     Gui/CaptureWindow.cpp
0029     Gui/ExportMenu.cpp
0030     Gui/HelpMenu.cpp
0031     Gui/OptionsMenu.cpp
0032     Gui/SmartSpinBox.cpp
0033     Gui/Selection.cpp
0034     Gui/SelectionEditor.cpp
0035     Gui/SpectacleWindow.cpp
0036     Gui/SpectacleMenu.cpp
0037     Gui/ViewerWindow.cpp
0038     Gui/Annotations/AnnotationDocument.cpp
0039     Gui/Annotations/AnnotationViewport.cpp
0040     Gui/Annotations/EditAction.cpp
0041     Gui/Annotations/EffectUtils.cpp
0042     Gui/SettingsDialog/ImageSaveOptionsPage.cpp
0043     Gui/SettingsDialog/VideoSaveOptionsPage.cpp
0044     Gui/SettingsDialog/SettingsDialog.cpp
0045     Gui/SettingsDialog/GeneralOptionsPage.cpp
0046     Gui/SettingsDialog/ShortcutsOptionsPage.cpp
0047     Platforms/PlatformLoader.cpp
0048     Platforms/ImagePlatform.cpp
0049     Platforms/PlatformNull.cpp
0050     Platforms/ImagePlatformKWin.cpp
0051     Platforms/VideoPlatform.cpp
0052     Platforms/VideoPlatformWayland.cpp
0053     Platforms/screencasting.cpp
0054 )
0055 
0056 if(XCB_FOUND)
0057     target_sources(spectacle PRIVATE Platforms/ImagePlatformXcb.cpp Platforms/ImagePlatformXcb.h)
0058 
0059     target_link_libraries(spectacle PRIVATE
0060         XCB::XFIXES
0061         XCB::IMAGE
0062         XCB::CURSOR
0063         XCB::UTIL
0064         XCB::RANDR
0065     )
0066     target_link_libraries(spectacle PRIVATE Qt6::GuiPrivate) # Gui/private/qtx11extras_p.h
0067 endif()
0068 
0069 qt6_generate_wayland_protocol_client_sources(spectacle FILES
0070     ${PLASMA_WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1.xml)
0071 
0072 
0073 if(PURPOSE_FOUND)
0074     target_link_libraries(spectacle PRIVATE KF6::PurposeWidgets)
0075 endif()
0076 
0077 ki18n_wrap_ui(spectacle
0078     Gui/SettingsDialog/GeneralOptions.ui
0079     Gui/SettingsDialog/ImageSaveOptions.ui
0080     Gui/SettingsDialog/VideoSaveOptions.ui
0081 )
0082 
0083 target_link_libraries(spectacle PRIVATE
0084     Qt::Concurrent
0085     Qt::DBus
0086     Qt::PrintSupport
0087     Qt::Qml
0088     Qt::Quick
0089     Qt::QuickControls2
0090     Qt::QuickTemplates2
0091     Qt::GuiPrivate
0092     Qt::WaylandClient
0093     KF6::CoreAddons
0094     KF6::DBusAddons
0095     KF6::WidgetsAddons
0096     KF6::Notifications
0097     KF6::ConfigCore
0098     KF6::I18n
0099     KF6::KIOWidgets
0100     KF6::WindowSystem
0101     KF6::GlobalAccel
0102     KF6::XmlGui
0103     KF6::GuiAddons
0104     KF6::KirigamiPlatform
0105     K::KPipeWireRecord
0106     Wayland::Client
0107     LayerShellQt::Interface
0108 )
0109 
0110 set_source_files_properties(Gui/QmlUtils.qml PROPERTIES
0111   QT_QML_SINGLETON_TYPE TRUE
0112 )
0113 
0114 qt_add_qml_module(spectacle
0115     URI ${SPECTACLE_QML_URI}
0116     QML_FILES
0117     Gui/AnimatedLoader.qml
0118     Gui/AnnotationOptionsToolBarContents.qml
0119     Gui/Annotations/AnnotationEditor.qml
0120     Gui/Annotations/HoverOutline.qml
0121     Gui/Annotations/ResizeHandles.qml
0122     Gui/Annotations/SelectionBackground.qml
0123     Gui/Annotations/TextTool.qml
0124     Gui/AnnotationsToolBarContents.qml
0125     Gui/ButtonGrid.qml
0126     Gui/CaptureModeButtonsColumn.qml
0127     Gui/CaptureOptions.qml
0128     Gui/CaptureSettingsColumn.qml
0129     Gui/CopiedMessage.qml
0130     Gui/DelaySpinBox.qml
0131     Gui/DialogPage.qml
0132     Gui/EmptyPage.qml
0133     Gui/FloatingBackground.qml
0134     Gui/FloatingToolBar.qml
0135     Gui/ImageCaptureOverlay.qml
0136     Gui/ImageView.qml
0137     Gui/InlineMessage.qml
0138     Gui/LocationCopiedMessage.qml
0139     Gui/Magnifier.qml
0140     Gui/MainToolBarContents.qml
0141     Gui/QmlUtils.qml
0142     Gui/RecordOptions.qml
0143     Gui/RecordingFailedMessage.qml
0144     Gui/RecordingView.qml
0145     Gui/SavedAndCopiedMessage.qml
0146     Gui/SavedAndLocationCopied.qml
0147     Gui/SavedMessage.qml
0148     Gui/ScreenshotFailedMessage.qml
0149     Gui/ScreenshotView.qml
0150     Gui/ShareErrorMessage.qml
0151     Gui/SharedMessage.qml
0152     Gui/ShortcutsTextBox.qml
0153     Gui/SizeLabel.qml
0154     Gui/UndoRedoGroup.qml
0155     Gui/VideoCaptureOverlay.qml
0156 )
0157 
0158 install(TARGETS spectacle ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})