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/AnnotationTool.cpp
0040     Gui/Annotations/AnnotationViewport.cpp
0041     Gui/Annotations/EffectUtils.cpp
0042     Gui/Annotations/History.cpp
0043     Gui/Annotations/QmlPainterPath.cpp
0044     Gui/Annotations/Traits.cpp
0045     Gui/SettingsDialog/ImageSaveOptionsPage.cpp
0046     Gui/SettingsDialog/VideoSaveOptionsPage.cpp
0047     Gui/SettingsDialog/SettingsDialog.cpp
0048     Gui/SettingsDialog/GeneralOptionsPage.cpp
0049     Gui/SettingsDialog/ShortcutsOptionsPage.cpp
0050     Platforms/PlatformLoader.cpp
0051     Platforms/ImagePlatform.cpp
0052     Platforms/PlatformNull.cpp
0053     Platforms/ImagePlatformKWin.cpp
0054     Platforms/VideoPlatform.cpp
0055     Platforms/VideoPlatformWayland.cpp
0056     Platforms/screencasting.cpp
0057 )
0058 
0059 # exceptions are needed for code using ZXing
0060 kde_source_files_enable_exceptions(ExportManager.cpp)
0061 
0062 if(XCB_FOUND)
0063     target_sources(spectacle PRIVATE Platforms/ImagePlatformXcb.cpp Platforms/ImagePlatformXcb.h)
0064 
0065     target_link_libraries(spectacle PRIVATE
0066         XCB::XFIXES
0067         XCB::IMAGE
0068         XCB::CURSOR
0069         XCB::UTIL
0070         XCB::RANDR
0071     )
0072     target_link_libraries(spectacle PRIVATE Qt6::GuiPrivate) # Gui/private/qtx11extras_p.h
0073 endif()
0074 
0075 qt6_generate_wayland_protocol_client_sources(spectacle FILES
0076     ${PLASMA_WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1.xml)
0077 
0078 
0079 if(PURPOSE_FOUND)
0080     target_link_libraries(spectacle PRIVATE KF6::PurposeWidgets)
0081 endif()
0082 
0083 ki18n_wrap_ui(spectacle
0084     Gui/SettingsDialog/GeneralOptions.ui
0085     Gui/SettingsDialog/ImageSaveOptions.ui
0086     Gui/SettingsDialog/VideoSaveOptions.ui
0087 )
0088 
0089 target_link_libraries(spectacle PRIVATE
0090     Qt::Concurrent
0091     Qt::DBus
0092     Qt::PrintSupport
0093     Qt::Qml
0094     Qt::Quick
0095     Qt::QuickControls2
0096     Qt::QuickTemplates2
0097     Qt::GuiPrivate
0098     Qt::WaylandClient
0099     KF6::CoreAddons
0100     KF6::DBusAddons
0101     KF6::WidgetsAddons
0102     KF6::Notifications
0103     KF6::ConfigCore
0104     KF6::I18n
0105     KF6::KIOWidgets
0106     KF6::WindowSystem
0107     KF6::GlobalAccel
0108     KF6::XmlGui
0109     KF6::GuiAddons
0110     KF6::KirigamiPlatform
0111     K::KPipeWireRecord
0112     Wayland::Client
0113     LayerShellQt::Interface
0114     ZXing::Core
0115 )
0116 
0117 set_source_files_properties(Gui/QmlUtils.qml PROPERTIES
0118   QT_QML_SINGLETON_TYPE TRUE
0119 )
0120 
0121 qt_add_qml_module(spectacle
0122     URI ${SPECTACLE_QML_URI}
0123     QML_FILES
0124     Gui/AnimatedLoader.qml
0125     Gui/AnnotationOptionsToolBarContents.qml
0126     Gui/Annotations/AnnotationEditor.qml
0127     Gui/Annotations/HoverOutline.qml
0128     Gui/Annotations/ResizeHandles.qml
0129     Gui/Annotations/SelectionBackground.qml
0130     Gui/Annotations/TextTool.qml
0131     Gui/AnnotationsToolBarContents.qml
0132     Gui/ButtonGrid.qml
0133     Gui/CaptureModeButtonsColumn.qml
0134     Gui/CaptureOptions.qml
0135     Gui/CaptureSettingsColumn.qml
0136     Gui/CopiedMessage.qml
0137     Gui/DelaySpinBox.qml
0138     Gui/DialogPage.qml
0139     Gui/EmptyPage.qml
0140     Gui/FloatingBackground.qml
0141     Gui/FloatingToolBar.qml
0142     Gui/Handle.qml
0143     Gui/ImageCaptureOverlay.qml
0144     Gui/ImageView.qml
0145     Gui/InlineMessage.qml
0146     Gui/LocationCopiedMessage.qml
0147     Gui/Magnifier.qml
0148     Gui/MainToolBarContents.qml
0149     Gui/QmlUtils.qml
0150     Gui/QRCodeScannedMessage.qml
0151     Gui/RecordOptions.qml
0152     Gui/RecordingFailedMessage.qml
0153     Gui/RecordingView.qml
0154     Gui/SavedAndCopiedMessage.qml
0155     Gui/SavedAndLocationCopied.qml
0156     Gui/SavedMessage.qml
0157     Gui/ScreenshotFailedMessage.qml
0158     Gui/ScreenshotView.qml
0159     Gui/ShareErrorMessage.qml
0160     Gui/SharedMessage.qml
0161     Gui/ShortcutsTextBox.qml
0162     Gui/SizeLabel.qml
0163     Gui/UndoRedoGroup.qml
0164     Gui/VideoCaptureOverlay.qml
0165 )
0166 
0167 install(TARGETS spectacle ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})