587 lines
		
	
	
	
		
			17 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			587 lines
		
	
	
	
		
			17 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
########################################
 | 
						|
# 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(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)
 | 
						|
 | 
						|
########################################
 | 
						|
# 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 - Debug              #
 | 
						|
########################################
 | 
						|
if (NOT DEBUG)
 | 
						|
  set(DEBUG 4)
 | 
						|
endif()
 | 
						|
 | 
						|
########################################
 | 
						|
# Build Variables - Shared Memory      #
 | 
						|
########################################
 | 
						|
if (NOT DEFINED NOSHM )
 | 
						|
  add_definitions(-DSHM_ENABLED=1)
 | 
						|
endif()
 | 
						|
 | 
						|
if (DEFINED BIGMETA )
 | 
						|
  add_definitions(-DBIGMETA=1)
 | 
						|
endif()
 | 
						|
if (NOT DEFINED NOSSL )
 | 
						|
  add_definitions(-DSSL=1)
 | 
						|
endif()
 | 
						|
 | 
						|
########################################
 | 
						|
# Build Variables - Thread Names       #
 | 
						|
########################################
 | 
						|
if (DEFINED WITH_THREADNAMES )
 | 
						|
  add_definitions(-DWITH_THREADNAMES=1)
 | 
						|
endif()
 | 
						|
 | 
						|
########################################
 | 
						|
# Build Variables - No Crash Check     #
 | 
						|
########################################
 | 
						|
if (DEFINED NOCRASHCHECK )
 | 
						|
  add_definitions(-DNOCRASHCHECK=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})
 | 
						|
 | 
						|
########################################
 | 
						|
# MistLib - Header Files               #
 | 
						|
########################################
 | 
						|
set(libHeaders
 | 
						|
  lib/amf.h
 | 
						|
  lib/auth.h
 | 
						|
  lib/encode.h
 | 
						|
  lib/bitfields.h
 | 
						|
  lib/bitstream.h
 | 
						|
  lib/checksum.h
 | 
						|
  lib/config.h
 | 
						|
  lib/defines.h
 | 
						|
  lib/dtsc.h
 | 
						|
  lib/flv_tag.h
 | 
						|
  lib/h264.h
 | 
						|
  lib/http_parser.h
 | 
						|
  lib/downloader.h
 | 
						|
  lib/json.h
 | 
						|
  lib/langcodes.h
 | 
						|
  lib/mp4_adobe.h
 | 
						|
  lib/mp4_generic.h
 | 
						|
  lib/mp4.h
 | 
						|
  lib/mp4_ms.h
 | 
						|
  lib/nal.h
 | 
						|
  lib/ogg.h
 | 
						|
  lib/procs.h
 | 
						|
  lib/rtmpchunks.h
 | 
						|
  lib/shared_memory.h
 | 
						|
  lib/socket.h
 | 
						|
  lib/stream.h
 | 
						|
  lib/theora.h
 | 
						|
  lib/timing.h
 | 
						|
  lib/tinythread.h
 | 
						|
  lib/ts_packet.h
 | 
						|
  lib/util.h
 | 
						|
  lib/vorbis.h
 | 
						|
  lib/opus.h
 | 
						|
  lib/riff.h
 | 
						|
  lib/ebml.h
 | 
						|
  lib/ebml_socketglue.h
 | 
						|
  lib/websocket.h
 | 
						|
  lib/url.h
 | 
						|
  lib/urireader.h
 | 
						|
)
 | 
						|
 | 
						|
########################################
 | 
						|
# MistLib - Build                      #
 | 
						|
########################################
 | 
						|
add_library (mist 
 | 
						|
  ${libHeaders}
 | 
						|
  lib/amf.cpp
 | 
						|
  lib/auth.cpp
 | 
						|
  lib/encode.cpp
 | 
						|
  lib/bitfields.cpp
 | 
						|
  lib/bitstream.cpp
 | 
						|
  lib/config.cpp
 | 
						|
  lib/dtsc.cpp
 | 
						|
  lib/dtscmeta.cpp
 | 
						|
  lib/flv_tag.cpp
 | 
						|
  lib/h264.cpp
 | 
						|
  lib/http_parser.cpp
 | 
						|
  lib/downloader.cpp
 | 
						|
  lib/json.cpp
 | 
						|
  lib/langcodes.cpp
 | 
						|
  lib/mp4_adobe.cpp
 | 
						|
  lib/mp4.cpp
 | 
						|
  lib/mp4_generic.cpp
 | 
						|
  lib/mp4_ms.cpp
 | 
						|
  lib/nal.cpp
 | 
						|
  lib/ogg.cpp
 | 
						|
  lib/procs.cpp
 | 
						|
  lib/rtmpchunks.cpp
 | 
						|
  lib/shared_memory.cpp
 | 
						|
  lib/socket.cpp
 | 
						|
  lib/stream.cpp
 | 
						|
  lib/theora.cpp
 | 
						|
  lib/timing.cpp
 | 
						|
  lib/tinythread.cpp
 | 
						|
  lib/ts_packet.cpp
 | 
						|
  lib/util.cpp
 | 
						|
  lib/vorbis.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 DEFINED NOSSL )
 | 
						|
  target_link_libraries(mist mbedtls mbedx509 mbedcrypto)
 | 
						|
endif()
 | 
						|
install(
 | 
						|
  FILES ${libHeaders}
 | 
						|
  DESTINATION include/mist
 | 
						|
)
 | 
						|
install(
 | 
						|
  TARGETS mist
 | 
						|
  DESTINATION lib
 | 
						|
)
 | 
						|
 | 
						|
########################################
 | 
						|
# 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(MP4 mp4)
 | 
						|
makeAnalyser(OGG ogg)
 | 
						|
makeAnalyser(EBML ebml)
 | 
						|
 | 
						|
########################################
 | 
						|
# 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(RAX rax)
 | 
						|
makeUtil(AMF amf)
 | 
						|
makeUtil(Certbot certbot)
 | 
						|
 | 
						|
########################################
 | 
						|
# 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
 | 
						|
  )
 | 
						|
 | 
						|
  #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(DTSC dtsc)
 | 
						|
makeInput(MP3 mp3)
 | 
						|
makeInput(FLV flv)
 | 
						|
makeInput(OGG ogg)
 | 
						|
makeInput(Buffer buffer)
 | 
						|
makeInput(H264 h264)
 | 
						|
makeInput(EBML ebml)
 | 
						|
makeInput(MP4 mp4)
 | 
						|
 | 
						|
########################################
 | 
						|
# MistServer - Outputs                 #
 | 
						|
########################################
 | 
						|
macro(makeOutput outputName format)
 | 
						|
  #Parse all extra arguments, for http and ts flags
 | 
						|
  SET (tsBaseClass Output)
 | 
						|
  if (";${ARGN};" MATCHES ";http;")
 | 
						|
    SET(httpOutput src/output/output_http.cpp)
 | 
						|
    if (";${ARGN};" MATCHES ";ts;")
 | 
						|
      SET(tsBaseClass HTTPOutput)
 | 
						|
    endif()
 | 
						|
  endif()
 | 
						|
  if (";${ARGN};" MATCHES ";ts;")
 | 
						|
    SET(tsOutput src/output/output_ts_base.cpp)
 | 
						|
  endif()
 | 
						|
  add_executable(MistOut${outputName}
 | 
						|
    src/output/mist_out.cpp
 | 
						|
    src/output/output.cpp
 | 
						|
    src/output/output_${format}.cpp 
 | 
						|
    src/io.cpp
 | 
						|
    ${httpOutput}
 | 
						|
    ${tsOutput} 
 | 
						|
    ${BINARY_DIR}/mist/.headers
 | 
						|
  )
 | 
						|
  set_target_properties(MistOut${outputName} 
 | 
						|
    PROPERTIES COMPILE_DEFINITIONS "OUTPUTTYPE=\"output_${format}.h\";TS_BASECLASS=${tsBaseClass}"
 | 
						|
  )
 | 
						|
  target_link_libraries(MistOut${outputName} 
 | 
						|
    mist 
 | 
						|
  )
 | 
						|
  install( 
 | 
						|
    TARGETS MistOut${outputName}
 | 
						|
    DESTINATION bin
 | 
						|
  )
 | 
						|
endmacro()
 | 
						|
 | 
						|
makeOutput(RTMP rtmp)
 | 
						|
makeOutput(OGG progressive_ogg http)
 | 
						|
makeOutput(FLV progressive_flv http)
 | 
						|
makeOutput(MP4 progressive_mp4 http)
 | 
						|
makeOutput(MP3 progressive_mp3 http)
 | 
						|
makeOutput(HSS hss             http)
 | 
						|
makeOutput(HDS hds             http)
 | 
						|
makeOutput(SRT srt             http)
 | 
						|
makeOutput(JSON json           http)
 | 
						|
makeOutput(TS ts                    ts)
 | 
						|
makeOutput(HTTPTS httpts       http ts)
 | 
						|
makeOutput(HLS hls             http ts)
 | 
						|
makeOutput(EBML ebml)
 | 
						|
if (NOT DEFINED NOSSL )
 | 
						|
  makeOutput(HTTPS https)#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/player_dash.js.h
 | 
						|
  generated/player_dash_lic.js.h
 | 
						|
  generated/player_video.js.h
 | 
						|
  generated/player_webrtc.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)
 | 
						|
  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
 | 
						|
)
 | 
						|
# 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
 | 
						|
)
 | 
						|
# 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
 | 
						|
)
 | 
						|
 | 
						|
########################################
 | 
						|
# 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
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
if (NOT DEFINED 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_api.h
 | 
						|
  src/controller/controller_statistics.h
 | 
						|
  src/controller/controller_connectors.h
 | 
						|
  src/controller/controller_storage.h
 | 
						|
  src/controller/controller_capabilities.h
 | 
						|
  src/controller/controller_streams.h
 | 
						|
  src/controller/controller.cpp
 | 
						|
  src/controller/controller_streams.cpp
 | 
						|
  src/controller/controller_storage.cpp
 | 
						|
  src/controller/controller_connectors.cpp
 | 
						|
  src/controller/controller_statistics.cpp
 | 
						|
  src/controller/controller_capabilities.cpp
 | 
						|
  src/controller/controller_api.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
 | 
						|
)
 | 
						|
 |