author  Wuzzy <Wuzzy2@mail.ru> 
Wed, 28 Mar 2018 15:14:20 +0200  
changeset 13291  31615a2e0db1 
parent 11855  ad435d95ca4b 
child 13292  e9caada3aac1 
permissions  rwrr 
1979  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  5 

13291
31615a2e0db1
CMake: Rework Haskell package detection, use ghcpkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents:
11855
diff
changeset

6 
include(${CMAKE_MODULE_PATH}/CheckHaskellPackageExists.cmake) 
10109  7 

13291
31615a2e0db1
CMake: Rework Haskell package detection, use ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents:
11855
diff
changeset

18 
check_haskell_package_exists(utf8string "Data.ByteString.Lazy.UTF8" decode 1) 
31615a2e0db1
CMake: Rework Haskell package detection, use ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg 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 ghcpkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents:
11855
diff
changeset

23 
check_haskell_package_exists(regextdfa "Text.Regex.TDFA.ByteString" execute 2) 
31615a2e0db1
CMake: Rework Haskell package detection, use ghcpkg to detect packages
Wuzzy <Wuzzy2@mail.ru>
parents:
11855
diff
changeset

24 
check_haskell_package_exists(deepseq "Control.DeepSeq" deepseq 2) 
10109  25 

26 

27 

1979  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  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 
hedgewarsserver.hs 
1df1f224f3e9
Take koda's notice into account, also update list of source files
unc0rr
parents:
6536
diff
changeset

52 
) 
1979  53 

10068  54 
set(hwserv_main ${CMAKE_CURRENT_SOURCE_DIR}/hedgewarsserver.hs) 
1979  55 

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  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}/hedgewarsserver${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  64 
add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewarsserver${CMAKE_EXECUTABLE_SUFFIX}" 
8671  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  70 

71 
add_custom_target(hedgewarsserver ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewarsserver${CMAKE_EXECUTABLE_SUFFIX}") 

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}/hedgewarsserver${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir}) 