2026-09-06 21:22:14 -07:00
|
|
|
cmake_minimum_required(VERSION 3.19)
|
2026-09-06 20:46:08 -07:00
|
|
|
|
|
|
|
|
project(obs-streamer-tools-plugin
|
2026-09-06 21:22:14 -07:00
|
|
|
VERSION 0.1.0
|
|
|
|
|
DESCRIPTION "OBS Studio source plugin for streamer-tools camera feeds"
|
2026-09-06 20:46:08 -07:00
|
|
|
LANGUAGES C CXX
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
|
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
2026-09-06 21:22:14 -07:00
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
|
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
|
|
|
|
|
endif()
|
|
|
|
|
|
2026-09-06 20:46:08 -07:00
|
|
|
enable_testing()
|
|
|
|
|
|
2026-09-06 21:22:14 -07:00
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
|
|
|
|
|
|
# --- LiveKit C++ client SDK -------------------------------------------------
|
|
|
|
|
# Pinned, prebuilt release of livekit/client-sdk-cpp, downloaded and unpacked
|
|
|
|
|
# by cmake/LiveKitSDK.cmake, then consumed through its own CMake package
|
|
|
|
|
# config as the LiveKit::livekit imported target. See the design doc's
|
|
|
|
|
# "Resolved (2026-09-07)" section: an exact pin, never "latest".
|
|
|
|
|
set(STPLUGIN_LIVEKIT_SDK_VERSION "1.10.1" CACHE STRING
|
|
|
|
|
"Pinned livekit/client-sdk-cpp release version")
|
|
|
|
|
set(STPLUGIN_LIVEKIT_SDK_TRIPLE "" CACHE STRING
|
|
|
|
|
"Override the client-sdk-cpp release triple (e.g. ubuntu-24.04-x64); empty = autodetect")
|
|
|
|
|
set(STPLUGIN_LIVEKIT_SDK_DIR "${CMAKE_BINARY_DIR}/_deps/livekit-sdk" CACHE PATH
|
|
|
|
|
"Directory the client-sdk-cpp release archive is extracted into (point at a persistent path to cache it across CI builds)")
|
|
|
|
|
|
|
|
|
|
include(LiveKitSDK)
|
|
|
|
|
if(STPLUGIN_LIVEKIT_SDK_TRIPLE)
|
|
|
|
|
livekit_sdk_setup(
|
|
|
|
|
VERSION "${STPLUGIN_LIVEKIT_SDK_VERSION}"
|
|
|
|
|
SDK_DIR "${STPLUGIN_LIVEKIT_SDK_DIR}"
|
|
|
|
|
TRIPLE "${STPLUGIN_LIVEKIT_SDK_TRIPLE}"
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
livekit_sdk_setup(
|
|
|
|
|
VERSION "${STPLUGIN_LIVEKIT_SDK_VERSION}"
|
|
|
|
|
SDK_DIR "${STPLUGIN_LIVEKIT_SDK_DIR}"
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
find_package(LiveKit CONFIG REQUIRED)
|
2026-09-06 20:46:08 -07:00
|
|
|
|
|
|
|
|
add_subdirectory(core)
|
|
|
|
|
|
|
|
|
|
find_package(libobs QUIET)
|
|
|
|
|
if(libobs_FOUND)
|
|
|
|
|
message(STATUS "libobs found (${libobs_DIR}) -- building OBS adapter module")
|
|
|
|
|
add_subdirectory(obs-adapter)
|
|
|
|
|
else()
|
|
|
|
|
message(WARNING "libobs NOT found -- skipping OBS adapter module; core library still builds/tests")
|
|
|
|
|
endif()
|