gameServer/CMakeLists.txt
author Wuzzy <Wuzzy2@mail.ru>
Tue, 17 Jul 2018 14:20:58 +0200
changeset 13499 b5f8864a38d3
parent 13297 76a71a67922b
child 15721 27eb5abd5058
permissions -rw-r--r--
Add proper exit codes when halt-ing hwengine due to error
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
     1
8686
d303da4568b7 introduce find_package_or_fail/disable to group together similar cmake code
koda
parents: 8671
diff changeset
     2
include(${CMAKE_MODULE_PATH}/utils.cmake)
d303da4568b7 introduce find_package_or_fail/disable to group together similar cmake code
koda
parents: 8671
diff changeset
     3
d303da4568b7 introduce find_package_or_fail/disable to group together similar cmake code
koda
parents: 8671
diff changeset
     4
find_package_or_disable(GHC NOSERVER)
2401
2a694ea2a437 fixes & co.
koda
parents: 2203
diff changeset
     5
13291
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
     6
include(${CMAKE_MODULE_PATH}/CheckHaskellPackageExists.cmake)
10109
91d126fbd7bd CMake checks for haskell modules needed
unc0rr
parents: 10090
diff changeset
     7
13291
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
     8
check_haskell_package_exists(base "Control.Exception" mask 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
     9
check_haskell_package_exists(containers "Data.Map" size 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    10
check_haskell_package_exists(vector "Data.Vector" length 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    11
check_haskell_package_exists(bytestring "Data.ByteString" pack 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    12
check_haskell_package_exists(network "Network.BSD" getHostName 0)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    13
check_haskell_package_exists(time "Data.Time" getCurrentTime 0)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    14
check_haskell_package_exists(mtl "Control.Monad.State" fix 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    15
check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    16
check_haskell_package_exists(hslogger "System.Log.Logger" warningM 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    17
check_haskell_package_exists(process "System.Process" createProcess 3)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    18
check_haskell_package_exists(utf8-string "Data.ByteString.Lazy.UTF8" decode 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    19
check_haskell_package_exists(SHA "Data.Digest.Pure.SHA" sha1 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    20
check_haskell_package_exists(entropy "System.Entropy" openHandle 0)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    21
check_haskell_package_exists(zlib "Codec.Compression.Zlib" decompress 1)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    22
check_haskell_package_exists(random "System.Random" getStdGen 0)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    23
check_haskell_package_exists(regex-tdfa "Text.Regex.TDFA.ByteString" execute 2)
31615a2e0db1 CMake: Rework Haskell package detection, use ghc-pkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents: 11855
diff changeset
    24
check_haskell_package_exists(deepseq "Control.DeepSeq" deepseq 2)
10109
91d126fbd7bd CMake checks for haskell modules needed
unc0rr
parents: 10090
diff changeset
    25
91d126fbd7bd CMake checks for haskell modules needed
unc0rr
parents: 10090
diff changeset
    26
91d126fbd7bd CMake checks for haskell modules needed
unc0rr
parents: 10090
diff changeset
    27
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    28
set(hwserver_sources
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    29
    OfficialServer/DBInteraction.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    30
    Actions.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    31
    ClientIO.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    32
    ConfigFile.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    33
    Consts.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    34
    CoreTypes.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    35
    EngineInteraction.hs
10090
a471a7bbc339 - Start work on flood detector
unc0rr
parents: 10070
diff changeset
    36
    FloodDetection.hs
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    37
    HWProtoCore.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    38
    HWProtoInRoomState.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    39
    HWProtoLobbyState.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    40
    HWProtoNEState.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    41
    HandlerUtils.hs
9975
9fcdaa2be27e Allow logins at any interval, but not more than 2 logins in 30 seconds, 4 in 2 minutes and 6 in 10 minutes.
unc0rr
parents: 8686
diff changeset
    42
    JoinsMonitor.hs
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    43
    NetRoutines.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    44
    Opts.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    45
    RoomsAndClients.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    46
    ServerCore.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    47
    ServerState.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    48
    Store.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    49
    Utils.hs
10056
cb9e07753802 Don't delegate special room to another player when owner quits
unc0rr
parents: 10046
diff changeset
    50
    Votes.hs
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    51
    hedgewars-server.hs
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    52
    )
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    53
10068
cbe06dc07332 use CMAKE_CURRENT_SOURCE_DIR consistently
koda
parents: 10056
diff changeset
    54
set(hwserv_main ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars-server.hs)
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    55
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    56
set(ghc_flags
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    57
    --make ${hwserv_main}
10070
87fa6d14187f ghc ooops
koda
parents: 10068
diff changeset
    58
    -i${CMAKE_CURRENT_SOURCE_DIR}
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    59
    -o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    60
    -odir ${CMAKE_CURRENT_BINARY_DIR}
7112
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 6537
diff changeset
    61
    -hidir ${CMAKE_CURRENT_BINARY_DIR}
38c5d56c4d6e rename a few internal cmake variables (for consistency and readability)
koda
parents: 6537
diff changeset
    62
    ${haskell_flags})
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2015
diff changeset
    63
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    64
add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}"
8671
a9957b7797f3 write FindGHC.cmake for haskell stuff
koda
parents: 8316
diff changeset
    65
        COMMAND "${GHC_EXECUTABLE}"
6537
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    66
        ARGS ${ghc_flags}
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    67
        MAIN_DEPENDENCY ${hwserv_main}
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    68
        DEPENDS ${hwserver_sources}
1df1f224f3e9 Take koda's notice into account, also update list of source files
unc0rr
parents: 6536
diff changeset
    69
        )
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    70
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    71
add_custom_target(hedgewars-server ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}")
912e450d4db2 - Add gameServer to build system
unc0rr
parents:
diff changeset
    72
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 7113
diff changeset
    73
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir})