diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 5b97329f..58580e60 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -14,7 +14,7 @@ jobs: run: mv -f .gitmodules_github .gitmodules && git submodule sync && git submodule update --init - name: apt-get安装依赖库(非必选) - run: sudo apt-get update && sudo apt-get install -y cmake libssl-dev libsdl-dev libavcodec-dev libavutil-dev libswscale-dev libresample-dev + run: sudo apt-get update && sudo apt-get install -y cmake libssl-dev libsdl-dev libavcodec-dev libavutil-dev libswscale-dev libresample-dev libusrsctp-dev - name: 下载 SRTP uses: actions/checkout@v2 diff --git a/webrtc/CMakeLists.txt b/webrtc/CMakeLists.txt index 87daf5b3..251e4038 100644 --- a/webrtc/CMakeLists.txt +++ b/webrtc/CMakeLists.txt @@ -35,12 +35,17 @@ include_directories(SYSTEM ${SRTP_INCLUDE_DIRS}) set(LINK_LIBRARIES ${SRTP_LIBRARIES}) +set(COMPILE_DEFINITIONS) +set(INCLUDE_DIRECTORIES) + find_package(SCTP QUIET) if(SCTP_FOUND) message(STATUS "found library: ${SCTP_INCLUDE_DIRS} ${SCTP_LIBRARIES}") include_directories(SYSTEM ${SCTP_INCLUDE_DIRS}) - update_cached_list(MK_COMPILE_DEFINITIONS ENABLE_SCTP) - update_cached_list(LINK_LIBRARIES ${SCTP_LIBRARIES}) + # TODO: 避免暴露 SCTP 到 WebRTC 模块外 + list(APPEND COMPILE_DEFINITIONS ENABLE_SCTP) + list(APPEND INCLUDE_DIRECTORIES ${SCTP_INCLUDE_DIRS}) + list(APPEND LINK_LIBRARIES ${SCTP_LIBRARIES}) message(STATUS "WebRTC datachannel 功能已打开") endif() @@ -50,19 +55,22 @@ file(GLOB WEBRTC_SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) add_library(webrtc ${WEBRTC_SRC_LIST}) add_library(ZLMediaKit::WebRTC ALIAS webrtc) +target_compile_definitions(webrtc + # ENABLE_SCTP 暂时需要暴露 + PUBLIC ${COMPILE_DEFINITIONS}) target_compile_options(webrtc PRIVATE ${COMPILE_OPTIONS_DEFAULT}) target_link_libraries(webrtc PRIVATE ZLMediaKit::MediaKit ZLMediaKit::ToolKit - PUBLIC ${LINK_LIBRARIES}) target_include_directories(webrtc PRIVATE "$" PUBLIC - "$") + "$" + ${INCLUDE_DIRECTORIES}) message(STATUS "WebRTC 功能已开启")