add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
find_program(ghc_executable ghc)
if(NOT ghc_executable)
message(FATAL_ERROR "Cannot find GHC")
endif(NOT ghc_executable)
set(hwserver_sources
OfficialServer/DBInteraction.hs
Actions.hs
ClientIO.hs
CoreTypes.hs
HWProtoCore.hs
HWProtoInRoomState.hs
HWProtoLobbyState.hs
HWProtoNEState.hs
NetRoutines.hs
Opts.hs
ServerCore.hs
Utils.hs
hedgewars-server.hs
)
set(hwserv_main ${hedgewars_SOURCE_DIR}/gameServer/hedgewars-server.hs)
set(ghc_flags
--make ${hwserv_main}
-i${hedgewars_SOURCE_DIR}/gameServer
-o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}
-odir ${CMAKE_CURRENT_BINARY_DIR}
-hidir ${CMAKE_CURRENT_BINARY_DIR})
set(ghc_flags ${haskell_compiler_flags_cmn} ${ghc_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_dir})