95 lines
2.9 KiB
CMake
95 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.10.0)
|
|
|
|
project(Hyperion_Grabber_Wayland_QT VERSION 0.2 LANGUAGES C CXX)
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Option to enable DebugClient
|
|
option(USE_DEBUG_CLIENT "Use DebugClient for terminal output instead of WLEDClient" OFF)
|
|
if(USE_DEBUG_CLIENT)
|
|
add_compile_definitions(DEBUG_MODE)
|
|
endif()
|
|
|
|
find_package(Qt6 COMPONENTS Core Gui WaylandClient Multimedia Widgets MultimediaWidgets Network OpenGL REQUIRED)
|
|
|
|
add_executable(Hyperion_Grabber_Wayland_QT
|
|
hyperiongrabber.cpp
|
|
wledclient.cpp
|
|
debugclient.cpp # Added debugclient.cpp
|
|
main.cpp
|
|
WaylandGrabber.cpp
|
|
wledconfigclient.cpp
|
|
LedColorMapping.cpp
|
|
BlackBorderDetector.cpp
|
|
HyperionProcessor.cpp
|
|
LinearColorSmoothing.cpp
|
|
)
|
|
|
|
target_link_libraries(Hyperion_Grabber_Wayland_QT
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::WaylandClient
|
|
Qt6::Multimedia
|
|
Qt6::Widgets
|
|
Qt6::MultimediaWidgets
|
|
Qt6::Network
|
|
Qt6::OpenGL
|
|
${PIPEWIRE_LIBRARIES}
|
|
)
|
|
|
|
add_executable(hyperion-mock
|
|
hyperion-mock.cpp
|
|
)
|
|
|
|
target_link_libraries(hyperion-mock
|
|
Qt6::Core
|
|
Qt6::Network
|
|
Qt6::Gui
|
|
)
|
|
|
|
|
|
|
|
add_executable(screen_capture_test
|
|
screen_capture_test.cpp
|
|
)
|
|
|
|
target_link_libraries(screen_capture_test
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::Widgets
|
|
Qt6::MultimediaWidgets
|
|
)
|
|
|
|
|
|
find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
|
|
|
|
set(WAYLAND_PROTOCOLS_DIR "${CMAKE_CURRENT_BINARY_DIR}/wayland_protocols")
|
|
file(MAKE_DIRECTORY ${WAYLAND_PROTOCOLS_DIR})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WAYLAND_PROTOCOLS_DIR}/qwayland-zkde-screencast-unstable-v1.h
|
|
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header "${CMAKE_CURRENT_SOURCE_DIR}/cloned_repos/plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml" ${WAYLAND_PROTOCOLS_DIR}/qwayland-zkde-screencast-unstable-v1.h
|
|
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/cloned_repos/plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml"
|
|
COMMENT "Generating Wayland client header for zkde-screencast-unstable-v1"
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1-client-protocol.h
|
|
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code "${CMAKE_CURRENT_SOURCE_DIR}/cloned_repos/plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml" ${WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1-client-protocol.h
|
|
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/cloned_repos/plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml"
|
|
COMMENT "Generating Wayland client protocol code for zkde-screencast-unstable-v1"
|
|
)
|
|
|
|
add_custom_target(generate_wayland_protocols ALL
|
|
DEPENDS ${WAYLAND_PROTOCOLS_DIR}/qwayland-zkde-screencast-unstable-v1.h
|
|
${WAYLAND_PROTOCOLS_DIR}/zkde-screencast-unstable-v1-client-protocol.h
|
|
)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(PIPEWIRE REQUIRED libpipewire-0.3)
|