cmake_minimum_required(VERSION 3.24) project(wayland-shot VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets DBus Test) qt_standard_project_setup() set(WAYLAND_SHOT_SOURCES src/main.cpp src/app/Application.cpp src/app/EditorWindow.cpp src/capture/PlaceholderCaptureBackend.cpp src/capture/PortalCaptureBackend.cpp src/editor/EditorCanvas.cpp src/export/ExportService.cpp src/model/EditorDocument.cpp ) set(WAYLAND_SHOT_HEADERS src/app/Application.h src/app/EditorWindow.h src/capture/CaptureBackend.h src/capture/PlaceholderCaptureBackend.h src/capture/PortalCaptureBackend.h src/editor/EditorCanvas.h src/export/ExportService.h src/model/Annotation.h src/model/EditorDocument.h ) qt_add_executable(wayland-shot ${WAYLAND_SHOT_SOURCES} ${WAYLAND_SHOT_HEADERS} ) target_include_directories(wayland-shot PRIVATE src) target_link_libraries(wayland-shot PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::DBus) qt_add_executable(wayland-shot-editor-document-test tests/unit/editor_document_test.cpp src/model/EditorDocument.cpp src/model/EditorDocument.h src/model/Annotation.h ) target_include_directories(wayland-shot-editor-document-test PRIVATE src) target_link_libraries(wayland-shot-editor-document-test PRIVATE Qt6::Core Qt6::Gui Qt6::Test) enable_testing() add_test(NAME wayland-shot-editor-document-test COMMAND wayland-shot-editor-document-test) set_tests_properties( wayland-shot-editor-document-test PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen;LANG=C.UTF-8" )