]> git.sesse.net Git - casparcg/blob - shell/CMakeLists.txt
* Broke out platform specific parts of main.cpp to platform_specific.h with implement...
[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                 main.cpp
22                 server.cpp
23                 stdafx.cpp
24 )
25 set(HEADERS
26                 included_modules.h
27                 platform_specific.h
28                 server.h
29                 stdafx.h
30 )
31
32 add_executable(casparcg ${SOURCES} ${HEADERS} ${OS_SPECIFIC_SOURCES})
33 add_precompiled_header(casparcg stdafx.h FORCEINCLUDE)
34
35 include_directories(..)
36 include_directories(${BOOST_INCLUDE_PATH})
37 include_directories(${RXCPP_INCLUDE_PATH})
38 include_directories(${TBB_INCLUDE_PATH})
39
40 source_group(sources ./*)
41
42 target_link_libraries(casparcg
43                 accelerator
44                 common
45                 core
46                 protocol
47
48                 "${CASPARCG_MODULE_PROJECTS}"
49                 reroute
50
51                 alibcof64.lib
52                 jpeg.lib
53                 sndfile.lib
54                 optimized sfml-system-2.lib
55                 optimized sfml-window-2.lib
56                 optimized sfml-graphics-2.lib
57                 debug sfml-system-d-2.lib
58                 debug sfml-window-d-2.lib
59                 debug sfml-graphics-d-2.lib
60                 Winmm.lib
61                 Ws2_32.lib
62                 avformat.lib
63                 avcodec.lib
64                 avutil.lib
65                 avfilter.lib
66                 swscale.lib
67                 swresample.lib
68                 optimized tbb.lib
69                 debug tbb_debug.lib
70                 OpenGL32.lib
71                 glew32.lib
72                 openal32.lib
73                 optimized FreeImage.lib
74                 debug FreeImaged.lib
75                 freetype.lib
76                 zlibstat.lib
77 )
78
79 set(OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
80
81 add_custom_command(TARGET casparcg POST_BUILD
82                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avcodec-55.dll\" \"${OUTPUT_FOLDER}/\"
83                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avdevice-55.dll\" \"${OUTPUT_FOLDER}/\"
84                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avfilter-4.dll\" \"${OUTPUT_FOLDER}/\"
85                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avformat-55.dll\" \"${OUTPUT_FOLDER}/\"
86                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/avutil-52.dll\" \"${OUTPUT_FOLDER}/\"
87                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/postproc-52.dll\" \"${OUTPUT_FOLDER}/\"
88                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/swresample-0.dll\" \"${OUTPUT_FOLDER}/\"
89                 COMMAND ${CMAKE_COMMAND} -E copy \"${FFMPEG_BIN_PATH}/swscale-2.dll\" \"${OUTPUT_FOLDER}/\"
90                 COMMAND ${CMAKE_COMMAND} -E copy \"${FREEIMAGE_BIN_PATH}/FreeImage.dll\" \"${OUTPUT_FOLDER}/\"
91                 COMMAND ${CMAKE_COMMAND} -E copy \"${FREEIMAGE_BIN_PATH}/FreeImaged.dll\" \"${OUTPUT_FOLDER}/\"
92                 COMMAND ${CMAKE_COMMAND} -E copy \"${GLEW_BIN_PATH}/glew32.dll\" \"${OUTPUT_FOLDER}/\"
93                 COMMAND ${CMAKE_COMMAND} -E copy \"${OPENAL_BIN_PATH}/OpenAL32.dll\" \"${OUTPUT_FOLDER}/\"
94                 COMMAND ${CMAKE_COMMAND} -E copy \"${OPENAL_BIN_PATH}/wrap_oal.dll\" \"${OUTPUT_FOLDER}/\"
95                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbb.dll\" \"${OUTPUT_FOLDER}/\"
96                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbb_debug.dll\" \"${OUTPUT_FOLDER}/\"
97                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc.dll\" \"${OUTPUT_FOLDER}/\"
98                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_debug.dll\" \"${OUTPUT_FOLDER}/\"
99                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_proxy.dll\" \"${OUTPUT_FOLDER}/\"
100                 COMMAND ${CMAKE_COMMAND} -E copy \"${TBB_BIN_PATH}/tbbmalloc_proxy_debug.dll\" \"${OUTPUT_FOLDER}/\"
101
102                 COMMAND ${CMAKE_COMMAND} -E copy \"${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf\" \"${OUTPUT_FOLDER}/\"
103                 COMMAND ${CMAKE_COMMAND} -E copy \"${LIBERATION_FONTS_BIN_PATH}/LiberationSans-Regular.ttf\" \"${CMAKE_CURRENT_BINARY_DIR}/\"
104
105                 COMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config\" \"${OUTPUT_FOLDER}/\"
106                 COMMAND ${CMAKE_COMMAND} -E copy \"${CMAKE_CURRENT_SOURCE_DIR}/casparcg.config\" \"${CMAKE_CURRENT_BINARY_DIR}/\"
107 )