fangorn/sunshine-qemu
public
ref:main
# Headless Moonlight client for Sunshine end-to-end tests.
#
# Standalone project, not part of the Sunshine build: it needs the full moonlight-common-c library
# (Sunshine only compiles a few of its sources) and a decoder-enabled FFmpeg.
#
# cmake -S tests/e2e/moonlight_client -B cmake-build-e2e-client -G Ninja
# ninja -C cmake-build-e2e-client
cmake_minimum_required(VERSION 3.20)
project(sunshine_e2e_moonlight_client LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(SUNSHINE_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../..")
set(BUILD_SHARED_LIBS OFF)
add_subdirectory("${SUNSHINE_SOURCE_ROOT}/third-party/moonlight-common-c"
"${CMAKE_CURRENT_BINARY_DIR}/moonlight-common-c")
find_package(Threads REQUIRED)
find_package(CURL REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavutil libswscale)
add_executable(moonlight_e2e_client
main.cpp
gamestream.h
gamestream.cpp)
target_include_directories(moonlight_e2e_client PRIVATE
"${SUNSHINE_SOURCE_ROOT}/third-party/moonlight-common-c/src")
target_link_libraries(moonlight_e2e_client PRIVATE
moonlight-common-c
CURL::libcurl
OpenSSL::SSL
OpenSSL::Crypto
PkgConfig::FFMPEG
Threads::Threads)