--- /dev/null
+# vim: ts=2 sw=2
+# - Try to find the required FFmpeg componenta (default: avformat, avutil, avcodec)
+#
+# Once done this will define
+# FFmpeg_FOUND - System has all the required FFmpeg components
+# FFmpeg_INCLUDE_DIRS - The FFmpeg components include directories
+# FFmpeg_LIBRARIES - Libraries needed to use the FFmpeg components
+# FFmpeg_LIBRARY_DIRS - Library directories
+# FFmpeg_DEFINITIONS - Compiler switches required for using the FFmpeg components
+#
+# For each of the components
+# - avcodec
+# - avdevice
+# - avfilter
+# - avformat
+# - avresample
+# - avutil
+# - postproc
+# - swresample
+# - swscale
+# the following variables will be defined
+# <component>_FOUND - System has the <component>
+# <component>_INCLUDE_DIRS - The <component> include directories
+# <component>_LIBRARIES - Libraries needed to use the <component>
+# <component>_DEFINITIONS - Compiler switches required for using the <component>
+# <component>_VERSION - The <component> version
+#
+# Copyright (c) 2006, Matthias Kretz, <kretz@kde.org>
+# Copyright (c) 2008, Alexander Neundorf, <neundorf@kde.org>
+# Copyright (c) 2011, Michael Jansen, <kde@michael-jansen.biz>
+# Copyright (c) 2015, Dimitry Ishenko, <dimitry.ishenko@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+
+include(FindPackageHandleStandardArgs)
+
+# The default components were taken from a survey over other FindFFmpeg.cmake files.
+if(NOT FFmpeg_FIND_COMPONENTS)
+ set(FFmpeg_FIND_COMPONENTS avcodec avformat avutil)
+endif()
+
+#
+### Macro: set_component_found
+#
+# Marks the given component as found,
+# if both *_LIBRARIES AND *_INCLUDE_DIRS are present.
+#
+macro(set_component_found _component )
+ if(${_component}_LIBRARIES AND ${_component}_INCLUDE_DIRS)
+ set(${_component}_FOUND TRUE)
+ endif()
+endmacro()
+
+#
+### Macro: find_component
+#
+# Checks for the given component by invoking pkgconfig
+# and then looking up the libraries and include directories.
+#
+macro(find_component _component _pkgconfig _library _header)
+
+ if(NOT WIN32)
+ find_package(PkgConfig)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_${_component} ${_pkgconfig})
+ endif()
+ endif()
+
+ find_path(${_component}_INCLUDE_DIRS ${_header}
+ HINTS
+ ${PC_${_component}_INCLUDEDIR}
+ ${PC_${_component}_INCLUDE_DIRS}
+ PATH_SUFFIXES
+ ffmpeg
+ )
+
+ find_library(${_component}_LIBRARIES NAMES ${_library}
+ HINTS
+ ${PC_${_component}_LIBDIR}
+ ${PC_${_component}_LIBRARY_DIRS}
+ )
+
+ set(${_component}_DEFINITIONS ${PC_${_component}_CFLAGS_OTHER} CACHE STRING "The ${_component} CFLAGS.")
+ set(${_component}_VERSION ${PC_${_component}_VERSION} CACHE STRING "The ${_component} version.")
+
+ set_component_found(${_component})
+
+ mark_as_advanced(
+ ${_component}_INCLUDE_DIRS
+ ${_component}_LIBRARIES
+ ${_component}_DEFINITIONS
+ ${_component}_VERSION
+ )
+
+endmacro()
+
+# Check if the results have already been cached
+if(NOT FFmpeg_LIBRARIES)
+
+ find_component(avcodec libavcodec avcodec libavcodec/avcodec.h)
+ find_component(avfilter libavfilter avfilter libavfilter/avfilter.h)
+ find_component(avformat libavformat avformat libavformat/avformat.h)
+ find_component(avdevice libavdevice avdevice libavdevice/avdevice.h)
+ find_component(avresample libavresample avresample libavresample/avresample.h)
+ find_component(avutil libavutil avutil libavutil/avutil.h)
+ find_component(swresample libswresample swresample libswresample/swresample.h)
+ find_component(swscale libswscale swscale libswscale/swscale.h)
+ find_component(postproc libpostproc postproc libpostproc/postprocess.h)
+
+ foreach(_component ${FFmpeg_FIND_COMPONENTS})
+ if(${_component}_FOUND)
+ list(APPEND FFmpeg_LIBRARIES ${${_component}_LIBRARIES})
+ list(APPEND FFmpeg_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS})
+
+ get_filename_component(_dir ${${_component}_LIBRARIES} PATH)
+ list(APPEND FFmpeg_LIBRARY_DIRS ${_dir})
+
+ list(APPEND FFmpeg_DEFINITIONS ${${_component}_DEFINITIONS})
+ endif()
+ endforeach()
+
+ if(FFmpeg_INCLUDE_DIRS)
+ list(REMOVE_DUPLICATES FFmpeg_INCLUDE_DIRS)
+ endif()
+
+ if(FFmpeg_LIBRARY_DIRS)
+ list(REMOVE_DUPLICATES FFmpeg_LIBRARY_DIRS)
+ endif()
+
+ # Cache the results
+ set(FFmpeg_INCLUDE_DIRS ${FFmpeg_INCLUDE_DIRS} CACHE STRING "The FFmpeg include directories." FORCE)
+ set(FFmpeg_LIBRARIES ${FFmpeg_LIBRARIES} CACHE STRING "The FFmpeg libraries." FORCE)
+ set(FFmpeg_LIBRARY_DIRS ${FFmpeg_LIBRARY_DIRS} CACHE STRING "The FFmpeg library directories." FORCE)
+ set(FFmpeg_DEFINITIONS ${FFmpeg_DEFINITIONS} CACHE STRING "The FFmpeg CFLAGS." FORCE)
+
+ mark_as_advanced(FFmpeg_INCLUDE_DIRS FFmpeg_LIBRARIES FFmpeg_LIBRARY_DIRS FFmpeg_DEFINITIONS)
+
+endif()
+
+# Set non-cached _FOUND vars for the components
+foreach(_component avcodec avdevice avfilter avformat avresample avutil postproc swresample swscale)
+ set_component_found(${_component})
+endforeach()
+
+# Make a list of required vars
+set(_FFmpeg_REQUIRED_VARS FFmpeg_LIBRARIES FFmpeg_INCLUDE_DIRS)
+foreach(_component ${FFmpeg_FIND_COMPONENTS})
+ list(APPEND _FFmpeg_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS)
+endforeach()
+
+find_package_handle_standard_args(FFmpeg DEFAULT_MSG ${_FFmpeg_REQUIRED_VARS})
--- /dev/null
+# - Try to find FreeImage
+#
+# Once done this will define
+# FREEIMAGE_FOUND - System has FreeImage
+# FREEIMAGE_INCLUDE_DIRS - The FreeImage include directories
+# FREEIMAGE_LIBRARIES - The libraries needed to use FreeImage
+# FREEIMAGE_LIBRARY_DIRS - Library directories
+# FREEIMAGE_DEFINITIONS - Compiler switches required for using FreeImage
+#
+# Copyright (c) 2015, Dimitry Ishenko, <dimitry.ishenko@gmail.com>
+#
+# Distributed under BSD license.
+
+if(NOT WIN32)
+ find_package(PkgConfig)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_FREEIMAGE freeimage)
+ endif()
+endif()
+
+find_path(FREEIMAGE_INCLUDE_DIRS FreeImage.h
+ HINTS ${PC_FREEIMAGE_INCLUDEDIR}
+ ${PC_FREEIMAGE_INCLUDE_DIRS})
+
+find_library(FREEIMAGE_LIBRARIES NAMES freeimage
+ HINTS ${PC_FREEIMAGE_LIBDIR}
+ ${PC_FREEIMAGE_LIBRARY_DIRS})
+
+set(FREEIMAGE_DEFINITIONS ${PC_FREEEMAGE_CFLAGS_OTHER})
+
+mark_as_advanced(FREEIMAGE_INCLUDE_DIRS FREEIMAGE_LIBRARIES FREEIMAGE_DEFINITIONS)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(FREEIMAGE DEFAULT_MSG FREEIMAGE_INCLUDE_DIRS FREEIMAGE_LIBRARIES)
--- /dev/null
+# - Try to find TBB components (adapted from FindFFmpeg.cmake)
+#
+# Once done this will define
+# TBB_FOUND - System has all TBB components
+# TBB_INCLUDE_DIRS - The TBB include directories
+# TBB_LIBRARIES - The libraries needed to use TBB components
+# TBB_LIBRARY_DIRS - Library directories
+# TBB_DEFINITIONS - Compiler switches required for using TBB components
+#
+# For each of the components
+# - tbb
+# - tbbmalloc
+# - tbbmalloc_proxy
+# the following variables will be defined
+# <component>_FOUND - System has <component>
+# <component>_INCLUDE_DIRS - The <component> include directories
+# <component>_LIBRARIES - The libraries needed to use <component>
+# <component>_DEFINITIONS - Compiler switches required for using <component>
+#
+# Original FindFFmpeg.cmake copyrights:
+# Copyright (c) 2006, Matthias Kretz, <kretz@kde.org>
+# Copyright (c) 2008, Alexander Neundorf, <neundorf@kde.org>
+# Copyright (c) 2011, Michael Jansen, <kde@michael-jansen.biz>
+#
+# Copyright (c) 2015, Dimitry Ishenko, <dimitry.ishenko@gmail.com>
+#
+# Distributed under BSD license.
+
+include(FindPackageHandleStandardArgs)
+
+if(NOT TBB_FIND_COMPONENTS)
+ set(TBB_FIND_COMPONENTS tbb tbbmalloc tbbmalloc_proxy)
+endif()
+
+#
+### Macro: find_component
+#
+# Checks for the given component by invoking pkgconfig and then looking up
+# the libraries and include directories
+#
+macro(find_component _component _pkgconfig _library _header)
+ if(NOT WIN32)
+ find_package(PkgConfig)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_${_component} ${_pkgconfig})
+ endif()
+ endif()
+
+ find_path(${_component}_INCLUDE_DIRS ${_header}
+ HINTS ${PC_${_component}_INCLUDEDIR}
+ ${PC_${_component}_INCLUDE_DIRS})
+
+ find_library(${_component}_LIBRARIES NAMES ${_library}
+ HINTS ${PC_${_component}_LIBDIR}
+ ${PC_${_component}_LIBRARY_DIRS})
+
+ set(${_component}_DEFINITIONS ${PC_${_component}_CFLAGS_OTHER})
+
+ if(${_component}_LIBRARIES AND ${_component}_INCLUDE_DIRS)
+ set(${_component}_FOUND TRUE)
+ endif ()
+
+ mark_as_advanced(${_component}_INCLUDE_DIRS ${_component}_LIBRARIES ${_component}_DEFINITIONS)
+endmacro()
+
+find_component(tbb tbb tbb tbb/tbb.h)
+find_component(tbbmalloc tbbmalloc tbbmalloc tbb/tbb_allocator.h)
+find_component(tbbmalloc_proxy tbbmalloc_proxy tbbmalloc_proxy tbb/tbbmalloc_proxy.h)
+
+foreach(_component ${TBB_FIND_COMPONENTS})
+ if(${_component}_FOUND)
+ list(APPEND TBB_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS})
+ list(APPEND TBB_LIBRARIES ${${_component}_LIBRARIES})
+
+ get_filename_component(_dir ${${_component}_LIBRARIES} PATH)
+ list(APPEND TBB_LIBRARY_DIRS ${_dir})
+
+ list(APPEND TBB_DEFINITIONS ${${_component}_DEFINITIONS})
+ endif()
+endforeach()
+
+if(TBB_INCLUDE_DIRS)
+ list(REMOVE_DUPLICATES TBB_INCLUDE_DIRS)
+endif()
+
+if(TBB_LIBRARY_DIRS)
+ list(REMOVE_DUPLICATES TBB_LIBRARY_DIRS)
+endif ()
+
+mark_as_advanced(TBB_INCLUDE_DIRS TBB_LIBRARY_DIRS TBB_LIBRARIES TBB_DEFINITIONS)
+
+set(_TBB_REQUIRED_VARS TBB_LIBRARIES TBB_INCLUDE_DIRS)
+foreach(_component ${TBB_FIND_COMPONENTS})
+ list(APPEND _TBB_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS)
+endforeach ()
+
+find_package_handle_standard_args(TBB DEFAULT_MSG ${_TBB_REQUIRED_VARS})
OUTPUT_VARIABLE GIT_HASH)
endif ()
-configure_file("${PROJECT_SOURCE_DIR}/version.tmpl" "${PROJECT_SOURCE_DIR}/version.h")
+include(CMakeDependentOption)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")
-set(DEPENDENCIES_FOLDER "${PROJECT_SOURCE_DIR}/dependencies64")
+CMAKE_DEPENDENT_OPTION(BUILD_MODULE_BLUEFISH "Build Bluefish module" ON "MSVC" OFF)
+option(BUILD_MODULE_DECKLINK "Build Decklink module" ON)
+option(BUILD_MODULE_HTML "Build HTML module" ON)
+option(BUILD_MODULE_PSD "Build PSD module" ON)
+CMAKE_DEPENDENT_OPTION(BUILD_MODULE_FLASH "Build Flash module" ON "MSVC" OFF)
+CMAKE_DEPENDENT_OPTION(BUILD_MODULE_NEWTEK "Build Newtek module" ON "MSVC" OFF)
-set(BOOST_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/boost")
-set(RXCPP_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/RxCpp/include")
-set(TBB_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/tbb/include")
-set(GLEW_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/glew/include")
-set(SFML_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/sfml/include")
-set(FREETYPE_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/freetype/include")
+option(USE_SYSTEM_BOOST "Compile against system boost instead of bundled one" OFF)
+option(USE_SYSTEM_FFMPEG "Compile against system FFmpeg instead of bundled one" OFF)
+option(USE_SYSTEM_TBB "Compile against system TBB instead of bundled one" OFF)
+option(USE_SYSTEM_GLEW "Compile against system GLEW instead of bundled one" OFF)
+option(USE_SYSTEM_FREETYPE "Compile against system FreeType instead of bundled one" OFF)
+option(USE_SYSTEM_FREEIMAGE "Compile against system FreeImage instead of bundled one" OFF)
+option(USE_SYSTEM_OPENAL "Compile against system OpenAL instead of bundled one" OFF)
+option(USE_SYSTEM_SFML "Compile against system SFML instead of bundled one" OFF)
+option(USE_SYSTEM_GTEST "Compile against system GTest instead of bundled one" OFF)
+option(USE_SYSTEM_FONTS "Compile against system fonts instead of bundled ones" OFF)
-if (MSVC)
- set(FFMPEG_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/ffmpeg/include" "${DEPENDENCIES_FOLDER}/ffmpeg/include-win32")
-else ()
- set(FFMPEG_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/ffmpeg/include")
-endif ()
+configure_file("${PROJECT_SOURCE_DIR}/version.tmpl" "${PROJECT_SOURCE_DIR}/version.h")
-set(FREEIMAGE_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/freeimage/include")
-set(OPENAL_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/openal/include")
-set(BLUEFISH_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/bluefish/include")
-set(CEF_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/cef/include")
-set(GTEST_INCLUDE_PATH "${DEPENDENCIES_FOLDER}/gtest/include")
+set(DEPENDENCIES_FOLDER "${PROJECT_SOURCE_DIR}/dependencies64")
if (MSVC)
set(PLATFORM_FOLDER_NAME "win32")
set(PLATFORM_FOLDER_NAME "linux")
endif ()
-set(FFMPEG_BIN_PATH "${DEPENDENCIES_FOLDER}/ffmpeg/bin/${PLATFORM_FOLDER_NAME}")
-set(FREEIMAGE_BIN_PATH "${DEPENDENCIES_FOLDER}/freeimage/bin/${PLATFORM_FOLDER_NAME}")
-set(GLEW_BIN_PATH "${DEPENDENCIES_FOLDER}/glew/bin/${PLATFORM_FOLDER_NAME}")
-set(OPENAL_BIN_PATH "${DEPENDENCIES_FOLDER}/openal/bin/${PLATFORM_FOLDER_NAME}")
-set(TBB_BIN_PATH "${DEPENDENCIES_FOLDER}/tbb/bin/${PLATFORM_FOLDER_NAME}")
-set(LIBERATION_FONTS_BIN_PATH "${DEPENDENCIES_FOLDER}/liberation-fonts")
+## boost ##
+if(USE_SYSTEM_BOOST)
+ find_package(Boost 1.56 REQUIRED COMPONENTS chrono date_time filesystem locale log regex system thread)
+ add_definitions(-DBOOST_ALL_DYN_LINK)
+else()
+ set(Boost_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/boost")
+ set(Boost_LIBRARIES boost_system boost_thread boost_chrono boost_filesystem boost_log boost_locale boost_regex boost_date_time)
+ link_directories("${DEPENDENCIES_FOLDER}/boost/stage/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+add_definitions( -DBOOST_THREAD_VERSION=4 )
+add_definitions( "-DBOOST_ASIO_ERROR_CATEGORY_NOEXCEPT=noexcept(true)" ) # Workaround macro redefinition in boost
+
+## TBB ##
+if(USE_SYSTEM_TBB)
+ find_package(TBB REQUIRED)
+else()
+ set(TBB_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/tbb/include")
+ if(MSVC)
+ set(TBB_LIBRARIES optimized tbb debug tbb_debug)
+ else()
+ set(TBB_LIBRARIES tbb tbbmalloc tbbmalloc_proxy)
+ endif()
+ set(TBB_BIN_DIR "${DEPENDENCIES_FOLDER}/tbb/bin/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/tbb/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+add_definitions( -DTBB_USE_CAPTURED_EXCEPTION=0 )
+
+## GLEW ##
+if(USE_SYSTEM_GLEW)
+ find_package(GLEW REQUIRED)
+ find_package(OpenGL REQUIRED)
+else()
+ set(GLEW_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/glew/include")
+ if(MSVC)
+ set(GLEW_LIBRARIES glew32)
+ set(OPENGL_gl_LIBRARY OpenGL32)
+ else()
+ set(GLEW_LIBRARIES GLEW)
+ set(OPENGL_gl_LIBRARY GL)
+ endif()
+ set(GLEW_BIN_DIR "${DEPENDENCIES_FOLDER}/glew/bin/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/glew/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+add_definitions( -DGLEW_NO_GLU )
+
+set(RXCPP_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/RxCpp/include")
+
+## SFML ##
+if(USE_SYSTEM_SFML)
+ find_package(SFML REQUIRED COMPONENTS graphics window system)
+else()
+ set(SFML_INCLUDE_DIR "${DEPENDENCIES_FOLDER}/sfml/include")
+ if(MSVC)
+ set(SFML_LIBRARIES
+ optimized sfml-system-2 debug sfml-system-d-2
+ optimized sfml-window-2 debug sfml-window-d-2
+ optimized sfml-graphics-2 debug sfml-graphics-d-2
+ )
+ else()
+ set(SFML_LIBRARIES
+ sfml-graphics-s
+ sfml-window-s
+ sfml-system-s
+ )
+ endif()
+ link_directories("${DEPENDENCIES_FOLDER}/sfml/lib/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/sfml/extlibs/lib")
+ add_definitions( -DSFML_STATIC )
+endif()
+
+## FreeType ##
+if(USE_SYSTEM_FREETYPE)
+ find_package(Freetype REQUIRED)
+else()
+ set(FREETYPE_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/freetype/include")
+ set(FREETYPE_LIBRARIES freetype)
+ link_directories("${DEPENDENCIES_FOLDER}/freetype/objs/win32/vc2010")
+endif()
+
+## FFmpeg ##
+if(USE_SYSTEM_FFMPEG)
+ find_package(FFmpeg REQUIRED COMPONENTS
+ avcodec
+ avdevice
+ avfilter
+ avformat
+ avutil
+ postproc
+ swresample
+ swscale)
+else()
+ set(FFmpeg_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/ffmpeg/include")
+ if (MSVC)
+ list(APPEND FFmpeg_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/ffmpeg/include-win32")
+ endif ()
+ set(FFmpeg_BIN_DIR "${DEPENDENCIES_FOLDER}/ffmpeg/bin/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/ffmpeg/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+
+## FreeImage ##
+if(USE_SYSTEM_FREEIMAGE)
+ find_package(FreeImage REQUIRED)
+else()
+ set(FREEIMAGE_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/freeimage/include")
+ if(MSVC)
+ set(FREEIMAGE_LIBRARIES optimized FreeImage debug FreeImaged)
+ else()
+ set(FREEIMAGE_LIBRARIES freeimage)
+ endif()
+ set(FREEIMAGE_BIN_DIR "${DEPENDENCIES_FOLDER}/freeimage/bin/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/freeimage/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+
+## OpenAL ##
+if(USE_SYSTEM_OPENAL)
+ find_package(OpenAL REQUIRED)
+else()
+ set(OPENAL_INCLUDE_DIR "${DEPENDENCIES_FOLDER}/openal/include")
+ if(MSVC)
+ set(OPENAL_LIBRARY OpenAL32)
+ else()
+ set(OPENAL_LIBRARY openal)
+ endif()
+ set(OPENAL_BIN_DIR "${DEPENDENCIES_FOLDER}/openal/bin/${PLATFORM_FOLDER_NAME}")
+ link_directories("${DEPENDENCIES_FOLDER}/openal/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+
+## Bluefish ##
+set(BLUEFISH_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/bluefish/include")
+link_directories("${DEPENDENCIES_FOLDER}/bluefish/lib")
+
+## CEF ##
+set(CEF_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/cef/include")
+if(MSVC)
+ set(CEF_LIBRARIES
+ optimized release/libcef
+ optimized release/libcef_dll_wrapper
+ debug debug/libcef
+ debug debug/libcef_dll_wrapper
+ )
+else()
+ set(CEF_LIBRARIES cef cef_dll_wrapper)
+endif()
set(CEF_PATH "${DEPENDENCIES_FOLDER}/cef")
set(CEF_BIN_PATH "${DEPENDENCIES_FOLDER}/cef/bin/${PLATFORM_FOLDER_NAME}")
+link_directories("${DEPENDENCIES_FOLDER}/cef/lib/${PLATFORM_FOLDER_NAME}")
+
+## GTest ##
+if(USE_SYSTEM_GTEST)
+ find_package(GTest REQUIRED)
+else()
+ set(GTEST_INCLUDE_DIRS "${DEPENDENCIES_FOLDER}/gtest/include")
+ if(MSVC)
+ set(GTEST_LIBRARIES optimized gtest debug gtestd)
+ else()
+ set(GTEST_LIBRARIES gtest)
+ endif()
+ link_directories("${DEPENDENCIES_FOLDER}/gtest/lib/${PLATFORM_FOLDER_NAME}")
+endif()
+
+## fonts ##
+if(NOT USE_SYSTEM_FONTS)
+ set(LIBERATION_FONTS_BIN_DIR "${DEPENDENCIES_FOLDER}/liberation-fonts")
+endif()
-link_directories("${DEPENDENCIES_FOLDER}/boost/stage/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/tbb/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/glew/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/sfml/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/sfml/extlibs/lib")
-link_directories("${DEPENDENCIES_FOLDER}/freetype/objs/win32/vc2010")
-link_directories("${DEPENDENCIES_FOLDER}/ffmpeg/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/asmlib")
-link_directories("${DEPENDENCIES_FOLDER}/freeimage/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/openal/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/bluefish/lib")
link_directories("${DEPENDENCIES_FOLDER}/zlib/lib")
-link_directories("${DEPENDENCIES_FOLDER}/cef/lib/${PLATFORM_FOLDER_NAME}")
-link_directories("${DEPENDENCIES_FOLDER}/gtest/lib/${PLATFORM_FOLDER_NAME}")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-add_definitions( -DSFML_STATIC )
-add_definitions( -DBOOST_THREAD_VERSION=4 )
-add_definitions( -DTBB_USE_CAPTURED_EXCEPTION=0 )
add_definitions( -DUNICODE )
add_definitions( -D_UNICODE )
-add_definitions( -DGLEW_NO_GLU )
-add_definitions( "-DBOOST_ASIO_ERROR_CATEGORY_NOEXCEPT=noexcept(true)" ) # Workaround macro redefinition in boost
add_definitions( -D_GLIBCXX_USE_CXX11_ABI=0 ) # Allow compilation in GCC 5 while keeping old dependencies
add_definitions( -DCASPAR_SOURCE_PREFIX="${CMAKE_CURRENT_SOURCE_DIR}" )
add_precompiled_header(accelerator StdAfx.h FORCEINCLUDE)
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${GLEW_INCLUDE_PATH})
-include_directories(${FFMPEG_INCLUDE_PATH})
-include_directories(${SFML_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${GLEW_INCLUDE_DIRS})
+include_directories(${FFmpeg_INCLUDE_DIRS})
+include_directories(${SFML_INCLUDE_DIR})
source_group(sources ./*)
source_group(sources\\cpu\\image cpu/image/*)
--- /dev/null
+#!/bin/sh
+
+fail()
+{
+ echo "$1" 1>&2
+ exit 1
+}
+
+BUILD_ARCHIVE_NAME="server"
+
+# Clean and enter shadow build folder
+echo Cleaning...
+if [ -e ../build ]; then
+ rm -Rf ../build || fail "Could not delete ../build"
+fi
+
+mkdir ../build || fail "Could not create ../build"
+cd ../build || fail "Could not enter ../build"
+
+# Run cmake
+echo Running cmake...
+cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+-DUSE_SYSTEM_BOOST=ON \
+-DUSE_SYSTEM_FFMPEG=ON \
+-DUSE_SYSTEM_TBB=ON \
+-DUSE_SYSTEM_GLEW=ON \
+-DUSE_SYSTEM_FREETYPE=ON \
+-DUSE_SYSTEM_FREEIMAGE=ON \
+-DUSE_SYSTEM_OPENAL=ON \
+-DUSE_SYSTEM_SFML=ON \
+-DUSE_SYSTEM_GTEST=ON \
+-DUSE_SYSTEM_FONTS=ON \
+.. || fail "cmake failed"
+
+# Run make using the number of hardware threads in BUILD_PARALLEL_THREADS
+echo Building...
+time make -j${BUILD_PARALLEL_THREADS:-4} || fail "make failed"
+
+# Create client folder to later zip
+SERVER_FOLDER="$BUILD_ARCHIVE_NAME"
+if [ -f "$SERVER_FOLDER" ]; then
+ rm -Rf "$SERVER_FOLDER" || fail "Could not delete $SERVER_FOLDER"
+fi
+BIN_DIR="$SERVER_FOLDER/usr/bin"
+LIB_DIR="$SERVER_FOLDER/usr/lib"
+DOC_DIR="$SERVER_FOLDER/usr/share/doc/casparcg-server"
+FONT_DIR="$SERVER_FOLDER/usr/share/fonts"
+
+mkdir "$SERVER_FOLDER" || fail "Could not create $SERVER_FOLDER"
+mkdir -p "$BIN_DIR" || fail "Could not create $BIN_DIR"
+mkdir -p "$LIB_DIR" || fail "Could not create $LIB_DIR"
+mkdir -p "$DOC_DIR" || fail "Could not create $DOC_DIR"
+mkdir -p "$FONT_DIR" || fail "Could not create $FONT_DIR"
+
+# Copy compiled binaries
+echo Copying binaries...
+cp -fa shell/lib* "$LIB_DIR/" 2>/dev/null || echo "Did not copy server libraries"
+cp -fa shell/*.ttf "$FONT_DIR/" 2>/dev/null || echo "Did not copy fonts"
+cp -fa shell/casparcg "$BIN_DIR/casparcg-server" || fail "Could not copy server executable"
+cp -fa shell/casparcg.config "$DOC_DIR/" || fail "Could not copy server config"
+cp -faR shell/locales "$BIN_DIR/" 2>/dev/null || echo "Did not copy server CEF locales"
+
+# Copy binary dependencies
+echo Copying binary dependencies...
+cp -fa ../deploy/general/*.pdf "$DOC_DIR/" || fail "Could not copy pdf"
+cp -faR ../deploy/general/wallpapers "$DOC_DIR/" || fail "Could not copy wallpapers"
+cp -faR ../deploy/general/server/media "$DOC_DIR/" || fail "Could not copy media"
+
+# Copy documentation
+echo Copying documentation...
+cp -fa ../CHANGELOG "$DOC_DIR" || fail "Could not copy CHANGES.txt"
+cp -fa ../README "$DOC_DIR" || fail "Could not copy README.txt"
+cp -fa ../LICENSE "$DOC_DIR" || fail "Could not copy LICENSE.txt"
+
+# Remove empty directories
+rmdir "$LIB_DIR" 2>/dev/null
+rmdir "$FONT_DIR" 2>/dev/null
+
+# Create tar.gz file
+echo Creating tag.gz...
+tar -cvzf "$BUILD_ARCHIVE_NAME.tar.gz" "$SERVER_FOLDER" || fail "Could not create archive"
add_precompiled_header(common stdafx.h FORCEINCLUDE)
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${GLEW_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${GLEW_INCLUDE_DIRS})
source_group(sources ./*)
source_group(sources\\gl gl/*)
source_group(sources\\os\\windows os/windows/*)
source_group(sources\\os os/*)
+target_link_libraries(common
+ "${ASMLIB_LIBRARIES}"
+ "${TBB_LIBRARIES}"
+ "${GLEW_LIBRARIES}"
+ "${OPENGL_gl_LIBRARY}"
+ "${FREETYPE_LIBRARIES}"
+ "${OPENAL_LIBRARY}"
+ "${SFML_LIBRARIES}"
+)
+
if (MSVC)
target_link_libraries(common
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
- optimized tbb.lib
- debug tbb_debug.lib
- OpenGL32.lib
- glew32.lib
- openal32.lib
zlibstat.lib
)
else ()
target_link_libraries(common
- boost_system
- boost_thread
- boost_chrono
- boost_filesystem
- boost_log
- boost_locale
- boost_regex
- boost_date_time
- tbb
- tbbmalloc
- tbbmalloc_proxy
- sfml-graphics-s
- sfml-window-s
- sfml-system-s
- GLEW
- GL
+ "${Boost_LIBRARIES}"
X11
jpeg
sndfile
- freetype
udev
Xrandr
pthread
)
endif ()
-if(MSVC)
- casparcg_add_runtime_dependency("${GLEW_BIN_PATH}/glew32.dll")
- casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb.dll")
- casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb_debug.dll")
+if(NOT USE_SYSTEM_TBB)
+ if(MSVC)
+ casparcg_add_runtime_dependency("${GLEW_BIN_DIR}/glew32.dll")
+ casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbb.dll")
+ casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbb_debug.dll")
- # Reenable when tbb gets official support for vc14
- # casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc.dll")
- # casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc_debug.dll")
- # casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc_proxy.dll")
- # casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc_proxy_debug.dll")
-else()
- casparcg_add_runtime_dependency("${GLEW_BIN_PATH}/libGLEW.so.1.12")
- casparcg_add_runtime_dependency("${TBB_BIN_PATH}/libtbb.so.2")
- casparcg_add_runtime_dependency("${TBB_BIN_PATH}/libtbbmalloc_proxy.so.2")
- casparcg_add_runtime_dependency("${TBB_BIN_PATH}/libtbbmalloc.so.2")
+ # Reenable when tbb gets official support for vc14
+ # casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbbmalloc.dll")
+ # casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbbmalloc_debug.dll")
+ # casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbbmalloc_proxy.dll")
+ # casparcg_add_runtime_dependency("${TBB_BIN_DIR}/tbbmalloc_proxy_debug.dll")
+ else()
+ casparcg_add_runtime_dependency("${GLEW_BIN_DIR}/libGLEW.so.1.12")
+ casparcg_add_runtime_dependency("${TBB_BIN_DIR}/libtbb.so.2")
+ casparcg_add_runtime_dependency("${TBB_BIN_DIR}/libtbbmalloc_proxy.so.2")
+ casparcg_add_runtime_dependency("${TBB_BIN_DIR}/libtbbmalloc.so.2")
+ endif()
endif()
add_precompiled_header(core StdAfx.h FORCEINCLUDE)
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${SFML_INCLUDE_PATH})
-include_directories(${FREETYPE_INCLUDE_PATH})
-include_directories(${GLEW_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${SFML_INCLUDE_DIR})
+include_directories(${FREETYPE_INCLUDE_DIRS})
+include_directories(${GLEW_INCLUDE_DIRS})
source_group(sources ./*)
source_group(sources\\consumer consumer/*)
source_group(sources\\producer\\transition producer/transition/*)
source_group(sources\\producer\\separated producer/separated/*)
-if (MSVC)
- target_link_libraries(core
- common
+target_link_libraries(core
+ common
- freetype.lib
- )
-else()
- target_link_libraries(core
- common
-
- freetype
- )
-endif()
+ "${FREETYPE_LIBRARIES}"
+)
add_subdirectory(ffmpeg)
add_subdirectory(oal)
-if (MSVC)
+if(BUILD_MODULE_BLUEFISH)
add_subdirectory(bluefish)
-endif ()
+endif()
+
+if(BUILD_MODULE_DECKLINK)
+ add_subdirectory(decklink)
+endif()
-add_subdirectory(decklink)
add_subdirectory(screen)
-add_subdirectory(html)
-add_subdirectory(psd)
-if (MSVC)
+if(BUILD_MODULE_HTML)
+ add_subdirectory(html)
+endif()
+
+if(BUILD_MODULE_PSD)
+ add_subdirectory(psd)
+endif()
+
+if(BUILD_MODULE_FLASH)
add_subdirectory(flash)
+endif()
+
+if(BUILD_MODULE_NEWTEK)
add_subdirectory(newtek)
-endif ()
+endif()
add_subdirectory(image)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${BLUEFISH_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${BLUEFISH_INCLUDE_DIRS})
set_target_properties(bluefish PROPERTIES FOLDER modules)
source_group(sources ./*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${FFMPEG_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${FFmpeg_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
set_target_properties(decklink PROPERTIES FOLDER modules)
source_group(sources ./*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${FFMPEG_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${FFmpeg_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
set_target_properties(ffmpeg PROPERTIES FOLDER modules)
source_group(sources ./*)
source_group(sources\\producer\\video producer/video/*)
source_group(sources\\producer producer/*)
-if (MSVC)
- target_link_libraries(ffmpeg
- common
- core
-
- avformat.lib
- avcodec.lib
- avutil.lib
- avfilter.lib
- avdevice.lib
- swscale.lib
- swresample.lib
- )
-else()
- target_link_libraries(ffmpeg
- common
- core
-
- -Wl,--start-group
- avformat.so
- avcodec.so
- avutil.so
- avfilter.so
- avdevice.so
- swscale.so
- swresample.so
- postproc.so
-
- ass
- bluray
- crypto
- expat
- fontconfig
- fribidi
- gmp
- gnutls
- gsm
- hogweed
- ilbc
- modplug
- mp3lame
- nettle
- ogg
- opencore-amrnb
- opencore-amrwb
- opus
- rtmp
- ssl
- tasn1
- theoradec
- theoraenc
- vorbis
- vorbisenc
- vpx
- x264
- xavs
- xvidcore
- z
- -Wl,--end-group
- )
+if(NOT USE_SYSTEM_FFMPEG)
+ if(MSVC)
+ set(FFmpeg_LIBRARIES
+ avformat.lib
+ avcodec.lib
+ avutil.lib
+ avfilter.lib
+ avdevice.lib
+ swscale.lib
+ swresample.lib)
+ else()
+ set(FFmpeg_LIBRARIES
+ -Wl,--start-group
+ avformat.so
+ avcodec.so
+ avutil.so
+ avfilter.so
+ avdevice.so
+ swscale.so
+ swresample.so
+ postproc.so
+
+ ass
+ bluray
+ crypto
+ expat
+ fontconfig
+ fribidi
+ gmp
+ gnutls
+ gsm
+ hogweed
+ ilbc
+ modplug
+ mp3lame
+ nettle
+ ogg
+ opencore-amrnb
+ opencore-amrwb
+ opus
+ rtmp
+ ssl
+ tasn1
+ theoradec
+ theoraenc
+ vorbis
+ vorbisenc
+ vpx
+ x264
+ xavs
+ xvidcore
+ z
+ -Wl,--end-group)
+ endif()
endif()
+target_link_libraries(ffmpeg common core "${FFmpeg_LIBRARIES}")
+
casparcg_add_include_statement("modules/ffmpeg/ffmpeg.h")
casparcg_add_init_statement("ffmpeg::init" "ffmpeg")
casparcg_add_uninit_statement("ffmpeg::uninit")
casparcg_add_module_project("ffmpeg")
-if(MSVC)
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avcodec-56.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avdevice-56.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avfilter-5.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avformat-56.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/avutil-54.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/postproc-53.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swresample-1.dll")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swscale-3.dll")
-else()
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavcodec.so.56")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavdevice.so.56")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavfilter.so.5")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavformat.so.56")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libavutil.so.54")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpostproc.so.53")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswresample.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libswscale.so.3")
-
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libass.so.5")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libbluray.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libcrypto.so.1.0.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libexpat.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfontconfig.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfreetype.so.6")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libfribidi.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgme.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgmp.so.10")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls-openssl.so.27")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls-xssl.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgnutls.so.28")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libgsm.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libhogweed.so.2")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libilbc.so.2")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liblzma.so.5")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libmodplug.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libmp3lame.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libnettle.so.4")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libogg.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopencore-amrnb.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopencore-amrwb.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopenjpeg.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libopus.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liborc-0.4.so.0")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/liborc-test-0.4.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcre.so.1")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcrecpp.so.0")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpcreposix.so.0")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpng.so.3")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libpng12.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/librtmp.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libschroedinger-1.0.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libsoxr-lsr.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libsoxr.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libspeex.so.1")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libspeexdsp.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libssl.so.1.0.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtasn1.so.6")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheora.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheoradec.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtheoraenc.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libtwolame.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libva.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvidstab.so.0.9")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvo-aacenc.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvo-amrwbenc.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbis.so.0")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbisenc.so.2")
-# casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvorbisfile.so.3")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libvpx.so.2")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libwavpack.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libwebp.so.5")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libx264.so.148")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libx265.so.59")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxavs.so.1")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxml2.so.2")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libxvidcore.so.4")
- casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/libz.so.1")
-
+if(NOT USE_SYSTEM_FFMPEG)
+ if(MSVC)
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/avcodec-56.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/avdevice-56.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/avfilter-5.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/avformat-56.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/avutil-54.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/postproc-53.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/swresample-1.dll")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/swscale-3.dll")
+ else()
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libavcodec.so.56")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libavdevice.so.56")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libavfilter.so.5")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libavformat.so.56")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libavutil.so.54")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpostproc.so.53")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libswresample.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libswscale.so.3")
+
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libass.so.5")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libbluray.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libcrypto.so.1.0.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libexpat.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libfontconfig.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libfreetype.so.6")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libfribidi.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgme.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgmp.so.10")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgnutls-openssl.so.27")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgnutls-xssl.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgnutls.so.28")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libgsm.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libhogweed.so.2")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libilbc.so.2")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/liblzma.so.5")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libmodplug.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libmp3lame.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libnettle.so.4")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libogg.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libopencore-amrnb.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libopencore-amrwb.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libopenjpeg.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libopus.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/liborc-0.4.so.0")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/liborc-test-0.4.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpcre.so.1")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpcrecpp.so.0")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpcreposix.so.0")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpng.so.3")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libpng12.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/librtmp.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libschroedinger-1.0.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libsoxr-lsr.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libsoxr.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libspeex.so.1")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libspeexdsp.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libssl.so.1.0.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libtasn1.so.6")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libtheora.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libtheoradec.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libtheoraenc.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libtwolame.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libva.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvidstab.so.0.9")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvo-aacenc.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvo-amrwbenc.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvorbis.so.0")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvorbisenc.so.2")
+# casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvorbisfile.so.3")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libvpx.so.2")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libwavpack.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libwebp.so.5")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libx264.so.148")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libx265.so.59")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libxavs.so.1")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libxml2.so.2")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libxvidcore.so.4")
+ casparcg_add_runtime_dependency("${FFmpeg_BIN_DIR}/libz.so.1")
+ endif()
endif()
-
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${FREEIMAGE_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${FREEIMAGE_INCLUDE_DIRS})
set_target_properties(flash PROPERTIES FOLDER modules)
source_group(sources\\interop interop/*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${CEF_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${CEF_INCLUDE_DIRS})
include_directories(${CEF_PATH})
set_target_properties(html PROPERTIES FOLDER modules)
source_group(sources\\producer producer/*)
source_group(sources ./*)
-if(MSVC)
- target_link_libraries(html
- common
- core
-
- optimized release/libcef
- optimized release/libcef_dll_wrapper
- debug debug/libcef
- debug debug/libcef_dll_wrapper
- )
-else()
- target_link_libraries(html
- common
- core
-
- cef
- cef_dll_wrapper
- )
-endif()
+target_link_libraries(html
+ common
+ core
+ "${CEF_LIBRARIES}"
+)
casparcg_add_include_statement("modules/html/html.h")
casparcg_add_init_statement("html::init" "html")
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${FREEIMAGE_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${FREEIMAGE_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
set_target_properties(image PROPERTIES FOLDER modules)
source_group(sources\\consumer consumer/*)
source_group(sources\\util util/*)
source_group(sources ./*)
-target_link_libraries(image common core)
+target_link_libraries(image
+ common
+ core
-if(MSVC)
- target_link_libraries(image
- common
- core
-
- optimized FreeImage.lib
- debug FreeImaged.lib
- )
-else()
- target_link_libraries(image
- common
- core
-
- freeimage
- )
-endif()
+ "${FREEIMAGE_LIBRARIES}"
+)
casparcg_add_include_statement("modules/image/image.h")
casparcg_add_init_statement("image::init" "image")
casparcg_add_uninit_statement("image::uninit")
casparcg_add_module_project("image")
-if(MSVC)
- casparcg_add_runtime_dependency("${FREEIMAGE_BIN_PATH}/FreeImage.dll")
- casparcg_add_runtime_dependency("${FREEIMAGE_BIN_PATH}/FreeImaged.dll")
-else()
- casparcg_add_runtime_dependency("${FREEIMAGE_BIN_PATH}/libfreeimage.so.3")
+if(NOT USE_SYSTEM_FREEIMAGE)
+ if(MSVC)
+ casparcg_add_runtime_dependency("${FREEIMAGE_BIN_DIR}/FreeImage.dll")
+ casparcg_add_runtime_dependency("${FREEIMAGE_BIN_DIR}/FreeImaged.dll")
+ else()
+ casparcg_add_runtime_dependency("${FREEIMAGE_BIN_DIR}/libfreeimage.so.3")
+ endif()
endif()
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
set_target_properties(newtek PROPERTIES FOLDER modules)
source_group(sources\\consumer consumer/*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${OPENAL_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${OPENAL_INCLUDE_DIR})
set_target_properties(oal PROPERTIES FOLDER modules)
source_group(sources\\consumer consumer/*)
source_group(sources ./*)
-if(MSVC)
- target_link_libraries(oal
- common
- core
+target_link_libraries(oal
+ common
+ core
- OpenAL32)
-else()
- target_link_libraries(oal
- common
- core
-
- openal)
-endif()
+ "${OPENAL_LIBRARY}"
+)
casparcg_add_include_statement("modules/oal/oal.h")
casparcg_add_init_statement("oal::init" "oal")
casparcg_add_module_project("oal")
-if(MSVC)
- casparcg_add_runtime_dependency("${OPENAL_BIN_PATH}/OpenAL32.dll")
-else()
- casparcg_add_runtime_dependency("${OPENAL_BIN_PATH}/libopenal.so.1")
+if(NOT USE_SYSTEM_OPENAL)
+ if(MSVC)
+ casparcg_add_runtime_dependency("${OPENAL_BIN_DIR}/OpenAL32.dll")
+ else()
+ casparcg_add_runtime_dependency("${OPENAL_BIN_DIR}/libopenal.so.1")
+ endif()
endif()
-
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
set_target_properties(psd PROPERTIES FOLDER modules)
source_group(sources\\util util/*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${FFMPEG_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${FFmpeg_INCLUDE_DIRS})
set_target_properties(reroute PROPERTIES FOLDER modules)
source_group(sources\\producer producer/*)
include_directories(..)
include_directories(../..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${GLEW_INCLUDE_PATH})
-include_directories(${SFML_INCLUDE_PATH})
-include_directories(${FFMPEG_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${GLEW_INCLUDE_DIRS})
+include_directories(${SFML_INCLUDE_DIR})
+include_directories(${FFmpeg_INCLUDE_DIRS})
set_target_properties(screen PROPERTIES FOLDER modules)
source_group(sources\\consumer consumer/*)
add_precompiled_header(protocol StdAfx.h FORCEINCLUDE)
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
source_group(sources\\amcp amcp/*)
source_group(sources\\cii cii/*)
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
source_group(sources ./*)
add_custom_target(casparcg_copy_dependencies ALL)
-casparcg_add_runtime_dependency("${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf")
+if(NOT USE_SYSTEM_FONTS)
+ casparcg_add_runtime_dependency("${LIBERATION_FONTS_BIN_DIR}/LiberationSans-Regular.ttf")
+endif()
casparcg_add_runtime_dependency("${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config")
set(OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
common
core
ffmpeg
+ "${GTEST_LIBRARIES}"
)
-if (MSVC)
- target_link_libraries(unit-test
- optimized gtest.lib
- debug gtestd.lib
- )
-else ()
- target_link_libraries(unit-test
- gtest
- )
-endif ()
-
include_directories(..)
-include_directories(${BOOST_INCLUDE_PATH})
-include_directories(${RXCPP_INCLUDE_PATH})
-include_directories(${TBB_INCLUDE_PATH})
-include_directories(${GTEST_INCLUDE_PATH})
+include_directories(${Boost_INCLUDE_DIRS})
+include_directories(${RXCPP_INCLUDE_DIRS})
+include_directories(${TBB_INCLUDE_DIRS})
+include_directories(${GTEST_INCLUDE_DIRS})
source_group(sources ./*)