1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

[IDE] Support CLion and cmake to build and debug SRS. 4.0.141

1. Remove all except JetBrains clion by cmake
2. Add .run/srs.run.xml for debugging for CLion.
3. Auto configure SRS when load CMakeLists.txt
This commit is contained in:
winlin 2021-07-16 07:29:55 +08:00
parent 3182dee1c5
commit c209e547a8
17 changed files with 82 additions and 2284 deletions

View file

@ -1,6 +1,34 @@
cmake_minimum_required(VERSION 2.6.4)
cmake_minimum_required(VERSION 2.8.12)
project(srs CXX)
###########################################################
# Start to configure SRS with jobs of number of CPUs.
include(ProcessorCount)
ProcessorCount(JOBS)
set(DEPS_LIBS ${PROJECT_SOURCE_DIR}/../../objs/st/libst.a
${PROJECT_SOURCE_DIR}/../../objs/openssl/lib/libssl.a
${PROJECT_SOURCE_DIR}/../../objs/openssl/lib/libcrypto.a
${PROJECT_SOURCE_DIR}/../../objs/srtp2/lib/libsrtp2.a
${PROJECT_SOURCE_DIR}/../../objs/opus/lib/libopus.a
${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libavutil.a
${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libavcodec.a
${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libswresample.a)
foreach(DEPS_LIB ${DEPS_LIBS})
IF (NOT EXISTS ${DEPS_LIB})
MESSAGE("${DEPS_LIB} not found")
IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
EXEC_PROGRAM("cd ../../.. && ./configure --osx --jobs=${JOBS}")
ELSE ()
EXEC_PROGRAM("cd ../../.. && ./configure --jobs=${JOBS}")
ENDIF ()
ELSE ()
MESSAGE("${DEPS_LIB} is ok")
ENDIF ()
endforeach()
###########################################################
# Setup SRS project
INCLUDE_DIRECTORIES(../../objs
../../objs/st
../../objs/hp
@ -19,31 +47,13 @@ AUX_SOURCE_DIRECTORY(../../src/core SOURCE_FILES)
AUX_SOURCE_DIRECTORY(../../src/kernel SOURCE_FILES)
AUX_SOURCE_DIRECTORY(../../src/protocol SOURCE_FILES)
AUX_SOURCE_DIRECTORY(../../src/app SOURCE_FILES)
AUX_SOURCE_DIRECTORY(../../src/service SOURCE_FILES)
ADD_DEFINITIONS("-g -O0")
ADD_EXECUTABLE(srs ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(srs dl)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/st/libst.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/openssl/lib/libssl.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/openssl/lib/libcrypto.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/srtp2/lib/libsrtp2.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/opus/lib/libopus.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libavutil.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libavcodec.a)
TARGET_LINK_LIBRARIES(srs ${PROJECT_SOURCE_DIR}/../../objs/ffmpeg/lib/libswresample.a)
TARGET_LINK_LIBRARIES(srs ${DEPS_LIBS})
TARGET_LINK_LIBRARIES(srs -ldl)
IF (NOT EXISTS ${PROJECT_SOURCE_DIR}/../../objs/st/libst.a)
MESSAGE("srs_libs not found")
EXEC_PROGRAM("cd .. && ./configure")
ELSE (NOT EXISTS ${PROJECT_SOURCE_DIR}/../../objs/st/libst.a)
MESSAGE("srs_libs is ok")
ENDIF (NOT EXISTS ${PROJECT_SOURCE_DIR}/../../objs/st/libst.a)
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/ossrs/srs/wiki/v1_CN_IDE#jetbrains")
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/ossrs/srs/wiki/v1_CN_IDE#jetbrains")
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/ossrs/srs/wiki/v1_CN_IDE#jetbrains")
MESSAGE(STATUS "use ./configure && make, @see https://github.com/ossrs/srs#usage")
MESSAGE(STATUS "@see https://github.com/ossrs/srs/wiki/v4_CN_IDE")