-
Notifications
You must be signed in to change notification settings - Fork 5
/
CMakeLists.txt
80 lines (68 loc) · 2.89 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
cmake_minimum_required(VERSION 3.0)
project(r5)
set(webrtc_repo_branch branch-heads/m79)
add_subdirectory(third_party)
add_subdirectory(protos)
add_subdirectory("${PROJECT_SOURCE_DIR}/third_party/googletest" "third_party/googletest")
add_library(r5_internal_src
src/call_data_status.cpp
src/helpers.cpp
src/log.cpp
src/peer.cpp
src/r5_audio_decoder_factory.cpp
src/r5_call_data_destroy_peer.cpp
src/r5_peer_container.cpp
src/r5_call_data_set_remote_description.cpp
src/r5_peer_factory.cpp
src/r5_call_data_create_peer.cpp
src/r5_rtp_packet_sender_factory.cpp
src/r5_rtp_packet_sender.cpp
src/r5_video_decoder_factory.cpp)
target_include_directories(r5_internal_src PUBLIC
src)
target_link_libraries(r5_internal_src PUBLIC
webrtc grpc++ gpr r5_proto_and_grpc)
target_compile_options(r5_internal_src PUBLIC
-fvisibility=hidden)
add_executable(r5
src/r5.cpp)
set_target_properties(r5 PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF)
target_link_libraries(r5 PRIVATE r5_internal_src)
add_executable(r5client
src/log.cpp
src/r5_client.cpp)
set_target_properties(r5client PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF)
target_link_libraries(r5client PRIVATE grpc++ gpr r5_proto_and_grpc)
# ref. https://cliutils.gitlab.io/modern-cmake/chapters/testing/googletest.html
enable_testing()
macro(package_add_test TESTNAME)
add_executable(${TESTNAME} ${ARGN})
set_target_properties(${TESTNAME} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF)
target_link_libraries(${TESTNAME} r5_internal_src gmock gmock_main)
target_include_directories(${TESTNAME} PRIVATE
"${CMAKE_SOURCE_DIR}/third_party/googletest/googletest/include"
"${CMAKE_SOURCE_DIR}/third_party/googletest/googlemock/include"
"${CMAKE_SOURCE_DIR}/src"
"${CMAKE_SOURCE_DIR}/test")
add_test(NAME ${TESTNAME} COMMAND ${TESTNAME})
set_target_properties(${TESTNAME} PROPERTIES FOLDER tests)
endmacro()
package_add_test(helpers_test test/helpers_test.cpp)
package_add_test(r5_audio_decoder_factory_test test/r5_audio_decoder_factory_test.cpp)
package_add_test(r5_call_data_create_peer_test test/r5_call_data_create_peer_test.cpp)
package_add_test(r5_call_data_destroy_peer_test test/r5_call_data_destroy_peer_test.cpp)
package_add_test(r5_call_data_set_remote_description_test test/r5_call_data_set_remote_description_test.cpp)
package_add_test(r5_peer_container_test test/r5_peer_container_test.cpp)
package_add_test(r5_peer_factory_test test/r5_peer_factory_test.cpp)
package_add_test(r5_rtp_packet_sender_factory_test test/r5_rtp_packet_sender_factory_test.cpp)
package_add_test(r5_video_decoder_factory_test test/r5_video_decoder_factory_test.cpp)
package_add_test(webrtc_jsep_session_description_test test/webrtc_jsep_session_description_test.cpp)