76 lines
2.5 KiB
CMake
76 lines
2.5 KiB
CMake
if(NOT TARGET cmvr_es::proto)
|
|
message(FATAL_ERROR "cmvr_quic_test_gateway requires cmvr_es::proto")
|
|
endif()
|
|
if(NOT TARGET cmvr_es::quic_edge_service)
|
|
message(FATAL_ERROR
|
|
"cmvr_quic_test_gateway requires cmvr_es::quic_edge_service")
|
|
endif()
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
add_library(cmvr_quic_test_gateway_lib STATIC
|
|
src/quic_test_gateway.cpp
|
|
src/media_reassembler.cpp
|
|
)
|
|
add_library(cmvr_es::quic_test_gateway ALIAS cmvr_quic_test_gateway_lib)
|
|
target_compile_features(cmvr_quic_test_gateway_lib PUBLIC cxx_std_17)
|
|
target_include_directories(cmvr_quic_test_gateway_lib
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
PRIVATE
|
|
${PROJECT_SOURCE_DIR}/cmvr-es
|
|
)
|
|
target_link_libraries(cmvr_quic_test_gateway_lib
|
|
PUBLIC
|
|
msquic
|
|
cmvr_es::proto
|
|
cmvr_es::quic_edge_service
|
|
Threads::Threads
|
|
)
|
|
|
|
add_executable(cmvr_quic_test_gateway src/main.cpp)
|
|
target_compile_features(cmvr_quic_test_gateway PRIVATE cxx_std_17)
|
|
target_link_libraries(cmvr_quic_test_gateway
|
|
PRIVATE cmvr_es::quic_test_gateway)
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/run_gateway.sh.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/run_cmvr_quic_test_gateway"
|
|
@ONLY)
|
|
file(CHMOD "${CMAKE_CURRENT_BINARY_DIR}/run_cmvr_quic_test_gateway"
|
|
PERMISSIONS
|
|
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
|
GROUP_READ GROUP_EXECUTE
|
|
WORLD_READ WORLD_EXECUTE)
|
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
|
target_compile_options(cmvr_quic_test_gateway_lib
|
|
PRIVATE -Wall -Wextra -Wpedantic)
|
|
target_compile_options(cmvr_quic_test_gateway
|
|
PRIVATE -Wall -Wextra -Wpedantic)
|
|
endif()
|
|
|
|
if(BUILD_TESTING)
|
|
add_executable(cmvr_quic_media_reassembler_test
|
|
tests/media_reassembler_test.cpp)
|
|
target_compile_features(cmvr_quic_media_reassembler_test PRIVATE cxx_std_17)
|
|
target_link_libraries(cmvr_quic_media_reassembler_test
|
|
PRIVATE cmvr_es::quic_test_gateway)
|
|
add_test(
|
|
NAME cmvr_quic_media_reassembler_test
|
|
COMMAND cmvr_quic_media_reassembler_test)
|
|
set_tests_properties(cmvr_quic_media_reassembler_test
|
|
PROPERTIES
|
|
LABELS "quic;unit"
|
|
TIMEOUT 10
|
|
ENVIRONMENT
|
|
"LD_LIBRARY_PATH=${CMVR_QUIC_TEST_LIBRARY_PATH}")
|
|
endif()
|
|
|
|
option(CMVR_INSTALL_QUIC_TEST_GATEWAY
|
|
"Install the development-only QUIC test gateway into output/bin"
|
|
OFF)
|
|
if(CMVR_INSTALL_QUIC_TEST_GATEWAY)
|
|
install(TARGETS cmvr_quic_test_gateway RUNTIME DESTINATION bin)
|
|
endif()
|