]> git.sesse.net Git - casparcg/blob - CMakeLists.txt
Made the server more portable
[casparcg] / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.6)
2 project ("CasparCG Server")
3
4 find_package(Git)
5
6 set(GIT_REV "N/A")
7
8 if (GIT_FOUND)
9         exec_program("${GIT_EXECUTABLE}" "${PROJECT_SOURCE_DIR}"
10                         ARGS rev-parse --verify --short HEAD
11                         OUTPUT_VARIABLE GIT_REV)
12 endif ()
13
14 configure_file("${PROJECT_SOURCE_DIR}/version.tmpl" "${PROJECT_SOURCE_DIR}/version.h")
15
16 set(DEPENDENCIES_FOLDER                 "${PROJECT_SOURCE_DIR}/dependencies64")
17
18 set(BOOST_INCLUDE_PATH                  "${DEPENDENCIES_FOLDER}/boost")
19 set(RXCPP_INCLUDE_PATH                  "${DEPENDENCIES_FOLDER}/RxCpp/include")
20 set(TBB_INCLUDE_PATH                    "${DEPENDENCIES_FOLDER}/tbb/include")
21 set(GLEW_INCLUDE_PATH                   "${DEPENDENCIES_FOLDER}/glew/include")
22 set(SFML_INCLUDE_PATH                   "${DEPENDENCIES_FOLDER}/sfml/include")
23 set(FREETYPE_INCLUDE_PATH               "${DEPENDENCIES_FOLDER}/freetype/include")
24
25 if (MSVC)
26         set(FFMPEG_INCLUDE_PATH         "${DEPENDENCIES_FOLDER}/ffmpeg/include" "${DEPENDENCIES_FOLDER}/ffmpeg/include-win32")
27 else ()
28         set(FFMPEG_INCLUDE_PATH         "${DEPENDENCIES_FOLDER}/ffmpeg/include")
29 endif ()
30
31 set(ASMLIB_INCLUDE_PATH                 "${DEPENDENCIES_FOLDER}/asmlib")
32 set(FREEIMAGE_INCLUDE_PATH              "${DEPENDENCIES_FOLDER}/freeimage/include")
33 set(OPENAL_INCLUDE_PATH                 "${DEPENDENCIES_FOLDER}/openal/include")
34 set(BLUEFISH_INCLUDE_PATH               "${DEPENDENCIES_FOLDER}/bluefish/include")
35
36 set(FFMPEG_BIN_PATH                             "${DEPENDENCIES_FOLDER}/ffmpeg/bin")
37 set(FREEIMAGE_BIN_PATH                  "${DEPENDENCIES_FOLDER}/freeimage/bin")
38 set(GLEW_BIN_PATH                               "${DEPENDENCIES_FOLDER}/glew/bin")
39 set(OPENAL_BIN_PATH                             "${DEPENDENCIES_FOLDER}/openal/bin")
40 set(TBB_BIN_PATH                                "${DEPENDENCIES_FOLDER}/tbb/bin")
41 set(LIBERATION_FONTS_BIN_PATH   "${DEPENDENCIES_FOLDER}/liberation-fonts")
42
43 link_directories("${DEPENDENCIES_FOLDER}/boost/stage/lib")
44 link_directories("${DEPENDENCIES_FOLDER}/tbb/lib")
45 link_directories("${DEPENDENCIES_FOLDER}/glew/lib")
46 link_directories("${DEPENDENCIES_FOLDER}/sfml/lib")
47 link_directories("${DEPENDENCIES_FOLDER}/sfml/extlibs/lib")
48 link_directories("${DEPENDENCIES_FOLDER}/freetype/objs/win32/vc2010")
49 link_directories("${DEPENDENCIES_FOLDER}/ffmpeg/lib")
50 link_directories("${DEPENDENCIES_FOLDER}/asmlib")
51 link_directories("${DEPENDENCIES_FOLDER}/freeimage/lib")
52 link_directories("${DEPENDENCIES_FOLDER}/openal/lib")
53 link_directories("${DEPENDENCIES_FOLDER}/bluefish/lib")
54 link_directories("${DEPENDENCIES_FOLDER}/zlib/lib")
55
56 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
57
58 add_definitions( -DSFML_STATIC )
59 add_definitions( -DBOOST_THREAD_VERSION=4 )
60 add_definitions( -DTBB_USE_CAPTURED_EXCEPTION=0 )
61 add_definitions( -DUNICODE )
62 add_definitions( -D_UNICODE )
63
64 if (MSVC)
65         set(CMAKE_CXX_FLAGS                     "${CMAKE_CXX_FLAGS}                     /EHa /Zi /W4 /WX /MP /fp:fast /FIcommon/compiler/vs/disable_silly_warnings.h")
66         set(CMAKE_CXX_FLAGS_DEBUG       "${CMAKE_CXX_FLAGS_DEBUG}       /D TBB_USE_ASSERT=1 /D TBB_USE_DEBUG /bigobj")
67         set(CMAKE_CXX_FLAGS_RELEASE     "${CMAKE_CXX_FLAGS_RELEASE}     /Oi /Ot /Gy")
68
69 elseif (CMAKE_COMPILER_IS_GNUCXX)
70         add_compile_options( -std=c++11 )
71         add_compile_options( -msse3 )
72         add_compile_options( -mssse3 )
73         add_compile_options( -msse4.1 )
74 endif ()
75
76 cmake_policy(SET CMP0045 OLD)
77 include(CMake/PrecompiledHeader.cmake)
78
79 add_subdirectory(accelerator)
80 add_subdirectory(common)
81 add_subdirectory(core)
82 add_subdirectory(modules)
83 add_subdirectory(protocol)
84 add_subdirectory(shell)
85