40 lines
1.6 KiB
Text
40 lines
1.6 KiB
Text
|
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
project(framecache C)
|
||
|
|
|
||
|
|
set(CMAKE_C_STANDARD 11)
|
||
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -O2")
|
||
|
|
|
||
|
|
# ── libmicrohttpd ────────────────────────────────────────────────────
|
||
|
|
find_library(MHD_LIB microhttpd REQUIRED)
|
||
|
|
find_path(MHD_INCLUDE microhttpd.h REQUIRED)
|
||
|
|
include_directories(${MHD_INCLUDE})
|
||
|
|
|
||
|
|
# ── framecache server ────────────────────────────────────────────────
|
||
|
|
add_executable(framecache
|
||
|
|
src/framecache.c
|
||
|
|
src/slot.c
|
||
|
|
src/registry.c
|
||
|
|
)
|
||
|
|
target_link_libraries(framecache ${MHD_LIB} rt pthread)
|
||
|
|
|
||
|
|
# ── fc_client static library (used by bridges + test) ───────────────
|
||
|
|
add_library(fc_client STATIC
|
||
|
|
client/fc_client.c
|
||
|
|
src/slot.c # client needs fc_slot_shm_size / fc_frame_at
|
||
|
|
)
|
||
|
|
target_include_directories(fc_client PUBLIC src client)
|
||
|
|
target_link_libraries(fc_client rt pthread)
|
||
|
|
|
||
|
|
# ── test consumer (dev utility) ──────────────────────────────────────
|
||
|
|
if(BUILD_TESTS)
|
||
|
|
add_executable(fc_test_consumer
|
||
|
|
client/fc_test_consumer.c
|
||
|
|
)
|
||
|
|
target_link_libraries(fc_test_consumer fc_client)
|
||
|
|
target_include_directories(fc_test_consumer PRIVATE src client)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
install(TARGETS framecache DESTINATION bin)
|
||
|
|
install(FILES client/fc_client.h src/slot.h DESTINATION include/framecache)
|
||
|
|
install(TARGETS fc_client DESTINATION lib)
|