]> git.xonotic.org Git - xonotic/darkplaces.git/blob - buildsys/target/engine/client.cmake
e2d937f2513750913158dc83395e4aa94a995005
[xonotic/darkplaces.git] / buildsys / target / engine / client.cmake
1 add_executable(client ${OBJ_COMMON} ${OBJ_CL} ${OBJ_MENU} ${OBJ_SND_COMMON} ${OBJ_CD_COMMON} ${OBJ_VIDEO_CAPTURE})
2 target_link_libraries(client common)
3 set_target_properties(client PROPERTIES OUTPUT_NAME "${ENGINE_BUILD_NAME}")
4
5 if(WIN32)
6         target_sources(client PRIVATE ${ENGINE_BUILD_WINRC})
7 endif()
8
9 option_dependency(SDL2 ENGINE_LINK_TO_SDL2 "shared" "${DP_LINK_OPTIONS_REQUIRED}")
10 option_dependency(PNG ENGINE_LINK_TO_LIBPNG "static" "${DP_LINK_OPTIONS_REQUIRED}")
11 option_dependency(zlib ENGINE_LINK_TO_ZLIB "shared" "${DP_LINK_OPTIONS_REQUIRED}")
12 option_dependency(d0_blind_id ENGINE_LINK_TO_CRYPTO "dlopen" "${DP_LINK_OPTIONS_STANDARD}")
13 option_dependency(d0_blind_id_rijndael ENGINE_LINK_TO_CRYPTO_RIJNDAEL "dlopen" "${DP_LINK_OPTIONS_STANDARD}")
14 option_dependency(ODE ENGINE_LINK_TO_LIBODE "none" "${DP_LINK_OPTIONS_STANDARD}")
15 option_dependency(XMP ENGINE_LINK_TO_XMP "dlopen" "${DP_LINK_OPTIONS_STANDARD}")
16 option_dependency(Vorbis ENGINE_LINK_TO_VORBIS "shared" "${DP_LINK_OPTIONS_STANDARD}")
17
18 find_package(SDL2 REQUIRED)
19 find_package(ZLIB REQUIRED)
20 find_package(PNG REQUIRED)
21 find_package(CURL REQUIRED)
22
23 target_link_libraries(client SDL2::Main ZLIB::ZLIB PNG::PNG CURL::libcurl)
24
25 if(ENGINE_CONFIG_MENU)
26         target_compile_definitions(client PRIVATE -DCONFIG_MENU)
27 endif()
28
29 if(ENGINE_LINK_TO_CRYPTO OR ENGINE_LINK_TO_CRYPTO_RIJNDAEL)
30         find_package(Crypto)
31         if(CRYPTO_INCLUDE_DIR AND d0_blind_id_LIBRARY AND d0_rijndael_LIBRARY)
32                 target_include_directories(client PRIVATE ${CRYPTO_INCLUDE_DIR})
33
34                 if(ENGINE_LINK_TO_CRYPTO)
35                         target_compile_definitions(client PRIVATE -DLINK_TO_CRYPTO)
36                         target_link_libraries(client ${d0_blind_id_LIBRARY})
37                 endif()
38
39                 if(ENGINE_LINK_TO_CRYPTO_RIJNDAEL)
40                         target_compile_definitions(client PRIVATE -DLINK_TO_CRYPTO_RIJNDAEL)
41                         target_link_libraries(client ${d0_rijndael_LIBRARY})
42                 endif()
43         endif()
44 endif()
45
46 if(ENGINE_LINK_TO_LIBJPEG)
47         find_package(JPEG REQUIRED)
48         add_dependencies(client JPEG::JPEG)
49 endif()
50
51 if(ENGINE_LINK_TO_LIBVORBIS)
52         find_package(Vorbis REQUIRED)
53         target_include_directories(client PRIVATE ${VORBIS_INCLUDE_DIRS})
54         target_compile_definitions(client PRIVATE -DLINK_TO_LIBVORBIS)
55         target_link_libraries(client ${VORBIS_LIBRARIES})
56 endif()
57
58 if(ENGINE_LINK_TO_LIBODE)
59         target_compile_definitions(client PRIVATE -DUSEODE)
60 endif()
61
62 if(ENGINE_CONFIG_VIDEO_CAPTURE)
63         target_compile_definitions(client PRIVATE -DCONFIG_VIDEO_CAPTURE)
64 endif()