Remove CMake support. Switch to Meson, guys!
This commit is contained in:
parent
2a98890e98
commit
f7b274ec71
9 changed files with 1 additions and 1367 deletions
937
CMakeLists.txt
937
CMakeLists.txt
|
@ -1,937 +0,0 @@
|
|||
########################################
|
||||
# Basic Setup #
|
||||
########################################
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
SET(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Usr install prefix")
|
||||
project (MistServer)
|
||||
|
||||
if(COMMAND cmake_policy)
|
||||
cmake_policy(SET CMP0003 NEW)
|
||||
endif(COMMAND cmake_policy)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++98")
|
||||
|
||||
SET(SOURCE_DIR ${PROJECT_SOURCE_DIR})
|
||||
SET(BINARY_DIR ${PROJECT_BINARY_DIR})
|
||||
set( CMAKE_EXPORT_COMPILE_COMMANDS ON ) #For YCM support
|
||||
include_directories(${SOURCE_DIR})
|
||||
include_directories(${BINARY_DIR} ${BINARY_DIR}/generated)
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build the libraries as shared (default = static)")
|
||||
|
||||
########################################
|
||||
# Testing - Enable Tests #
|
||||
########################################
|
||||
enable_testing()
|
||||
include(CTest)
|
||||
|
||||
########################################
|
||||
# Build Variables - Install Prefix #
|
||||
########################################
|
||||
if (NOT CMAKE_INSTALL_PREFIX)
|
||||
set (CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# Build Variables - Release #
|
||||
########################################
|
||||
if (RELEASE)
|
||||
set (RELEASE_RAW ${RELEASE})
|
||||
else()
|
||||
#get the bitlength of this system
|
||||
execute_process(COMMAND getconf LONG_BIT OUTPUT_VARIABLE RELEASE_RAW )
|
||||
set(RELEASE_RAW "Generic_${RELEASE_RAW}" )
|
||||
endif()
|
||||
string(STRIP ${RELEASE_RAW} RELEASE)
|
||||
set(RELEASE \"${RELEASE}\" )
|
||||
|
||||
########################################
|
||||
# Build Variables - Package Version #
|
||||
########################################
|
||||
#See if we have a git repo to get the version from
|
||||
execute_process(COMMAND git describe --tags OUTPUT_VARIABLE PACKAGE_VERSION_RAW ERROR_QUIET)
|
||||
if (NOT PACKAGE_VERSION_RAW)
|
||||
execute_process(COMMAND cat VERSION OUTPUT_VARIABLE PACKAGE_VERSION_RAW ERROR_QUIET)
|
||||
endif()
|
||||
if (NOT PACKAGE_VERSION_RAW)
|
||||
set(PACKAGE_VERSION_RAW Unknown)
|
||||
endif()
|
||||
#strip off the trailing spaces and newline
|
||||
string(STRIP "${PACKAGE_VERSION_RAW}" PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION \"${PACKAGE_VERSION}\" )
|
||||
|
||||
########################################
|
||||
# Build Variables - Everything else #
|
||||
########################################
|
||||
if (NOT DEBUG)
|
||||
set(DEBUG 4)
|
||||
endif()
|
||||
|
||||
option(NOSHM "Disabled shared memory (falling back to shared temporary files)")
|
||||
if (NOT NOSHM)
|
||||
add_definitions(-DSHM_ENABLED=1)
|
||||
else()
|
||||
message("Shared memory use is turned OFF")
|
||||
endif()
|
||||
|
||||
if (FILLER_DATA AND SHARED_SECRET AND SUPER_SECRET)
|
||||
add_definitions(-DFILLER_DATA="${FILLER_DATA}" -DSHARED_SECRET="${SHARED_SECRET}" -DSUPER_SECRET="${SUPER_SECRET}")#LTS
|
||||
endif()
|
||||
|
||||
option(NOSSL "Disable SSL/TLS support")
|
||||
if (NOT NOSSL)
|
||||
add_definitions(-DSSL=1)
|
||||
else()
|
||||
message("SSL/TLS support is turned OFF")
|
||||
endif()
|
||||
|
||||
if (DEFINED DATASIZE )
|
||||
add_definitions(-DSHM_DATASIZE=${DATASIZE})
|
||||
endif()
|
||||
|
||||
if (DEFINED STAT_CUTOFF )
|
||||
add_definitions(-DSTAT_CUTOFF=${STAT_CUTOFF})
|
||||
endif()
|
||||
|
||||
option(NOUPDATE "Disable the updater")
|
||||
if (NOT NOUPDATE)
|
||||
add_definitions(-DUPDATER=1)
|
||||
endif()
|
||||
|
||||
option(NOAUTH "Disable API authentication entirely (insecure!)")
|
||||
if (NOAUTH)
|
||||
add_definitions(-DNOAUTH=1)
|
||||
endif()
|
||||
|
||||
if (DEFINED UDP_API_HOST )
|
||||
add_definitions(-DUDP_API_HOST=${UDP_API_HOST})
|
||||
endif()
|
||||
|
||||
if (DEFINED UDP_API_PORT )
|
||||
add_definitions(-DUDP_API_PORT=${UDP_API_PORT})
|
||||
endif()
|
||||
|
||||
set(APPNAME "MistServer" CACHE STRING "Name of the application, as used in user agent strings and the like")
|
||||
add_definitions(-DAPPNAME="${APPNAME}")
|
||||
|
||||
set(DISKSERIAL "" CACHE STRING "Lock application to given disk serial number")
|
||||
if (DISKSERIAL)
|
||||
add_definitions(-DDISKSERIAL="${DISKSERIAL}")
|
||||
endif()
|
||||
|
||||
option(WITH_THREADNAMES "Enable fancy names for threads (not supported on all platforms)")
|
||||
if (WITH_THREADNAMES)
|
||||
add_definitions(-DWITH_THREADNAMES=1)
|
||||
endif()
|
||||
|
||||
if (DEFINED STATS_DELAY)
|
||||
add_definitions(-DSTATS_DELAY=${STATS_DELAY})
|
||||
endif()
|
||||
|
||||
option(NOLLHLS "Disable LLHLS")
|
||||
if (NOLLHLS)
|
||||
add_definitions(-DNOLLHLS=1)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# Build Variables - Prepare for Build #
|
||||
########################################
|
||||
message("Builing release ${RELEASE} for version ${PACKAGE_VERSION} @ debug level ${DEBUG}")
|
||||
add_definitions(-g -funsigned-char -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DDEBUG=${DEBUG} -DPACKAGE_VERSION=${PACKAGE_VERSION} -DRELEASE=${RELEASE})
|
||||
add_definitions(-Wall -Wno-sign-compare -Wparentheses)
|
||||
|
||||
option(NOSRT "Disable building native SRT support, regardless of library being present (by default SRT is enabled if libraries are installed)")
|
||||
if (NOT NOSRT)
|
||||
find_library(SRT_LIB srt)
|
||||
if(SRT_LIB)
|
||||
add_definitions(-DWITH_SRT=1)
|
||||
message("Building with SRT")
|
||||
else()
|
||||
message("Building without native SRT support")
|
||||
endif()
|
||||
else()
|
||||
message("Building without native SRT support")
|
||||
endif()
|
||||
|
||||
option(NORIST "Disable building RIST support, regardless of library being present (by default RIST is enabled if libraries are installed)")
|
||||
if (NOT NORIST)
|
||||
find_library(RIST_LIB rist)
|
||||
if(RIST_LIB)
|
||||
add_definitions(-DWITH_RIST=1)
|
||||
message("Building with RIST")
|
||||
else()
|
||||
message("Building without RIST support")
|
||||
endif()
|
||||
else()
|
||||
message("Building without RIST support")
|
||||
endif()
|
||||
|
||||
|
||||
########################################
|
||||
# MistLib - Header Files #
|
||||
########################################
|
||||
set(libHeaders
|
||||
lib/adts.h
|
||||
lib/amf.h
|
||||
lib/auth.h
|
||||
lib/encode.h
|
||||
lib/bitfields.h
|
||||
lib/bitstream.h
|
||||
lib/certificate.h
|
||||
lib/checksum.h
|
||||
lib/cmaf.h
|
||||
lib/comms.h
|
||||
lib/config.h
|
||||
lib/defines.h
|
||||
lib/dtls_srtp_handshake.h
|
||||
lib/dtsc.h
|
||||
lib/encryption.h
|
||||
lib/flac.h
|
||||
lib/flv_tag.h
|
||||
lib/h264.h
|
||||
lib/h265.h
|
||||
lib/hls_support.h
|
||||
lib/http_parser.h
|
||||
lib/downloader.h
|
||||
lib/json.h
|
||||
lib/langcodes.h
|
||||
lib/mp4_adobe.h
|
||||
lib/mp4_dash.cpp
|
||||
lib/mp4_dash.h
|
||||
lib/mp4_encryption.h
|
||||
lib/mp4_generic.h
|
||||
lib/mp4.h
|
||||
lib/mp4_ms.h
|
||||
lib/mpeg.h
|
||||
lib/nal.h
|
||||
lib/ogg.h
|
||||
lib/procs.h
|
||||
lib/rtmpchunks.h
|
||||
lib/rtp_fec.h
|
||||
lib/rtp.h
|
||||
lib/sdp.h
|
||||
lib/sdp_media.h
|
||||
lib/shared_memory.h
|
||||
lib/socket.h
|
||||
lib/stream.h
|
||||
lib/stun.h
|
||||
lib/theora.h
|
||||
lib/timing.h
|
||||
lib/tinythread.h
|
||||
lib/ts_packet.h
|
||||
lib/ts_stream.h
|
||||
lib/util.h
|
||||
lib/vorbis.h
|
||||
lib/triggers.h
|
||||
lib/opus.h
|
||||
lib/riff.h
|
||||
lib/ebml.h
|
||||
lib/ebml_socketglue.h
|
||||
lib/websocket.h
|
||||
lib/url.h
|
||||
lib/urireader.h
|
||||
)
|
||||
|
||||
if(SRT_LIB)
|
||||
list(APPEND libHeaders lib/socket_srt.h)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# MistLib - Build #
|
||||
########################################
|
||||
add_library (mist
|
||||
${libHeaders}
|
||||
lib/adts.cpp
|
||||
lib/amf.cpp
|
||||
lib/auth.cpp
|
||||
lib/encode.cpp
|
||||
lib/bitfields.cpp
|
||||
lib/bitstream.cpp
|
||||
lib/cmaf.cpp
|
||||
lib/comms.cpp
|
||||
lib/certificate.cpp
|
||||
lib/config.cpp
|
||||
lib/dtls_srtp_handshake.cpp
|
||||
lib/dtsc.cpp
|
||||
lib/encryption.cpp
|
||||
lib/flac.cpp
|
||||
lib/flv_tag.cpp
|
||||
lib/h264.cpp
|
||||
lib/h265.cpp
|
||||
lib/hls_support.cpp
|
||||
lib/http_parser.cpp
|
||||
lib/downloader.cpp
|
||||
lib/json.cpp
|
||||
lib/langcodes.cpp
|
||||
lib/mp4_adobe.cpp
|
||||
lib/mp4.cpp
|
||||
lib/mp4_dash.cpp
|
||||
lib/mp4_encryption.cpp
|
||||
lib/mp4_generic.cpp
|
||||
lib/mp4_ms.cpp
|
||||
lib/mpeg.cpp
|
||||
lib/nal.cpp
|
||||
lib/ogg.cpp
|
||||
lib/procs.cpp
|
||||
lib/rtmpchunks.cpp
|
||||
lib/rtp_fec.cpp
|
||||
lib/rtp.cpp
|
||||
lib/sdp.cpp
|
||||
lib/sdp_media.cpp
|
||||
lib/shared_memory.cpp
|
||||
lib/socket.cpp
|
||||
lib/stream.cpp
|
||||
lib/stun.cpp
|
||||
lib/theora.cpp
|
||||
lib/timing.cpp
|
||||
lib/tinythread.cpp
|
||||
lib/ts_packet.cpp
|
||||
lib/ts_stream.cpp
|
||||
lib/util.cpp
|
||||
lib/vorbis.cpp
|
||||
lib/triggers.cpp
|
||||
lib/opus.cpp
|
||||
lib/riff.cpp
|
||||
lib/ebml.cpp
|
||||
lib/ebml_socketglue.cpp
|
||||
lib/websocket.cpp
|
||||
lib/url.cpp
|
||||
lib/urireader.cpp
|
||||
)
|
||||
if (NOT APPLE)
|
||||
set (LIBRT -lrt)
|
||||
endif()
|
||||
target_link_libraries(mist
|
||||
-lpthread
|
||||
${LIBRT}
|
||||
)
|
||||
if (NOT NOSSL)
|
||||
target_link_libraries(mist mbedtls mbedx509 mbedcrypto)
|
||||
endif()
|
||||
install(
|
||||
FILES ${libHeaders}
|
||||
DESTINATION include/mist
|
||||
)
|
||||
install(
|
||||
TARGETS mist
|
||||
DESTINATION lib
|
||||
)
|
||||
|
||||
|
||||
if(SRT_LIB)
|
||||
add_library(mist_srt lib/socket_srt.h lib/socket_srt.cpp)
|
||||
target_link_libraries(mist_srt mist srt)
|
||||
install(
|
||||
TARGETS mist_srt
|
||||
DESTINATION lib
|
||||
)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# MistLib - Local Header Install #
|
||||
########################################
|
||||
if (${CMAKE_VERSION} VERSION_LESS 3.3.0)
|
||||
add_custom_command(OUTPUT ${BINARY_DIR}/mist/.headers
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${BINARY_DIR}/mist
|
||||
COMMAND cp
|
||||
ARGS ${libHeaders} ${BINARY_DIR}/mist
|
||||
COMMAND touch
|
||||
ARGS ${BINARY_DIR}/mist/.headers
|
||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
||||
DEPENDS ${libHeaders}
|
||||
)
|
||||
else()
|
||||
add_custom_command(OUTPUT ${BINARY_DIR}/mist/.headers
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${BINARY_DIR}/mist
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E copy ${libHeaders} ${BINARY_DIR}/mist
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E touch ${BINARY_DIR}/mist/.headers
|
||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
||||
DEPENDS ${libHeaders}
|
||||
)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# MistServer - Analysers #
|
||||
########################################
|
||||
macro(makeAnalyser analyserName format)
|
||||
add_executable(MistAnalyser${analyserName}
|
||||
src/analysers/mist_analyse.cpp
|
||||
src/analysers/analyser.cpp
|
||||
src/analysers/analyser_${format}.cpp
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
set_target_properties(MistAnalyser${analyserName}
|
||||
PROPERTIES COMPILE_DEFINITIONS "ANALYSERHEADER=\"analyser_${format}.h\"; ANALYSERTYPE=Analyser${analyserName}"
|
||||
)
|
||||
target_link_libraries(MistAnalyser${analyserName}
|
||||
mist
|
||||
)
|
||||
install(
|
||||
TARGETS MistAnalyser${analyserName}
|
||||
DESTINATION bin
|
||||
)
|
||||
endmacro()
|
||||
|
||||
makeAnalyser(RTMP rtmp)
|
||||
makeAnalyser(FLV flv)
|
||||
makeAnalyser(DTSC dtsc)
|
||||
makeAnalyser(OGG ogg)
|
||||
makeAnalyser(EBML ebml)
|
||||
#makeAnalyser(RTSP rtsp) #LTS #Currently broken. Horribly.
|
||||
makeAnalyser(TS ts) #LTS
|
||||
makeAnalyser(MP4 mp4) #LTS
|
||||
makeAnalyser(H264 h264) #LTS
|
||||
makeAnalyser(HLS hls) #LTS
|
||||
makeAnalyser(RIFF riff) #LTS
|
||||
makeAnalyser(RTSP rtsp) #LTS
|
||||
makeAnalyser(FLAC flac)
|
||||
|
||||
#LTS_START
|
||||
########################################
|
||||
# MistServer - Utilities #
|
||||
########################################
|
||||
macro(makeUtil utilName utilFile)
|
||||
add_executable(MistUtil${utilName}
|
||||
src/utils/util_${utilFile}.cpp
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
target_link_libraries(MistUtil${utilName}
|
||||
mist
|
||||
)
|
||||
install(
|
||||
TARGETS MistUtil${utilName}
|
||||
DESTINATION bin
|
||||
)
|
||||
endmacro()
|
||||
|
||||
#makeUtil(Stats stats)
|
||||
makeUtil(META meta)
|
||||
makeUtil(RAX rax)
|
||||
makeUtil(AMF amf)
|
||||
makeUtil(Certbot certbot)
|
||||
makeUtil(Nuke nuke)
|
||||
option(LOAD_BALANCE "Build the load balancer")
|
||||
if (LOAD_BALANCE)
|
||||
makeUtil(Load load)
|
||||
endif()
|
||||
#LTS_END
|
||||
|
||||
add_executable(MistTranslateH264
|
||||
src/analysers/h264_translate.cpp
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
target_link_libraries(MistTranslateH264
|
||||
mist
|
||||
)
|
||||
|
||||
########################################
|
||||
# MistServer - Inputs #
|
||||
########################################
|
||||
macro(makeInput inputName format)
|
||||
add_executable(MistIn${inputName}
|
||||
src/input/mist_in.cpp
|
||||
src/input/input.cpp
|
||||
src/input/input_${format}.cpp
|
||||
src/io.cpp
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
if (";${ARGN};" MATCHES ";with_srt;")
|
||||
target_link_libraries(MistIn${inputName} mist_srt )
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";with_rist;")
|
||||
target_link_libraries(MistIn${inputName} rist cjson)
|
||||
endif()
|
||||
|
||||
#Set compile definitions
|
||||
unset(my_definitions)
|
||||
list(APPEND my_definitions "INPUTTYPE=\"input_${format}.h\"")
|
||||
|
||||
set_target_properties(MistIn${inputName}
|
||||
PROPERTIES COMPILE_DEFINITIONS "${my_definitions}"
|
||||
)
|
||||
|
||||
target_link_libraries(MistIn${inputName} mist)
|
||||
install(
|
||||
TARGETS MistIn${inputName}
|
||||
DESTINATION bin
|
||||
)
|
||||
endmacro()
|
||||
|
||||
makeInput(HLS hls)
|
||||
makeInput(DTSC dtsc)
|
||||
makeInput(MP3 mp3)
|
||||
makeInput(FLV flv)
|
||||
makeInput(FLAC flac)
|
||||
|
||||
option(WITH_AV "Build a generic libav-based input (not distributable!)")
|
||||
makeInput(OGG ogg)
|
||||
makeInput(Buffer buffer)
|
||||
makeInput(H264 h264)
|
||||
makeInput(EBML ebml)
|
||||
makeInput(ISMV ismv)#LTS
|
||||
makeInput(MP4 mp4)
|
||||
makeInput(TS ts)#LTS
|
||||
makeInput(Folder folder)#LTS
|
||||
makeInput(Playlist playlist)#LTS
|
||||
makeInput(Balancer balancer)#LTS
|
||||
makeInput(RTSP rtsp)#LTS
|
||||
makeInput(SubRip subrip)#LTS
|
||||
makeInput(SDP sdp)
|
||||
|
||||
if(SRT_LIB)
|
||||
makeInput(TSSRT tssrt with_srt)#LTS
|
||||
endif()
|
||||
if(RIST_LIB)
|
||||
makeInput(TSRIST tsrist with_rist)#LTS
|
||||
endif()
|
||||
|
||||
makeInput(AAC aac)
|
||||
makeInput(V4L2 v4l2)
|
||||
|
||||
########################################
|
||||
# MistServer - Outputs #
|
||||
########################################
|
||||
macro(makeOutput outputName format)
|
||||
#Parse all extra arguments, for http and ts flags
|
||||
SET (tsBaseClass Output)
|
||||
SET (outBaseFile src/output/mist_out.cpp)
|
||||
if (";${ARGN};" MATCHES ";http;")
|
||||
SET(httpOutput src/output/output_http.cpp)
|
||||
if (";${ARGN};" MATCHES ";ts;")
|
||||
SET(tsBaseClass HTTPOutput)
|
||||
endif()
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";debased;")
|
||||
SET(outBaseFile "")
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";ts;")
|
||||
SET(tsOutput src/output/output_ts_base.cpp)
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";jpg;")
|
||||
SET(tsOutput generated/noffmpeg.h generated/noh264.h)
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";srtp;")
|
||||
SET(tsOutput src/output/output_webrtc_srtp.h src/output/output_webrtc_srtp.cpp)
|
||||
endif()
|
||||
add_executable(MistOut${outputName}
|
||||
${outBaseFile}
|
||||
src/output/output.cpp
|
||||
src/output/output_${format}.cpp
|
||||
src/io.cpp
|
||||
${httpOutput}
|
||||
${tsOutput}
|
||||
${mp4Output}
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
set_target_properties(MistOut${outputName}
|
||||
PROPERTIES COMPILE_DEFINITIONS "OUTPUTTYPE=\"output_${format}.h\";TS_BASECLASS=${tsBaseClass}"
|
||||
)
|
||||
if (";${ARGN};" MATCHES ";with_srt;")
|
||||
target_link_libraries(MistOut${outputName} mist_srt)
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";with_rist;")
|
||||
target_link_libraries(MistOut${outputName} rist cjson)
|
||||
endif()
|
||||
if (";${ARGN};" MATCHES ";srtp;")
|
||||
target_link_libraries(MistOut${outputName} srtp2)
|
||||
endif()
|
||||
target_link_libraries(MistOut${outputName} mist )
|
||||
install(
|
||||
TARGETS MistOut${outputName}
|
||||
DESTINATION bin
|
||||
)
|
||||
endmacro()
|
||||
|
||||
makeOutput(RTMP rtmp)
|
||||
makeOutput(DTSC dtsc)
|
||||
makeOutput(JSONLine jsonline)
|
||||
makeOutput(OGG ogg http)
|
||||
makeOutput(FLV flv http)
|
||||
makeOutput(HTTPMinimalServer http_minimalserver http)
|
||||
makeOutput(MP4 mp4 http)
|
||||
makeOutput(AAC aac http)
|
||||
makeOutput(MP3 mp3 http)
|
||||
makeOutput(H264 h264 http)
|
||||
makeOutput(HDS hds http)
|
||||
makeOutput(SubRip srt http)
|
||||
makeOutput(JSON json http)
|
||||
option(WITH_JPG "Build JPG thumbnailer output support")
|
||||
if (WITH_JPG)
|
||||
makeOutput(JPG jpg http jpg)
|
||||
endif()
|
||||
makeOutput(TS ts ts)
|
||||
if(SRT_LIB)
|
||||
makeOutput(TSSRT tssrt ts debased with_srt)
|
||||
endif()
|
||||
if(RIST_LIB)
|
||||
makeOutput(TSRIST tsrist ts debased with_rist)
|
||||
endif()
|
||||
makeOutput(HTTPTS httpts http ts)
|
||||
makeOutput(HLS hls http ts)
|
||||
makeOutput(CMAF cmaf http)#LTS
|
||||
makeOutput(EBML ebml)
|
||||
makeOutput(RTSP rtsp)#LTS
|
||||
makeOutput(WAV wav)#LTS
|
||||
makeOutput(SDP sdp http)
|
||||
makeOutput(FLAC flac http)
|
||||
|
||||
add_executable(MistSession
|
||||
${BINARY_DIR}/mist/.headers
|
||||
src/session.cpp
|
||||
)
|
||||
install(
|
||||
TARGETS MistSession
|
||||
DESTINATION bin
|
||||
)
|
||||
target_link_libraries(MistSession mist)
|
||||
|
||||
|
||||
add_executable(MistProcFFMPEG
|
||||
${BINARY_DIR}/mist/.headers
|
||||
src/process/process_ffmpeg.cpp
|
||||
src/output/output_ebml.cpp
|
||||
src/input/input_ebml.cpp
|
||||
src/input/input.cpp
|
||||
src/output/output_http.cpp
|
||||
src/output/output.cpp
|
||||
src/io.cpp
|
||||
)
|
||||
target_link_libraries(MistProcFFMPEG mist)
|
||||
|
||||
add_executable(MistProcMKVExec
|
||||
${BINARY_DIR}/mist/.headers
|
||||
src/process/process_exec.cpp
|
||||
src/output/output_ebml.cpp
|
||||
src/input/input_ebml.cpp
|
||||
src/input/input.cpp
|
||||
src/output/output_http.cpp
|
||||
src/output/output.cpp
|
||||
src/io.cpp
|
||||
)
|
||||
target_link_libraries(MistProcMKVExec mist)
|
||||
|
||||
add_executable(MistProcLivepeer
|
||||
${BINARY_DIR}/mist/.headers
|
||||
src/process/process_livepeer.cpp
|
||||
src/input/input.cpp
|
||||
src/output/output_http.cpp
|
||||
src/output/output_ts_base.cpp
|
||||
src/output/output.cpp
|
||||
src/io.cpp
|
||||
)
|
||||
target_link_libraries(MistProcLivepeer mist)
|
||||
|
||||
if (NOT NOSSL)
|
||||
makeOutput(HTTPS https)#LTS
|
||||
makeOutput(WebRTC webrtc http srtp)#LTS
|
||||
endif()
|
||||
|
||||
option(WITH_SANITY "Enable MistOutSanityCheck output for testing purposes")
|
||||
if (WITH_SANITY)
|
||||
makeOutput(SanityCheck sanitycheck)#LTS
|
||||
endif()
|
||||
|
||||
add_executable(MistOutHTTP
|
||||
${BINARY_DIR}/mist/.headers
|
||||
src/output/mist_out.cpp
|
||||
src/output/output.cpp
|
||||
src/output/output_http.cpp
|
||||
src/output/output_http_internal.cpp
|
||||
src/io.cpp
|
||||
generated/player.js.h
|
||||
generated/html5.js.h
|
||||
generated/flash_strobe.js.h
|
||||
generated/dashjs.js.h
|
||||
generated/videojs.js.h
|
||||
generated/webrtc.js.h
|
||||
generated/mews.js.h
|
||||
generated/flv.js.h
|
||||
generated/hlsjs.js.h
|
||||
generated/rawws.js.h
|
||||
generated/player_dash.js.h
|
||||
generated/player_dash_lic.js.h
|
||||
generated/player_video.js.h
|
||||
generated/player_webrtc.js.h
|
||||
generated/player_flv.js.h
|
||||
generated/player_hlsjs.js.h
|
||||
generated/player_libde265.js.h
|
||||
generated/skin_default.css.h
|
||||
generated/skin_dev.css.h
|
||||
generated/skin_videojs.css.h
|
||||
)
|
||||
set_target_properties(MistOutHTTP
|
||||
PROPERTIES COMPILE_DEFINITIONS "OUTPUTTYPE=\"output_http_internal.h\""
|
||||
)
|
||||
target_link_libraries(MistOutHTTP mist)
|
||||
install(
|
||||
TARGETS MistOutHTTP
|
||||
DESTINATION bin
|
||||
)
|
||||
|
||||
########################################
|
||||
# Documentation #
|
||||
########################################
|
||||
find_package(Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
set(DOXY_LAYOUT "${SOURCE_DIR}/DoxygenLayout.xml")
|
||||
set(INPUT_DIRS "${SOURCE_DIR}/src ${SOURCE_DIR}/lib")
|
||||
configure_file(${SOURCE_DIR}/Doxyfile.in ${BINARY_DIR}/Doxyfile @ONLY)
|
||||
add_custom_target( docs
|
||||
${DOXYGEN_EXECUTABLE} ${BINARY_DIR}/Doxyfile
|
||||
COMMAND rm -rf ${BINARY_DIR}/docs
|
||||
COMMAND mv ${SOURCE_DIR}/docs ${BINARY_DIR}
|
||||
WORKING_DIRECTORY ${SOURCE_DIR}
|
||||
COMMENT "Generating API documentation with Doxygen"
|
||||
VERBATIM
|
||||
)
|
||||
endif(DOXYGEN_FOUND)
|
||||
|
||||
########################################
|
||||
# Sourcery #
|
||||
########################################
|
||||
#If cross compiling, assume failure.
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
set(RUNA "1")
|
||||
else()
|
||||
try_run(RUNA RUNB ${BINARY_DIR}/CMakeTmp ${SOURCE_DIR}/src/sourcery.cpp )
|
||||
endif()
|
||||
|
||||
if("${RUNA}" EQUAL "42")
|
||||
message("Not cross compiling - building sourcery")
|
||||
add_executable(sourcery
|
||||
src/sourcery.cpp
|
||||
)
|
||||
else()
|
||||
message("Detected cross compiling")
|
||||
if (EXISTS "${SOURCE_DIR}/sourcery")
|
||||
if (EXISTS "${BINARY_DIR}/sourcery")
|
||||
add_custom_target(sourcery )
|
||||
else()
|
||||
add_custom_target(sourcery
|
||||
COMMAND cp ${SOURCE_DIR}/sourcery ${BINARY_DIR}/sourcery
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Cross compiling and no usable sourcery binary found - please supply it")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
########################################
|
||||
# Embed Code #
|
||||
########################################
|
||||
# main
|
||||
add_custom_command(OUTPUT generated/player.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/player.js player_js generated/player.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/player.js
|
||||
)
|
||||
# wrappers
|
||||
add_custom_command(OUTPUT generated/html5.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/html5.js html5_js generated/html5.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/html5.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/flash_strobe.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/flash_strobe.js flash_strobe_js generated/flash_strobe.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/flash_strobe.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/dashjs.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/dashjs.js dash_js generated/dashjs.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/dashjs.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/videojs.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/videojs.js video_js generated/videojs.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/videojs.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/webrtc.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/webrtc.js webrtc_js generated/webrtc.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/webrtc.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/mews.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/mews.js mews_js generated/mews.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/mews.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/flv.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/flv.js flv_js generated/flv.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/flv.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/hlsjs.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/hlsjs.js hlsjs_js generated/hlsjs.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/hlsjs.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/rawws.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/wrappers/rawws.js rawws_js generated/rawws.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/wrappers/rawws.js
|
||||
)# players
|
||||
add_custom_command(OUTPUT generated/player_dash_lic.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/dash.js.license.js player_dash_lic_js generated/player_dash_lic.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/dash.js.license.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_dash.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/dash.all.min.js player_dash_js generated/player_dash.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/dash.all.min.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_video.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/video.min.js player_video_js generated/player_video.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/video.min.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_webrtc.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/webrtc.js player_webrtc_js generated/player_webrtc.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/webrtc.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_flv.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/flv.min.js player_flv_js generated/player_flv.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/flv.min.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_hlsjs.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/hls.js player_hlsjs_js generated/player_hlsjs.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/hls.js
|
||||
)
|
||||
add_custom_command(OUTPUT generated/player_libde265.js.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/players/libde265.min.js player_libde265_js generated/player_libde265.js.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/players/libde265.min.js
|
||||
)
|
||||
# css
|
||||
add_custom_command(OUTPUT generated/skin_default.css.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/skins/default.css skin_default_css generated/skin_default.css.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/skins/default.css
|
||||
)
|
||||
add_custom_command(OUTPUT generated/skin_dev.css.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/min/skins/dev.css skin_dev_css generated/skin_dev.css.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/min/skins/dev.css
|
||||
)
|
||||
add_custom_command(OUTPUT generated/skin_videojs.css.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/embed/skins/video-js.css skin_videojs_css generated/skin_videojs.css.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/embed/skins/video-js.css
|
||||
)
|
||||
|
||||
########################################
|
||||
# JPG output #
|
||||
########################################
|
||||
add_custom_command(OUTPUT generated/noffmpeg.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/src/output/noffmpeg.jpg noffmpeg generated/noffmpeg.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/src/output/noffmpeg.jpg
|
||||
)
|
||||
add_custom_command(OUTPUT generated/noh264.h
|
||||
COMMAND ./sourcery ${SOURCE_DIR}/src/output/noh264.jpg noh264 generated/noh264.h
|
||||
DEPENDS sourcery ${SOURCE_DIR}/src/output/noh264.jpg
|
||||
)
|
||||
|
||||
########################################
|
||||
# Local Settings Page #
|
||||
########################################
|
||||
set(lspSOURCES
|
||||
${SOURCE_DIR}/lsp/plugins/jquery.js
|
||||
${SOURCE_DIR}/lsp/plugins/jquery.flot.min.js
|
||||
${SOURCE_DIR}/lsp/plugins/jquery.flot.time.min.js
|
||||
${SOURCE_DIR}/lsp/plugins/jquery.qrcode.min.js
|
||||
${SOURCE_DIR}/lsp/minified.js
|
||||
)
|
||||
|
||||
|
||||
option(NOGA "Disables Google Analytics entirely in the LSP")
|
||||
if (NOT NOGA)
|
||||
list(APPEND lspSOURCES ${SOURCE_DIR}/lsp/analytics.js)
|
||||
endif()
|
||||
|
||||
add_custom_command(OUTPUT ${BINARY_DIR}/generated/server.html
|
||||
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR="${SOURCE_DIR}" -DlspSOURCES="${lspSOURCES}" -P ${SOURCE_DIR}/CMakeServHtml.txt
|
||||
DEPENDS ${lspSOURCES} ${SOURCE_DIR}/CMakeServHtml.txt ${SOURCE_DIR}/lsp/main.css ${SOURCE_DIR}/lsp/header.html ${SOURCE_DIR}/lsp/footer.html
|
||||
)
|
||||
add_custom_command(OUTPUT generated/server.html.h
|
||||
COMMAND ./sourcery generated/server.html server_html generated/server.html.h
|
||||
DEPENDS sourcery ${BINARY_DIR}/generated/server.html
|
||||
)
|
||||
|
||||
########################################
|
||||
# MistController - Build #
|
||||
########################################
|
||||
add_executable(MistController
|
||||
src/controller/controller_external_writers.h
|
||||
src/controller/controller_limits.h
|
||||
src/controller/controller_uplink.h
|
||||
src/controller/controller_api.h
|
||||
src/controller/controller_statistics.h
|
||||
src/controller/controller_connectors.h
|
||||
src/controller/controller_storage.h
|
||||
src/controller/controller_updater.h
|
||||
src/controller/controller_capabilities.h
|
||||
src/controller/controller_streams.h
|
||||
src/controller/controller_push.h
|
||||
src/controller/controller_variables.h
|
||||
src/controller/controller.cpp
|
||||
src/controller/controller_external_writers.cpp
|
||||
src/controller/controller_updater.cpp
|
||||
src/controller/controller_streams.cpp
|
||||
src/controller/controller_storage.cpp
|
||||
src/controller/controller_connectors.cpp
|
||||
src/controller/controller_statistics.cpp
|
||||
src/controller/controller_limits.cpp
|
||||
src/controller/controller_capabilities.cpp
|
||||
src/controller/controller_uplink.cpp
|
||||
src/controller/controller_api.cpp
|
||||
src/controller/controller_push.cpp
|
||||
src/controller/controller_variables.cpp
|
||||
generated/server.html.h
|
||||
${BINARY_DIR}/mist/.headers
|
||||
)
|
||||
set_target_properties(MistController
|
||||
PROPERTIES COMPILE_DEFINITIONS RELEASE=${RELEASE}
|
||||
)
|
||||
target_link_libraries(MistController
|
||||
mist
|
||||
)
|
||||
install(
|
||||
TARGETS MistController
|
||||
DESTINATION bin
|
||||
)
|
||||
|
||||
########################################
|
||||
# Make Clean #
|
||||
########################################
|
||||
add_custom_target(clean-all
|
||||
COMMAND ${CMAKE_BUILD_TOOL} clean
|
||||
COMMAND rm -rf ${BINARY_DIR}/CMakeCache.txt
|
||||
COMMAND rm -rf ${BINARY_DIR}/cmake_install.cmake
|
||||
COMMAND rm -rf ${BINARY_DIR}/Makefile
|
||||
COMMAND rm -rf ${BINARY_DIR}/CMakeFiles
|
||||
COMMAND rm -rf ${BINARY_DIR}/Testing
|
||||
COMMAND rm -rf ${BINARY_DIR}/CTestTestfile.cmake
|
||||
COMMAND rm -rf ${BINARY_DIR}/DartConfiguration.tcl
|
||||
COMMAND rm -rf ${BINARY_DIR}/mist
|
||||
)
|
||||
|
||||
########################################
|
||||
# Tests #
|
||||
########################################
|
||||
add_executable(urltest test/url.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(urltest mist)
|
||||
add_test(URLTest COMMAND urltest)
|
||||
add_executable(logtest test/log.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(logtest mist)
|
||||
add_test(LOGTest COMMAND logtest)
|
||||
add_executable(logconvertertest test/converter.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(logconvertertest mist)
|
||||
add_test(LOGConverterTest COMMAND logconvertertest)
|
||||
add_executable(downloadertest test/downloader.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(downloadertest mist)
|
||||
add_test(DownloaderTest COMMAND downloadertest)
|
||||
add_executable(urireadertest test/urireader.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(urireadertest mist)
|
||||
add_test(URIReaderTest COMMAND urireadertest)
|
||||
add_executable(jsontest test/json.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(jsontest mist)
|
||||
add_test(JSONTest COMMAND jsontest)
|
||||
add_executable(resolvetest test/resolve.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(resolvetest mist)
|
||||
add_executable(bitwritertest test/bitwriter.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(bitwritertest mist)
|
||||
add_test(BitWriterTest COMMAND bitwritertest)
|
||||
add_executable(streamstatustest test/status.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(streamstatustest mist)
|
||||
add_executable(websockettest test/websocket.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(websockettest mist)
|
||||
add_executable(dtsc_sizing_test test/dtsc_sizing.cpp ${BINARY_DIR}/mist/.headers)
|
||||
target_link_libraries(dtsc_sizing_test mist)
|
|
@ -1,11 +0,0 @@
|
|||
set(lspCode "")
|
||||
string(REPLACE " " ";" lspLIST ${lspSOURCES})
|
||||
foreach (f ${lspLIST} )
|
||||
file (READ ${f} s)
|
||||
set (lspCode "${lspCode}${s}")
|
||||
endforeach()
|
||||
file(READ ${SOURCE_DIR}/lsp/main.css lspCSS)
|
||||
file(READ ${SOURCE_DIR}/lsp/header.html lspHeader)
|
||||
file(READ ${SOURCE_DIR}/lsp/footer.html lspFooter)
|
||||
file(WRITE generated/server.html "${lspHeader}<script>${lspCode}</script><style>${lspCSS}</style>${lspFooter}")
|
||||
|
|
@ -19,7 +19,7 @@ You can also manually install, full instructions can be found in our manual: htt
|
|||
Compile instructions
|
||||
====================
|
||||
|
||||
The recommended build system for compiling MistServer is Meson.
|
||||
The only supported build system for compiling MistServer is Meson, since CMake support was discontinued in MistServer 3.4.
|
||||
|
||||
The project makes full use of Meson's support for "wraps" and all dependencies can be automatically fulfilled through this system. If a system-wide library is available (and compatible), that one will be preferred.
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
set(lspSOURCES plugins/md5.js plugins/cattablesort.js mist.js)
|
||||
set(lspSOURCESmin plugins/jquery.js plugins/jquery.flot.min.js plugins/jquery.flot.time.min.js plugins/jquery.qrcode.min.js)
|
||||
set(lspDATA header.html main.css footer.html)
|
||||
|
||||
add_custom_target( lsp
|
||||
ALL
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/generateLSP.sh ${CMAKE_CURRENT_BINARY_DIR}/server.html
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/generateLSP.sh ${lspSOURCES} ${lspSOURCESmin} ${lspDATA}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
VERBATIM
|
||||
)
|
|
@ -1,50 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
pd=${PWD}
|
||||
d=${PWD}/../
|
||||
config="Release"
|
||||
|
||||
if [ ! -d ${d}/external ] ; then
|
||||
mkdir ${d}/external
|
||||
fi
|
||||
|
||||
if [ ! -d ${d}/external/mbedtls ] ; then
|
||||
#prepare mbedtls for build
|
||||
cd ${d}/external/
|
||||
git clone https://github.com/diederickh/mbedtls
|
||||
|
||||
cd ${d}/external/mbedtls
|
||||
git checkout -b dtls_srtp_support
|
||||
git merge 15179bfbaa794506c06f923f85d7c71f0dfd89e9
|
||||
|
||||
git am < ${pd}/webrtc_mbedtls_keying_material_fix.diff
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Failed to apply patch"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d ${d}/build ] ; then
|
||||
mkdir ${d}/build
|
||||
fi
|
||||
|
||||
if [ ! -d ${d}/installed ] ; then
|
||||
mkdir ${d}/installed
|
||||
#Build mbedtls
|
||||
mkdir -p ${d}/external/mbedtls/build
|
||||
cd ${d}/external/mbedtls/build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=${d}/installed -DENABLE_PROGRAMS=Off ..
|
||||
cmake --build . --config ${config} --target install -- -j 8
|
||||
fi
|
||||
|
||||
|
||||
cd ${d}
|
||||
export PATH="${PATH}:${d}/installed/include"
|
||||
cmake -DCMAKE_CXX_FLAGS="-I${d}/installed/include/ -L${d}/installed/lib/" \
|
||||
-DCMAKE_PREFIX_PATH=${d}/installed/include \
|
||||
-DCMAKE_MODULE_PATH=${d}/installed/ \
|
||||
-GNinja \
|
||||
.
|
||||
|
||||
ninja
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From ba52913047a6821dac15f8320c8857cef589bb6f Mon Sep 17 00:00:00 2001
|
||||
From: roxlu <diederick@roxlu.com>
|
||||
Date: Mon, 2 Jul 2018 22:26:21 +0200
|
||||
Subject: [PATCH] Fixes to get DTLS SRTP to work with WebRTC
|
||||
|
||||
---
|
||||
library/ssl_tls.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
|
||||
index fe27c6a8..25b86da8 100644
|
||||
--- a/library/ssl_tls.c
|
||||
+++ b/library/ssl_tls.c
|
||||
@@ -6436,7 +6436,6 @@ mbedtls_ssl_srtp_profile mbedtls_ssl_get_dtls_srtp_protection_profile( const mbe
|
||||
}
|
||||
|
||||
int mbedtls_ssl_get_dtls_srtp_key_material( const mbedtls_ssl_context *ssl, unsigned char *key, size_t *key_len ) {
|
||||
- *key_len = 0;
|
||||
|
||||
/* check output buffer size */
|
||||
if ( *key_len < ssl->dtls_srtp_info.dtls_srtp_keys_len) {
|
||||
@@ -7706,8 +7705,7 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl )
|
||||
#endif
|
||||
|
||||
#if defined (MBEDTLS_SSL_DTLS_SRTP)
|
||||
- mbedtls_zeroize( ssl->dtls_srtp_info.dtls_srtp_keys, ssl->dtls_srtp_info.dtls_srtp_keys_len );
|
||||
- // mbedtls_free( ssl->dtls_srtp_keys );
|
||||
+ mbedtls_platform_zeroize( ssl->dtls_srtp_info.dtls_srtp_keys, ssl->dtls_srtp_info.dtls_srtp_keys_len );
|
||||
#endif /* MBEDTLS_SSL_DTLS_SRTP */
|
||||
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= free" ) );
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd ${PWD}/../build
|
||||
set -x
|
||||
#export MIST_CONTROL=1
|
||||
make MistOutWebRTC
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Failed to compile."
|
||||
exit
|
||||
fi
|
||||
|
||||
#-fsanitize=address
|
||||
#export MALLOC_CHECK_=2
|
||||
# valgrind --trace-children=yes
|
||||
# ASAN_OPTIONS=symbolize=1 ASAN_SYMBOLIZER_PATH=$(shell which llvm-symbolizer)
|
||||
if [ 0 -ne 0 ] ; then
|
||||
reset && valgrind --trace-children=yes ./MistOutHTTPS \
|
||||
--port 4433 \
|
||||
--cert ~/.ssh/certs/arch680.rox.lu.crt \
|
||||
--key ~/.ssh/certs/arch680.rox.lu.key \
|
||||
--debug 10
|
||||
else
|
||||
reset && ./MistOutHTTPS \
|
||||
--port 4433 \
|
||||
--cert ~/.ssh/certs/arch680.rox.lu.crt \
|
||||
--key ~/.ssh/certs/arch680.rox.lu.key \
|
||||
--debug 10
|
||||
fi
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.8)
|
||||
project(srtp2)
|
||||
set(bd ${CMAKE_CURRENT_LIST_DIR})
|
||||
set(sd ${bd})
|
||||
|
||||
list(APPEND lib_sources
|
||||
${sd}/srtp/srtp.c
|
||||
${sd}/srtp/ekt.c
|
||||
${sd}/crypto/kernel/alloc.c
|
||||
${sd}/crypto/kernel/err.c
|
||||
${sd}/crypto/kernel/crypto_kernel.c
|
||||
${sd}/crypto/kernel/key.c
|
||||
${sd}/crypto/math/datatypes.c
|
||||
${sd}/crypto/math/stat.c
|
||||
${sd}/crypto/replay/rdbx.c
|
||||
${sd}/crypto/replay/rdb.c
|
||||
${sd}/crypto/replay/ut_sim.c
|
||||
${sd}/crypto/cipher/cipher.c
|
||||
${sd}/crypto/cipher/null_cipher.c
|
||||
${sd}/crypto/cipher/aes.c
|
||||
${sd}/crypto/hash/auth.c
|
||||
${sd}/crypto/hash/null_auth.c
|
||||
${sd}/crypto/cipher/aes_icm.c
|
||||
${sd}/crypto/hash/sha1.c
|
||||
${sd}/crypto/hash/hmac.c
|
||||
)
|
||||
|
||||
# -- start of checks
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckLibraryExists)
|
||||
include(CheckTypeSize)
|
||||
include(TestBigEndian)
|
||||
|
||||
set(AC_APPLE_UNIVERSAL_BUILD 0)
|
||||
set(CPU_CISC 1)
|
||||
set(CPU_RISC 0)
|
||||
set(ENABLE_DEBUG_LOGGING 0)
|
||||
set(ERR_REPORTING_FILE "libsrtp_error.log")
|
||||
set(ERR_REPORTING_STDOUT 0)
|
||||
set(VERSION "2.3")
|
||||
|
||||
check_include_files(arpa/inet.h HAVE_ARPA_INET_H)
|
||||
check_include_files(byteswap.h HAVE_BYTESWAP_H)
|
||||
check_function_exists(inet_aton HAVE_INET_ATON)
|
||||
check_type_size(int16_t HAVE_INT16_T)
|
||||
check_type_size(int32_t HAVE_INT32_T)
|
||||
check_type_size(int8_t HAVE_INT8_T)
|
||||
check_include_files(inttypes.h HAVE_INTTYPES_H)
|
||||
check_library_exists(dl dlopen "" HAVE_LIBDL)
|
||||
check_library_exists(socket socket "" HAVE_LIBSOCKET)
|
||||
check_library_exists(z zlibVersion "" HAVE_LIBZ)
|
||||
check_include_files(machine/types.h HAVE_MACHINE_TYPES_H)
|
||||
check_include_files(memory.h HAVE_MEMORY_H)
|
||||
check_include_files(netinet/in.h HAVE_NETINET_IN_H)
|
||||
# @todo check winpcap
|
||||
check_function_exists(sigaction HAVE_SIGACTION)
|
||||
check_function_exists(socket HAVE_SOCKET)
|
||||
check_include_files(stdint.h HAVE_STDINT_H)
|
||||
check_include_files(stdlib.h HAVE_STDLIB_H)
|
||||
check_include_files(strings.h HAVE_STRINGS_H)
|
||||
check_include_files(string.h HAVE_STRING_H)
|
||||
check_include_files(sys/int_types.h HAVE_SYS_INT_TYPES_H)
|
||||
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)
|
||||
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
|
||||
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
|
||||
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
|
||||
check_type_size(uint16_t HAVE_UINT16_T)
|
||||
check_type_size(uint32_t HAVE_UINT32_T)
|
||||
check_type_size(uint64_t HAVE_UINT64_T)
|
||||
check_type_size(uint8_t HAVE_UINT8_T)
|
||||
check_include_files(unistd.h HAVE_UNISTD_H)
|
||||
check_function_exists(usleep HAVE_USLEEP)
|
||||
check_include_files(windows.h HAVE_WINDOWS_H)
|
||||
check_include_files(winsock2.h HAVE_WINSOCK2_H)
|
||||
# @todo HAVE_X86
|
||||
# @todo OPENSSL
|
||||
# @todo OPENSSL_CLEANSE_BROKEN
|
||||
# @todo OPENSSL_KDF
|
||||
# @todo PACKAGE_BUGREPORT
|
||||
set(PACKAGE_BUGREPORT "testers@ddvdtech.com")
|
||||
set(PACKAGE_NAME "libsrtp")
|
||||
set(PACKAGE_VERSION "${VERSION}")
|
||||
set(PACKAGE_STRING "${PACKAGE_NAME}_${VERSION}")
|
||||
set(PACKAGE_TARNAME "${PACKAGE_STRING}.tar")
|
||||
set(PACKAGE_URL "http://www.mistserver.org")
|
||||
check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG)
|
||||
check_type_size("unsigned long long" SIZEOF_UNSIGNED_LONG_LONG)
|
||||
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
|
||||
configure_file(${bd}/config.cmake ${bd}/crypto/include/config.h)
|
||||
|
||||
#--------------------------------------------------------
|
||||
|
||||
include_directories(
|
||||
${bd}/include/
|
||||
${bd}/crypto/
|
||||
${bd}/crypto/include
|
||||
)
|
||||
|
||||
add_library(srtp2 STATIC ${lib_sources})
|
||||
target_compile_definitions(srtp2 PUBLIC HAVE_CONFIG_H)
|
||||
|
||||
list(APPEND include_files
|
||||
${bd}/include/srtp.h
|
||||
${bd}/crypto/include/cipher.h
|
||||
${bd}/crypto/include/auth.h
|
||||
${bd}/crypto/include/crypto_types.h
|
||||
)
|
||||
|
||||
install(FILES ${include_files} DESTINATION include)
|
||||
install(TARGETS srtp2 ARCHIVE DESTINATION lib)
|
|
@ -1,181 +0,0 @@
|
|||
/* config_in.h. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#cmakedefine AC_APPLE_UNIVERSAL_BUILD 1
|
||||
|
||||
/* Define if building for a CISC machine (e.g. Intel). */
|
||||
#cmakedefine CPU_CISC 1
|
||||
|
||||
/* Define if building for a RISC machine (assume slow byte access). */
|
||||
#cmakedefine CPU_RISC 1
|
||||
|
||||
/* Define to enabled debug logging for all mudules. */
|
||||
#cmakedefine ENABLE_DEBUG_LOGGING 1
|
||||
|
||||
/* Logging statments will be writen to this file. */
|
||||
#cmakedefine ERR_REPORTING_FILE "@ERR_REPORTING_FILE@"
|
||||
|
||||
/* Define to redirect logging to stdout. */
|
||||
#cmakedefine ERR_REPORTING_STDOUT 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#cmakedefine HAVE_ARPA_INET_H 1
|
||||
|
||||
/* Define to 1 if you have the <byteswap.h> header file. */
|
||||
#cmakedefine HAVE_BYTESWAP_H 1
|
||||
|
||||
/* Define to 1 if you have the `inet_aton' function. */
|
||||
#cmakedefine HAVE_INET_ATON 1
|
||||
|
||||
/* Define to 1 if the system has the type `int16_t'. */
|
||||
#cmakedefine HAVE_INT16_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `int32_t'. */
|
||||
#cmakedefine HAVE_INT32_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `int8_t'. */
|
||||
#cmakedefine HAVE_INT8_T 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#cmakedefine HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||
#cmakedefine HAVE_LIBDL 1
|
||||
|
||||
/* Define to 1 if you have the `socket' library (-lsocket). */
|
||||
#cmakedefine HAVE_LIBSOCKET 1
|
||||
|
||||
/* Define to 1 if you have the `z' library (-lz). */
|
||||
#cmakedefine HAVE_LIBZ 1
|
||||
|
||||
/* Define to 1 if you have the <machine/types.h> header file. */
|
||||
#cmakedefine HAVE_MACHINE_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#cmakedefine HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#cmakedefine HAVE_NETINET_IN_H 1
|
||||
|
||||
/* Define to 1 if you have the `winpcap' library (-lwpcap) */
|
||||
#cmakedefine HAVE_PCAP 1
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
#cmakedefine HAVE_SIGACTION 1
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#cmakedefine HAVE_SOCKET 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#cmakedefine HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#cmakedefine HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#cmakedefine HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#cmakedefine HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/int_types.h> header file. */
|
||||
#cmakedefine HAVE_SYS_INT_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#cmakedefine HAVE_SYS_SOCKET_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#cmakedefine HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#cmakedefine HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/uio.h> header file. */
|
||||
#cmakedefine HAVE_SYS_UIO_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `uint16_t'. */
|
||||
#cmakedefine HAVE_UINT16_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `uint32_t'. */
|
||||
#cmakedefine HAVE_UINT32_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `uint64_t'. */
|
||||
#cmakedefine HAVE_UINT64_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `uint8_t'. */
|
||||
#cmakedefine HAVE_UINT8_T 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#cmakedefine HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `usleep' function. */
|
||||
#cmakedefine HAVE_USLEEP 1
|
||||
|
||||
/* Define to 1 if you have the <windows.h> header file. */
|
||||
#cmakedefine HAVE_WINDOWS_H 1
|
||||
|
||||
/* Define to 1 if you have the <winsock2.h> header file. */
|
||||
#cmakedefine HAVE_WINSOCK2_H 1
|
||||
|
||||
/* Define to use X86 inlined assembly code */
|
||||
#cmakedefine HAVE_X86 1
|
||||
|
||||
/* Define this to use OpenSSL crypto. */
|
||||
#cmakedefine OPENSSL 1
|
||||
|
||||
/* Define this if OPENSSL_cleanse is broken. */
|
||||
#cmakedefine OPENSSL_CLEANSE_BROKEN 1
|
||||
|
||||
/* Define this to use OpenSSL KDF for SRTP. */
|
||||
#cmakedefine OPENSSL_KDF 1
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "@PACKAGE_NAME@"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "@PACKAGE_STRING@"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "@PACKAGE_TARNAME@"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#cmakedefine PACKAGE_URL "@PACKAGE_URL@"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "@PACKAGE_VERSION@"
|
||||
|
||||
/* The size of a `unsigned long', as computed by sizeof. */
|
||||
#define SIZEOF_UNSIGNED_LONG @SIZEOF_UNSIGNED_LONG@
|
||||
|
||||
/* The size of a `unsigned long long', as computed by sizeof. */
|
||||
#define SIZEOF_UNSIGNED_LONG_LONG @SIZEOF_UNSIGNED_LONG_LONG@
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#cmakedefine STDC_HEADERS 1
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
# undef WORDS_BIGENDIAN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
Loading…
Add table
Reference in a new issue