1 find_program(ghc_executable ghc) |
1 find_program(ghc_executable ghc) |
2 |
2 |
3 if(NOT ghc_executable) |
3 if(NOT ghc_executable) |
4 message(FATAL_ERROR "Cannot find GHC") |
4 message(FATAL_ERROR "Cannot find GHC") |
5 endif(NOT ghc_executable) |
5 endif(NOT ghc_executable) |
6 |
6 |
7 |
7 |
8 set(hwserver_sources |
8 set(hwserver_sources |
9 OfficialServer/DBInteraction.hs |
9 OfficialServer/DBInteraction.hs |
10 Actions.hs |
10 Actions.hs |
11 ClientIO.hs |
11 ClientIO.hs |
12 CoreTypes.hs |
12 CoreTypes.hs |
13 HWProtoCore.hs |
13 HWProtoCore.hs |
14 HWProtoInRoomState.hs |
14 HWProtoInRoomState.hs |
15 HWProtoLobbyState.hs |
15 HWProtoLobbyState.hs |
16 HWProtoNEState.hs |
16 HWProtoNEState.hs |
17 NetRoutines.hs |
17 NetRoutines.hs |
18 Opts.hs |
18 Opts.hs |
19 ServerCore.hs |
19 ServerCore.hs |
20 Utils.hs |
20 Utils.hs |
21 hedgewars-server.hs |
21 hedgewars-server.hs |
22 ) |
22 ) |
23 |
23 |
24 set(hwserv_main ${hedgewars_SOURCE_DIR}/gameServer/hedgewars-server.hs) |
24 set(hwserv_main ${hedgewars_SOURCE_DIR}/gameServer/hedgewars-server.hs) |
25 |
25 |
26 set(ghc_flags |
26 set(ghc_flags |
27 --make ${hwserv_main} |
27 -O2 |
28 -i${hedgewars_SOURCE_DIR}/gameServer |
28 --make ${hwserv_main} |
29 -o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX} |
29 -i${hedgewars_SOURCE_DIR}/gameServer |
30 -odir ${CMAKE_CURRENT_BINARY_DIR} |
30 -o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX} |
31 -hidir ${CMAKE_CURRENT_BINARY_DIR}) |
31 -odir ${CMAKE_CURRENT_BINARY_DIR} |
|
32 -hidir ${CMAKE_CURRENT_BINARY_DIR}) |
32 |
33 |
33 set(ghc_flags ${haskell_compiler_flags_cmn} ${ghc_flags}) |
34 set(ghc_flags ${haskell_compiler_flags_cmn} ${ghc_flags}) |
34 |
35 |
35 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" |
36 add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" |
36 COMMAND "${ghc_executable}" |
37 COMMAND "${ghc_executable}" |
37 ARGS ${ghc_flags} |
38 ARGS ${ghc_flags} |
38 MAIN_DEPENDENCY ${hwserv_main} |
39 MAIN_DEPENDENCY ${hwserv_main} |
39 DEPENDS ${hwserver_sources} |
40 DEPENDS ${hwserver_sources} |
40 ) |
41 ) |
41 |
42 |
42 add_custom_target(hedgewars-server ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}") |
43 add_custom_target(hedgewars-server ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}") |
43 |
44 |
44 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir}) |
45 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir}) |