]> git.sesse.net Git - casparcg/blob - shell/CMakeLists.txt
68ff4f160533c7682bdfab9ad75d5c29901c9692
[casparcg] / shell / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.6)
2 project (shell)
3
4 join_list("${CASPARCG_MODULE_INCLUDE_STATEMENTS}" "\n" CASPARCG_MODULE_INCLUDE_STATEMENTS)
5 join_list("${CASPARCG_MODULE_INIT_STATEMENTS}" "\n" CASPARCG_MODULE_INIT_STATEMENTS)
6 join_list("${CASPARCG_MODULE_UNINIT_STATEMENTS}" "\n" CASPARCG_MODULE_UNINIT_STATEMENTS)
7 configure_file("${PROJECT_SOURCE_DIR}/included_modules.tmpl" "${PROJECT_SOURCE_DIR}/included_modules.h")
8
9 if (MSVC)
10         set(OS_SPECIFIC_SOURCES
11                         resource.h
12                         shell.rc
13                         windows_specific.cpp
14         )
15 elseif (CMAKE_COMPILER_IS_GNUCXX)
16         set(OS_SPECIFIC_SOURCES
17                         linux_specific.cpp
18         )
19 endif ()
20 set(SOURCES
21                 casparcg.config
22                 main.cpp
23                 server.cpp
24                 stdafx.cpp
25 )
26 set(HEADERS
27                 included_modules.h
28                 platform_specific.h
29                 server.h
30                 stdafx.h
31 )
32
33 add_executable(casparcg ${SOURCES} ${HEADERS} ${OS_SPECIFIC_SOURCES})
34 add_precompiled_header(casparcg stdafx.h FORCEINCLUDE)
35
36 include_directories(..)
37 include_directories(${BOOST_INCLUDE_PATH})
38 include_directories(${RXCPP_INCLUDE_PATH})
39 include_directories(${TBB_INCLUDE_PATH})
40
41 source_group(sources ./*)
42
43 if (MSVC)
44         target_link_libraries(casparcg
45                 zlibstat.lib
46         )
47 endif ()
48
49 target_link_libraries(casparcg
50                 accelerator
51                 common
52                 core
53                 protocol
54
55                 "${CASPARCG_MODULE_PROJECTS}"
56
57                 reroute
58 )
59
60 add_custom_target(casparcg_copy_dependencies ALL)
61
62 casparcg_add_runtime_dependency("${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf")
63 casparcg_add_runtime_dependency("${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config")
64
65 set(OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
66
67 foreach(FILE_TO_COPY ${CASPARCG_RUNTIME_DEPENDENCIES})
68         add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/\")
69         add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/\")
70 endforeach(FILE_TO_COPY)