1 cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
2 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
12 set(DP_VIDEO_CAPTURE 1)
21 cl_collision.c cl_collision.h
23 cl_dyntexture.c cl_dyntexture.h
28 cl_screen.c cl_screen.h
30 clvm_cmds.c clvm_cmds.h
32 collision.c collision.h
38 dpsoftrast.c dpsoftrast.h
39 dpvsimpledecode.c dpvsimpledecode.h
43 ft2.c ft2.h ft2_defs.h ft2_fontdefs.h
45 gl_backend.c gl_backend.h
54 image_png.c image_png.h
60 matrixlib.c matrixlib.h
62 meshqueue.c meshqueue.h
63 mod_skeletal_animatevertices_sse.c mod_skeletal_animatevertices_sse.h
64 mod_skeletal_animatevertices_generic.c mod_skeletal_animatevertices_generic.h
65 model_alias.c model_alias.h
66 model_brush.c model_brush.h
67 model_shared.c model_shared.h
68 model_sprite.c model_sprite.h
74 prvm_cmds.c prvm_cmds.h
78 r_lerpanim.c r_lerpanim.h
80 r_modules.c r_modules.h
107 list(APPEND DP_DEFS -DCONFIG_MENU)
108 list(APPEND SOURCE_COMMON
116 list(APPEND DP_DEFS_CLIENT -DCONFIG_CD)
117 list(APPEND SOURCE_CLIENT cd_shared.c cdaudio.h)
118 list(APPEND SOURCE_CLIENT cd_sdl.c)
121 if (DP_VIDEO_CAPTURE)
122 list(APPEND DP_DEFS_CLIENT -DCONFIG_VIDEO_CAPTURE)
123 list(APPEND SOURCE_CLIENT
130 list(APPEND SOURCE_COMMON conproc.c conproc.h)
134 list(APPEND DP_DEFS -D__IPHONEOS__)
135 set(CMAKE_OSX_SYSROOT iphoneos)
136 set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
137 set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.xonotic\${PRODUCT_NAME:identifier}")
140 list(APPEND SOURCE_CLIENT vid_sdl.c)
141 list(APPEND SOURCE_SERVER vid_null.c)
143 list(APPEND SOURCE_CLIENT
144 snd_main.c snd_main.h
150 list(APPEND SOURCE_CLIENT snd_sdl.c)
151 list(APPEND SOURCE_SERVER snd_null.c)
153 list(APPEND SOURCE_COMMON sys.h)
154 list(APPEND SOURCE_CLIENT sys_sdl.c)
156 list(APPEND SOURCE_SERVER sys_win.c)
158 list(APPEND SOURCE_SERVER sys_linux.c)
161 list(APPEND SOURCE_COMMON thread.h)
162 list(APPEND SOURCE_CLIENT thread_sdl.c)
163 list(APPEND SOURCE_SERVER thread_null.c)
166 add_executable(darkplaces-dedicated WIN32 MACOSX_BUNDLE ${SOURCE_SERVER} ${SOURCE_COMMON})
169 add_executable(darkplaces WIN32 MACOSX_BUNDLE ${SOURCE_CLIENT} ${SOURCE_COMMON})
173 target_compile_definitions(darkplaces-dedicated PRIVATE ${DP_DEFS} ${DP_DEFS_SERVER})
176 target_compile_definitions(darkplaces PRIVATE ${DP_DEFS} ${DP_DEFS_CLIENT})
179 set(LIBS_COMMON ${CMAKE_DL_LIBS})
180 if (TARGET d0_blind_id)
181 list(APPEND LIBS_COMMON d0_blind_id)
182 # list(APPEND DP_DEFS -DLINK_TO_CRYPTO)
185 list(APPEND LIBS_COMMON m)
188 list(APPEND LIBS_COMMON ws2_32 winmm)
191 list(APPEND LIBS_COMMON "-framework IOKit")
194 function(target_requires_zlib target)
198 find_package(ZLIB REQUIRED)
199 target_include_directories(${target} PRIVATE ${ZLIB_INCLUDE_DIRS})
200 target_link_libraries(${target} PRIVATE ${ZLIB_LIBRARIES})
201 target_compile_definitions(${target} PRIVATE -DLINK_TO_ZLIB)
204 function(target_requires_jpeg target)
208 find_package(JPEG REQUIRED)
209 if (NOT JPEG_INCLUDE_DIRS)
210 set(JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIR})
212 target_include_directories(${target} PRIVATE ${JPEG_INCLUDE_DIRS})
213 target_link_libraries(${target} PRIVATE ${JPEG_LIBRARIES})
214 target_compile_definitions(${target} PRIVATE -DLINK_TO_LIBJPEG)
218 target_link_libraries(darkplaces-dedicated PRIVATE ${LIBS_COMMON})
219 target_requires_zlib(darkplaces-dedicated)
223 target_link_libraries(darkplaces PRIVATE ${LIBS_COMMON})
224 target_requires_zlib(darkplaces)
226 find_package(SDL2 REQUIRED)
227 if (NOT SDL2_INCLUDE_DIRS)
228 set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
230 if (NOT SDL2_LIBRARIES)
231 set(SDL2_LIBRARIES ${SDL2_LIBRARY})
233 target_include_directories(darkplaces PRIVATE ${SDL2_INCLUDE_DIRS})
234 target_link_libraries(darkplaces PRIVATE ${SDL2_LIBRARIES})
237 target_requires_jpeg(darkplaces)