52 lines
1.8 KiB
Text
52 lines
1.8 KiB
Text
|
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
project(decklink-bridge CXX C)
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
set(CMAKE_C_STANDARD 11)
|
||
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O2")
|
||
|
|
|
||
|
|
# Path to DeckLink SDK headers (services/capture/sdk/)
|
||
|
|
set(DECKLINK_SDK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../sdk"
|
||
|
|
CACHE PATH "Path to Blackmagic DeckLink SDK headers")
|
||
|
|
|
||
|
|
# Path to Deltacast bridge (for fc_writer.h/c — shared writer module)
|
||
|
|
set(DELTACAST_BRIDGE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../deltacast-bridge"
|
||
|
|
CACHE PATH "Path to deltacast-bridge (contains fc_writer.h/c)")
|
||
|
|
|
||
|
|
# Legacy FIFO fallback option (mirrors deltacast-bridge option)
|
||
|
|
option(LEGACY_FIFO "Use named FIFOs instead of framecache shm" OFF)
|
||
|
|
|
||
|
|
# ── decklink-bridge executable ────────────────────────────────────────
|
||
|
|
add_executable(decklink-bridge
|
||
|
|
main.cpp
|
||
|
|
${DELTACAST_BRIDGE_DIR}/fc_writer.c # shared framecache writer
|
||
|
|
)
|
||
|
|
|
||
|
|
if(LEGACY_FIFO)
|
||
|
|
target_compile_definitions(decklink-bridge PRIVATE LEGACY_FIFO=1)
|
||
|
|
message(STATUS "decklink-bridge: LEGACY_FIFO mode enabled")
|
||
|
|
else()
|
||
|
|
message(STATUS "decklink-bridge: framecache shm mode enabled")
|
||
|
|
endif()
|
||
|
|
|
||
|
|
target_include_directories(decklink-bridge PRIVATE
|
||
|
|
${DECKLINK_SDK_DIR}
|
||
|
|
${DELTACAST_BRIDGE_DIR} # fc_writer.h
|
||
|
|
)
|
||
|
|
|
||
|
|
target_link_libraries(decklink-bridge PRIVATE
|
||
|
|
pthread
|
||
|
|
rt # shm_open, sem_open
|
||
|
|
dl # dlopen (used by DeckLinkAPIDispatch.cpp on Linux)
|
||
|
|
)
|
||
|
|
|
||
|
|
# DeckLink driver is linked at runtime via dlopen (no link-time .so needed).
|
||
|
|
# The SDK's DeckLinkAPIDispatch.cpp handles the dynamic loading.
|
||
|
|
|
||
|
|
set_target_properties(decklink-bridge PROPERTIES
|
||
|
|
INSTALL_RPATH "/usr/local/lib"
|
||
|
|
BUILD_WITH_INSTALL_RPATH TRUE
|
||
|
|
)
|
||
|
|
|
||
|
|
install(TARGETS decklink-bridge DESTINATION bin)
|