# GameServer (TMSrv) Linux 32-bit
# Fonte original: Source servidor/Projects/Gameserver/

set(TMSRV_SRC_DIR ${CMAKE_SOURCE_DIR}/src/Projects/Gameserver)
set(COMMON_SRC_DIR ${CMAKE_SOURCE_DIR}/src/Common)

set(TMSRV_SOURCES
    ${COMMON_SRC_DIR}/pugixml.cpp
    ${COMMON_SRC_DIR}/UOD_CRC32.cpp
    ${COMMON_SRC_DIR}/UOD_GUID.cpp
    ${COMMON_SRC_DIR}/UOD_Log.cpp
    ${COMMON_SRC_DIR}/UOD_SEHTranslator.cpp

    ${TMSRV_SRC_DIR}/AddMessageDB.cpp
    ${TMSRV_SRC_DIR}/AddMessage.cpp
    ${TMSRV_SRC_DIR}/AntiBot.cpp
    ${TMSRV_SRC_DIR}/AntiBotPacketTest.cpp
    ${TMSRV_SRC_DIR}/Basedef.cpp
    ${TMSRV_SRC_DIR}/ChangeServer.cpp
    ${TMSRV_SRC_DIR}/CMob.cpp
    ${TMSRV_SRC_DIR}/CNPCGener.cpp
    ${TMSRV_SRC_DIR}/Connect.cpp
    ${TMSRV_SRC_DIR}/Create.cpp
    ${TMSRV_SRC_DIR}/cServer.cpp
    ${TMSRV_SRC_DIR}/CUser.cpp
    ${TMSRV_SRC_DIR}/Decrypt.cpp
    ${TMSRV_SRC_DIR}/DragonStories.cpp
    ${TMSRV_SRC_DIR}/Encrypt.cpp
    ${TMSRV_SRC_DIR}/GetCharInfo.cpp
    ${TMSRV_SRC_DIR}/GetFunc.cpp
    ${TMSRV_SRC_DIR}/GmTeleport.cpp
    ${TMSRV_SRC_DIR}/GmScriptCommands.cpp
    ${TMSRV_SRC_DIR}/CombatTune.cpp
    ${TMSRV_SRC_DIR}/GuildInfo.cpp
    ${TMSRV_SRC_DIR}/HandleMacAddressIntegrity.cpp
    ${TMSRV_SRC_DIR}/HellGate.cpp
    ${TMSRV_SRC_DIR}/ArenaReal.cpp
    ${TMSRV_SRC_DIR}/CuboMaldade.cpp
    ${TMSRV_SRC_DIR}/QuestGelo.cpp
    ${TMSRV_SRC_DIR}/DropRate.cpp
    ${TMSRV_SRC_DIR}/HandleModulesInfo.cpp
    ${TMSRV_SRC_DIR}/ItemsAction.cpp
    ${TMSRV_SRC_DIR}/main.cpp
    ${TMSRV_SRC_DIR}/MainWndProc.cpp
    ${TMSRV_SRC_DIR}/MessageSender.cpp
    ${TMSRV_SRC_DIR}/NewShopDonate.cpp
    ${TMSRV_SRC_DIR}/PacketControl.cpp
    ${TMSRV_SRC_DIR}/ProcessTimer.cpp
    ${TMSRV_SRC_DIR}/PositionSanity.cpp
    ${TMSRV_SRC_DIR}/ReadMessageDB.cpp
    ${TMSRV_SRC_DIR}/ReadMessage.cpp
    ${TMSRV_SRC_DIR}/RequestAcceptParty.cpp
    ${TMSRV_SRC_DIR}/RequestAcceptRecruit.cpp
    ${TMSRV_SRC_DIR}/RequestAcceptRejectMission.cpp
    ${TMSRV_SRC_DIR}/RequestAction.cpp
    ${TMSRV_SRC_DIR}/RequestAddParty.cpp
    ${TMSRV_SRC_DIR}/RequestAddPoint.cpp
    ${TMSRV_SRC_DIR}/RequestAdminCommand.cpp
    ${TMSRV_SRC_DIR}/RequestAgatha.cpp
    ${TMSRV_SRC_DIR}/RequestAlchemy.cpp
    ${TMSRV_SRC_DIR}/RequestAlly.cpp
    ${TMSRV_SRC_DIR}/RequestAttack.cpp
    ${TMSRV_SRC_DIR}/RequestAutoPartyAddRemoveName.cpp
    ${TMSRV_SRC_DIR}/RequestAutoPartyEnableAll.cpp
    ${TMSRV_SRC_DIR}/RequestAutoPartyEnterParty.cpp
    ${TMSRV_SRC_DIR}/RequestAutoPartySetPassword.cpp
    ${TMSRV_SRC_DIR}/RequestAylin.cpp
    ${TMSRV_SRC_DIR}/RequestBlockItems.cpp
    ${TMSRV_SRC_DIR}/RequestBuyAutoTrade.cpp
    ${TMSRV_SRC_DIR}/RequestBuyDonateShop.cpp
    ${TMSRV_SRC_DIR}/RequestBuyRvRStore.cpp
    ${TMSRV_SRC_DIR}/RequestBuyShop.cpp
    ${TMSRV_SRC_DIR}/RequestChallange.cpp
    ${TMSRV_SRC_DIR}/RequestChangeCity.cpp
    ${TMSRV_SRC_DIR}/RequestChangeSkillBar.cpp
    ${TMSRV_SRC_DIR}/RequestChat.cpp
    ${TMSRV_SRC_DIR}/RequestClientInfo.cpp
    ${TMSRV_SRC_DIR}/RequestCloseAutoTrade.cpp
    ${TMSRV_SRC_DIR}/RequestCollectDaily.cpp
    ${TMSRV_SRC_DIR}/RequestCollectMission.cpp
    ${TMSRV_SRC_DIR}/RequestTeleportMission.cpp
    ${TMSRV_SRC_DIR}/RequestCommand.cpp
    ${TMSRV_SRC_DIR}/RequestCompounder.cpp
    ${TMSRV_SRC_DIR}/RequestCreateAutoTrade.cpp
    ${TMSRV_SRC_DIR}/RequestCreateChar.cpp
    ${TMSRV_SRC_DIR}/RequestDeclareWar.cpp
    ${TMSRV_SRC_DIR}/RequestDeleteChar.cpp
    ${TMSRV_SRC_DIR}/RequestDeleteItem.cpp
    ${TMSRV_SRC_DIR}/RequestClearJunkInventory.cpp
    ${TMSRV_SRC_DIR}/RequestDonateShop.cpp
    ${TMSRV_SRC_DIR}/RequestDropItem.cpp
    ${TMSRV_SRC_DIR}/RequestDuel.cpp
    ${TMSRV_SRC_DIR}/RequestEhre.cpp
    ${TMSRV_SRC_DIR}/RequestEssenceUse.cpp
    ${TMSRV_SRC_DIR}/RequestExitParty.cpp
    ${TMSRV_SRC_DIR}/RequestExtraction.cpp
    ${TMSRV_SRC_DIR}/RequestFriendList.cpp
    ${TMSRV_SRC_DIR}/RequestGriffinMaster.cpp
    ${TMSRV_SRC_DIR}/RequestKickMember.cpp
    ${TMSRV_SRC_DIR}/RequestLindy.cpp
    ${TMSRV_SRC_DIR}/RequestLogin.cpp
    ${TMSRV_SRC_DIR}/RequestMerchantNPC.cpp
    ${TMSRV_SRC_DIR}/RequestMotion.cpp
    ${TMSRV_SRC_DIR}/RequestMoveItem.cpp
    ${TMSRV_SRC_DIR}/RequestMsvfw32Info.cpp
    ${TMSRV_SRC_DIR}/RequestNightmareAccept.cpp
    ${TMSRV_SRC_DIR}/RequestOdin.cpp
    ${TMSRV_SRC_DIR}/RequestOpenAutoTrade.cpp
    ${TMSRV_SRC_DIR}/RequestOpenGate.cpp
    ${TMSRV_SRC_DIR}/RequestOpenShop.cpp
    ${TMSRV_SRC_DIR}/RequestPickItem.cpp
    ${TMSRV_SRC_DIR}/RequestPremierStore.cpp
    ${TMSRV_SRC_DIR}/RequestPremierStoreBuy.cpp
    ${TMSRV_SRC_DIR}/RequestPutOutSeal.cpp
    ${TMSRV_SRC_DIR}/RequestRecruitMember.cpp
    ${TMSRV_SRC_DIR}/RequestRedeemGriffin.cpp
    ${TMSRV_SRC_DIR}/RequestRepurchase.cpp
    ${TMSRV_SRC_DIR}/RequestReqChallange.cpp
    ${TMSRV_SRC_DIR}/RequestRessuctPlayer.cpp
    ${TMSRV_SRC_DIR}/RequestSealInfo.cpp
    ${TMSRV_SRC_DIR}/RequestSellShop.cpp
    ${TMSRV_SRC_DIR}/RequestShany.cpp
    ${TMSRV_SRC_DIR}/RequestTeleport.cpp
    ${TMSRV_SRC_DIR}/RequestTiny.cpp
    ${TMSRV_SRC_DIR}/RequestTrade.cpp
    ${TMSRV_SRC_DIR}/RequestTransferGold.cpp
    ${TMSRV_SRC_DIR}/RequestUngroupItem.cpp
    ${TMSRV_SRC_DIR}/RequestUseItem.cpp
    ${TMSRV_SRC_DIR}/ResendCharList.cpp
    ${TMSRV_SRC_DIR}/SendCharList.cpp
    ${TMSRV_SRC_DIR}/SendCharToWorld.cpp
    ${TMSRV_SRC_DIR}/SendFunc.cpp
    ${TMSRV_SRC_DIR}/SendNumericToken.cpp
    ${TMSRV_SRC_DIR}/UOD_Arena.cpp
    ${TMSRV_SRC_DIR}/UOD_BossEvent.cpp
    ${TMSRV_SRC_DIR}/UOD_ChristmasMission.cpp
    ${TMSRV_SRC_DIR}/UOD_ChristmasTree.cpp
    ${TMSRV_SRC_DIR}/UOD_DroplistGenerator.cpp
    ${TMSRV_SRC_DIR}/UOD_DuelLetter.cpp
    ${TMSRV_SRC_DIR}/UOD_Event.cpp
    ${TMSRV_SRC_DIR}/UOD_EventManager.cpp
    ${TMSRV_SRC_DIR}/UOD_GmConfig.cpp
    ${TMSRV_SRC_DIR}/UOD_HappyHarvest.cpp
    ${TMSRV_SRC_DIR}/UOD_Mission.cpp
    ${TMSRV_SRC_DIR}/UOD_PreWarBoss.cpp
    ${TMSRV_SRC_DIR}/UOD_Quiz.cpp
    ${TMSRV_SRC_DIR}/WindowsForm.cpp
)

add_executable(tmsrv ${TMSRV_SOURCES})

target_include_directories(tmsrv PRIVATE
    ${TMSRV_SRC_DIR}
    ${COMMON_SRC_DIR}
    ${CMAKE_SOURCE_DIR}/include
)

target_link_libraries(tmsrv PRIVATE
    win32_compat
    ${LINUX_32_LIBS}
)

set_target_properties(tmsrv PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)

add_custom_command(TARGET tmsrv POST_BUILD
    COMMAND ${CMAKE_SOURCE_DIR}/scripts/deploy-release.sh ${CMAKE_BINARY_DIR}/bin
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
    COMMENT "Deploy tmsrv para Release/GameServer"
)
