Intent is to allow filtering by arbitrary flag combinations. This isn't actually working yet. No idea why. It seems it should. Tired though, so will look at it tomorrow.
+ −
+ − include(${CMAKE_MODULE_PATH}/utils.cmake)
+ −
+ − find_package_or_disable(GHC NOSERVER)
+ −
+ − include(${CMAKE_MODULE_PATH}/CheckHaskellModuleExists.cmake)
+ −
+ − check_haskell_module_exists("Control.Exception" mask 1 base)
+ − check_haskell_module_exists("Data.Map" size 1 containers)
+ − check_haskell_module_exists("Data.Vector" length 1 vector)
+ − check_haskell_module_exists("Data.ByteString" pack 1 bytestring)
+ − check_haskell_module_exists("Text.Show.ByteString" putDigit 1 bytestring-show)
+ − check_haskell_module_exists("Network.BSD" getHostName 0 network)
+ − check_haskell_module_exists("Data.Time" getCurrentTime 0 time)
+ − check_haskell_module_exists("Control.Monad.State" fix 1 mtl)
+ − check_haskell_module_exists("Codec.Binary.Base64" encode 1 dataenc)
+ − check_haskell_module_exists("System.Log.Logger" warningM 1 hslogger)
+ − check_haskell_module_exists("System.Process" createProcess 3 process)
+ − check_haskell_module_exists("Data.ByteString.Lazy.UTF8" decode 1 utf8-string)
+ − check_haskell_module_exists("Data.Digest.Pure.SHA" sha1 1 SHA)
+ − check_haskell_module_exists("System.Entropy" openHandle 0 entropy)
+ − check_haskell_module_exists("Codec.Compression.Zlib" decompress 1 zlib)
+ − check_haskell_module_exists("System.Random" getStdGen 0 random)
+ −
+ − # this one needs type signatures to work
+ − # check_haskell_module_exists("Control.DeepSeq" deepseq 2 deepseq)
+ −
+ −
+ −
+ − set(hwserver_sources
+ − OfficialServer/DBInteraction.hs
+ − Actions.hs
+ − ClientIO.hs
+ − ConfigFile.hs
+ − 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
+ − ServerCore.hs
+ − ServerState.hs
+ − Store.hs
+ − Utils.hs
+ − Votes.hs
+ − hedgewars-server.hs
+ − )
+ −
+ − set(hwserv_main ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars-server.hs)
+ −
+ − set(ghc_flags
+ − --make ${hwserv_main}
+ − -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}"
+ − ARGS ${ghc_flags}
+ − MAIN_DEPENDENCY ${hwserv_main}
+ − DEPENDS ${hwserver_sources}
+ − )
+ −
+ − 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_binary_install_dir})