]> git.sesse.net Git - casparcg/blobdiff - shell/CMakeLists.txt
Use ScheduledFrameCompleted callback for audio scheduling in addition to video schedu...
[casparcg] / shell / CMakeLists.txt
index 3c56c0cf8e89bf4d0fc1abc3b152e65b07ed636b..6a514b931ca4d13975e87db9094e78c15d20786f 100644 (file)
@@ -4,6 +4,7 @@ project (shell)
 join_list("${CASPARCG_MODULE_INCLUDE_STATEMENTS}" "\n" CASPARCG_MODULE_INCLUDE_STATEMENTS)
 join_list("${CASPARCG_MODULE_INIT_STATEMENTS}" "\n" CASPARCG_MODULE_INIT_STATEMENTS)
 join_list("${CASPARCG_MODULE_UNINIT_STATEMENTS}" "\n" CASPARCG_MODULE_UNINIT_STATEMENTS)
+join_list("${CASPARCG_MODULE_COMMAND_LINE_ARG_INTERCEPTORS_STATEMENTS}" "\n" CASPARCG_MODULE_COMMAND_LINE_ARG_INTERCEPTORS_STATEMENTS)
 configure_file("${PROJECT_SOURCE_DIR}/included_modules.tmpl" "${PROJECT_SOURCE_DIR}/included_modules.h")
 
 if (MSVC)
@@ -18,11 +19,14 @@ elseif (CMAKE_COMPILER_IS_GNUCXX)
        )
 endif ()
 set(SOURCES
+               casparcg.config
+               included_modules.tmpl
                main.cpp
                server.cpp
                stdafx.cpp
 )
 set(HEADERS
+               default_audio_config.h
                included_modules.h
                platform_specific.h
                server.h
@@ -32,6 +36,17 @@ set(HEADERS
 add_executable(casparcg ${SOURCES} ${HEADERS} ${OS_SPECIFIC_SOURCES})
 add_precompiled_header(casparcg stdafx.h FORCEINCLUDE)
 
+add_executable(generate_docs generate_docs.cpp included_modules.h)
+target_link_libraries(generate_docs
+               protocol
+               accelerator
+
+               "${CASPARCG_MODULE_PROJECTS}"
+
+               reroute
+)
+
+
 include_directories(..)
 include_directories(${BOOST_INCLUDE_PATH})
 include_directories(${RXCPP_INCLUDE_PATH})
@@ -40,69 +55,9 @@ include_directories(${TBB_INCLUDE_PATH})
 source_group(sources ./*)
 
 if (MSVC)
-       set(LIBRARIES_TO_LINK
-               alibcof64.lib
-               jpeg.lib
-               sndfile.lib
-               optimized sfml-system-2.lib
-               optimized sfml-window-2.lib
-               optimized sfml-graphics-2.lib
-               debug sfml-system-d-2.lib
-               debug sfml-window-d-2.lib
-               debug sfml-graphics-d-2.lib
-               Winmm.lib
-               Ws2_32.lib
-               avformat.lib
-               avcodec.lib
-               avutil.lib
-               avfilter.lib
-               swscale.lib
-               swresample.lib
-               optimized tbb.lib
-               debug tbb_debug.lib
-               OpenGL32.lib
-               glew32.lib
-               openal32.lib
-               optimized FreeImage.lib
-               debug FreeImaged.lib
-               freetype.lib
+       target_link_libraries(casparcg
                zlibstat.lib
        )
-else ()
-       set(LIBRARIES_TO_LINK
-               "${DEPENDENCIES_FOLDER}/asmlib/alibelf64.a"
-               avformat
-               avcodec
-               avutil
-               avfilter
-               swscale
-               swresample
-               freetype
-               freeimage
-               boost_system
-               boost_thread
-               boost_chrono
-               boost_filesystem
-               boost_log
-               boost_locale
-               boost_regex
-               boost_date_time
-               tbb
-               tbbmalloc
-               tbbmalloc_proxy
-               sfml-system-s
-               sfml-window-s
-               sfml-graphics-s
-               GLEW
-               GL
-               X11
-               jpeg
-               sndfile
-               freetype
-               udev
-               Xrandr
-               pthread
-       )
 endif ()
 
 target_link_libraries(casparcg
@@ -114,36 +69,23 @@ target_link_libraries(casparcg
                "${CASPARCG_MODULE_PROJECTS}"
 
                reroute
-
-               "${LIBRARIES_TO_LINK}"
 )
 
+add_custom_target(casparcg_copy_dependencies ALL)
+
+casparcg_add_runtime_dependency("${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf")
+casparcg_add_runtime_dependency("${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config")
+
 set(OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
+add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory \"${OUTPUT_FOLDER}\")
 
-add_custom_command(TARGET casparcg POST_BUILD
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avcodec-55.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avdevice-55.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avfilter-4.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avformat-55.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avutil-52.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/postproc-52.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/swresample-0.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/swscale-2.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FREEIMAGE_BIN_PATH}/FreeImage.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${FREEIMAGE_BIN_PATH}/FreeImaged.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${GLEW_BIN_PATH}/glew32.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${OPENAL_BIN_PATH}/OpenAL32.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${OPENAL_BIN_PATH}/wrap_oal.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbb.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbb_debug.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_debug.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_proxy.dll\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_proxy_debug.dll\" \"${OUTPUT_FOLDER}/\"
-
-               COMMAND ${CMAKE_COMMAND} -E copy \"${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf\" \"${CMAKE_CURRENT_BINARY_DIR}/\"
-
-               COMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config\" \"${OUTPUT_FOLDER}/\"
-               COMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config\" \"${CMAKE_CURRENT_BINARY_DIR}/\"
-)
+foreach(FILE_TO_COPY ${CASPARCG_RUNTIME_DEPENDENCIES})
+       if(IS_DIRECTORY ${FILE_TO_COPY})
+               get_filename_component(FOLDER_NAME "${FILE_TO_COPY}" NAME)
+               add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/${FOLDER_NAME}\")
+               add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/${FOLDER_NAME}\")
+       else()
+               add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/\")
+               add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/\")
+       endif()
+endforeach(FILE_TO_COPY)