SRS 6.0-b0 源码 + danmaku 后端(排除 objs/3rdparty/测试媒体)
This commit is contained in:
Executable
+114
@@ -0,0 +1,114 @@
|
||||
# Name of the project.
|
||||
# Language "C" is required for find_package(Threads).
|
||||
if (CMAKE_VERSION VERSION_LESS 3.0)
|
||||
project(srs CXX C)
|
||||
else()
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
project(srs VERSION 4.0.0 LANGUAGES CXX C)
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
# For utest required C++11.
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
###########################################################
|
||||
execute_process(
|
||||
COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}/../../ && pwd"
|
||||
OUTPUT_VARIABLE SRS_DIR
|
||||
)
|
||||
string(STRIP ${SRS_DIR} SRS_DIR)
|
||||
message("SRS home is ${SRS_DIR}")
|
||||
|
||||
###########################################################
|
||||
# Start to configure SRS with jobs of number of CPUs.
|
||||
include(ProcessorCount)
|
||||
ProcessorCount(JOBS)
|
||||
|
||||
# We should always configure SRS for switching between branches.
|
||||
IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ./configure --osx --srt=on --gb28181=on --apm=on --h265=on --hds=on --utest=on --ffmpeg-opus=off --jobs=${JOBS}
|
||||
WORKING_DIRECTORY ${SRS_DIR} RESULT_VARIABLE ret)
|
||||
ELSE ()
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ./configure --srt=on --gb28181=on --apm=on --h265=on --hds=on --utest=on --ffmpeg-opus=off --jobs=${JOBS}
|
||||
WORKING_DIRECTORY ${SRS_DIR} RESULT_VARIABLE ret)
|
||||
ENDIF ()
|
||||
if(NOT ret EQUAL 0)
|
||||
message(FATAL_ERROR "FAILED: ${ret}")
|
||||
endif()
|
||||
|
||||
set(DEPS_LIBS ${SRS_DIR}/objs/st/libst.a
|
||||
${SRS_DIR}/objs/openssl/lib/libssl.a
|
||||
${SRS_DIR}/objs/openssl/lib/libcrypto.a
|
||||
${SRS_DIR}/objs/srtp2/lib/libsrtp2.a
|
||||
${SRS_DIR}/objs/ffmpeg/lib/libavcodec.a
|
||||
${SRS_DIR}/objs/ffmpeg/lib/libavutil.a
|
||||
${SRS_DIR}/objs/ffmpeg/lib/libswresample.a
|
||||
${SRS_DIR}/objs/opus/lib/libopus.a
|
||||
${SRS_DIR}/objs/srt/lib/libsrt.a)
|
||||
foreach(DEPS_LIB ${DEPS_LIBS})
|
||||
IF (NOT EXISTS ${DEPS_LIB})
|
||||
MESSAGE(FATAL_ERROR "${DEPS_LIB} not found")
|
||||
ELSE ()
|
||||
MESSAGE("${DEPS_LIB} is ok")
|
||||
ENDIF ()
|
||||
endforeach()
|
||||
|
||||
###########################################################
|
||||
# For whole project.
|
||||
INCLUDE_DIRECTORIES(${SRS_DIR}/objs
|
||||
${SRS_DIR}/objs/st
|
||||
${SRS_DIR}/objs/openssl/include
|
||||
${SRS_DIR}/objs/srtp2/include
|
||||
${SRS_DIR}/objs/ffmpeg/include
|
||||
${SRS_DIR}/objs/srt/include
|
||||
${SRS_DIR}/src/core
|
||||
${SRS_DIR}/src/kernel
|
||||
${SRS_DIR}/src/protocol
|
||||
${SRS_DIR}/src/app
|
||||
${SRS_DIR}/src/service)
|
||||
|
||||
# Common used sources for SRS and utest.
|
||||
AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/core SOURCE_FILES)
|
||||
AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/kernel SOURCE_FILES)
|
||||
AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/protocol SOURCE_FILES)
|
||||
AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/app SOURCE_FILES)
|
||||
|
||||
ADD_DEFINITIONS("-g -O0 -fsanitize=address -fno-omit-frame-pointer")
|
||||
|
||||
###########################################################
|
||||
# Setup SRS project
|
||||
|
||||
set(SRS_SOURCE_FILES ${SOURCE_FILES})
|
||||
list(APPEND SRS_SOURCE_FILES ${SRS_DIR}/src/main/srs_main_server.cpp)
|
||||
|
||||
ADD_EXECUTABLE(srs ${SRS_SOURCE_FILES})
|
||||
TARGET_LINK_LIBRARIES(srs dl)
|
||||
TARGET_LINK_LIBRARIES(srs ${DEPS_LIBS})
|
||||
TARGET_LINK_LIBRARIES(srs -ldl -pthread)
|
||||
TARGET_LINK_LIBRARIES(srs -rdynamic)
|
||||
TARGET_LINK_LIBRARIES(srs -fsanitize=address -fno-omit-frame-pointer)
|
||||
|
||||
###########################################################
|
||||
# For utest.
|
||||
# See https://google.github.io/googletest/quickstart-cmake.html
|
||||
# See https://stackoverflow.com/a/21479008/17679565
|
||||
ADD_SUBDIRECTORY(${SRS_DIR}/3rdparty/gtest-fit gtest-fit)
|
||||
INCLUDE_DIRECTORIES(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
|
||||
|
||||
INCLUDE_DIRECTORIES(${SRS_DIR}/src/utest)
|
||||
set(UTEST_SOURCE_FILES ${SOURCE_FILES})
|
||||
AUX_SOURCE_DIRECTORY(${SRS_DIR}/src/utest UTEST_SOURCE_FILES)
|
||||
|
||||
ADD_EXECUTABLE(utest ${UTEST_SOURCE_FILES})
|
||||
TARGET_LINK_LIBRARIES(utest gtest gtest_main)
|
||||
TARGET_LINK_LIBRARIES(utest dl)
|
||||
TARGET_LINK_LIBRARIES(utest ${DEPS_LIBS})
|
||||
TARGET_LINK_LIBRARIES(utest -ldl -pthread)
|
||||
TARGET_LINK_LIBRARIES(utest -fsanitize=address -fno-omit-frame-pointer)
|
||||
|
||||
###########################################################
|
||||
# Done
|
||||
MESSAGE(STATUS "@see https://ossrs.net/lts/zh-cn/docs/v5/doc/ide")
|
||||
|
||||
Reference in New Issue
Block a user