--- a/gameServer/CMakeLists.txt Sun Oct 28 15:18:26 2012 +0100
+++ b/gameServer/CMakeLists.txt Fri Dec 06 22:20:53 2019 +0100
@@ -1,3 +1,28 @@
+
+include(${CMAKE_MODULE_PATH}/utils.cmake)
+
+find_package_or_disable(GHC NOSERVER)
+
+include(${CMAKE_MODULE_PATH}/CheckHaskellPackageExists.cmake)
+
+check_haskell_package_exists(base "Control.Exception" mask 1)
+check_haskell_package_exists(containers "Data.Map" size 1)
+check_haskell_package_exists(vector "Data.Vector" length 1)
+check_haskell_package_exists(bytestring "Data.ByteString" pack 1)
+check_haskell_package_exists(network "Network.BSD" getHostName 0)
+check_haskell_package_exists(time "Data.Time" getCurrentTime 0)
+check_haskell_package_exists(mtl "Control.Monad.State" fix 1)
+check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1)
+check_haskell_package_exists(hslogger "System.Log.Logger" warningM 1)
+check_haskell_package_exists(process "System.Process" createProcess 3)
+check_haskell_package_exists(utf8-string "Data.ByteString.Lazy.UTF8" decode 1)
+check_haskell_package_exists(SHA "Data.Digest.Pure.SHA" sha1 1)
+check_haskell_package_exists(entropy "System.Entropy" openHandle 0)
+check_haskell_package_exists(zlib "Codec.Compression.Zlib" decompress 1)
+check_haskell_package_exists(random "System.Random" getStdGen 0)
+check_haskell_package_exists(regex-tdfa "Text.Regex.TDFA.ByteString" execute 2)
+check_haskell_package_exists(deepseq "Control.DeepSeq" deepseq 2)
+
set(hwserver_sources
@@ -8,11 +33,13 @@
Consts.hs
CoreTypes.hs
EngineInteraction.hs
+ FloodDetection.hs
HWProtoCore.hs
HWProtoInRoomState.hs
HWProtoLobbyState.hs
HWProtoNEState.hs
HandlerUtils.hs
+ JoinsMonitor.hs
NetRoutines.hs
Opts.hs
RoomsAndClients.hs
@@ -20,21 +47,22 @@
ServerState.hs
Store.hs
Utils.hs
+ Votes.hs
hedgewars-server.hs
)
-set(hwserv_main ${hedgewars_SOURCE_DIR}/gameServer/hedgewars-server.hs)
+set(hwserv_main ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars-server.hs)
set(ghc_flags
--make ${hwserv_main}
- -i${hedgewars_SOURCE_DIR}/gameServer
+ -i${CMAKE_CURRENT_SOURCE_DIR}
-o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}
-odir ${CMAKE_CURRENT_BINARY_DIR}
-hidir ${CMAKE_CURRENT_BINARY_DIR}
${haskell_flags})
add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}"
- COMMAND "${ghc_executable}"
+ COMMAND "${GHC_EXECUTABLE}"
ARGS ${ghc_flags}
MAIN_DEPENDENCY ${hwserv_main}
DEPENDS ${hwserver_sources}
@@ -42,4 +70,4 @@
add_custom_target(hedgewars-server ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}")
-install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
+install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir})