FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL_image REQUIRED) FIND_PACKAGE(SDL_mixer REQUIRED) FIND_PACKAGE(SDL_net REQUIRED) FIND_PACKAGE(SDL_ttf REQUIRED) FIND_PACKAGE(ENet REQUIRED) FIND_PACKAGE(CURL REQUIRED) FIND_PACKAGE(LibXml2 REQUIRED) FIND_PACKAGE(PhysFS REQUIRED) FIND_PACKAGE(PNG REQUIRED) SET(FLAGS "-DPACKAGE_VERSION=\\\"${VERSION}\\\"") SET(FLAGS "${FLAGS} -DPKG_DATADIR=\\\"${PKG_DATADIR}/\\\"") SET(FLAGS "${FLAGS} -DLOCALEDIR=\\\"${LOCALEDIR}/\\\"") IF (WIN32) SET(EXTRA_LIBRARIES ws2_32 winmm) ENDIF() SET(GUICHAN_COMPONENTS "SDL") FIND_PACKAGE(Guichan REQUIRED ${GUICHAN_COMPONENTS}) IF (WITH_OPENGL) FIND_PACKAGE(OpenGL REQUIRED) INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) SET(FLAGS "${FLAGS} -DUSE_OPENGL") ENDIF (WITH_OPENGL) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${SDL_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLNET_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR} ${ENET_INCLUDE_DIR} ${PNG_INCLUDE_DIR} ${PHYSFS_INCLUDE_DIR} ${CURL_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ${GUICHAN_INCLUDE_DIR} ) # Fix some stuff that gets not hidden by mainline modules MARK_AS_ADVANCED(PHYSFS_INCLUDE_DIR) MARK_AS_ADVANCED(PHYSFS_LIBRARY) MARK_AS_ADVANCED(SDLIMAGE_INCLUDE_DIR) MARK_AS_ADVANCED(SDLIMAGE_LIBRARY) MARK_AS_ADVANCED(SDLMAIN_LIBRARY) MARK_AS_ADVANCED(SDLMIXER_INCLUDE_DIR) MARK_AS_ADVANCED(SDLMIXER_LIBRARY) MARK_AS_ADVANCED(SDLNET_INCLUDE_DIR) MARK_AS_ADVANCED(SDLNET_LIBRARY) MARK_AS_ADVANCED(SDL_INCLUDE_DIR) MARK_AS_ADVANCED(SDL_LIBRARY) SET(SRCS gui/widgets/avatar.cpp gui/widgets/avatar.h gui/widgets/browserbox.cpp gui/widgets/browserbox.h gui/widgets/button.cpp gui/widgets/button.h gui/widgets/channeltab.cpp gui/widgets/channeltab.h gui/widgets/chattab.cpp gui/widgets/chattab.h gui/widgets/checkbox.cpp gui/widgets/checkbox.h gui/widgets/container.cpp gui/widgets/container.h gui/widgets/desktop.cpp gui/widgets/desktop.h gui/widgets/dropdown.cpp gui/widgets/dropdown.h gui/widgets/flowcontainer.cpp gui/widgets/flowcontainer.h gui/widgets/icon.cpp gui/widgets/icon.h gui/widgets/inttextfield.cpp gui/widgets/inttextfield.h gui/widgets/label.cpp gui/widgets/label.h gui/widgets/layout.cpp gui/widgets/layout.h gui/widgets/layouthelper.cpp gui/widgets/layouthelper.h gui/widgets/listbox.cpp gui/widgets/listbox.h gui/widgets/passwordfield.cpp gui/widgets/passwordfield.h gui/widgets/popup.cpp gui/widgets/popup.h gui/widgets/progressbar.cpp gui/widgets/progressbar.h gui/widgets/radiobutton.cpp gui/widgets/radiobutton.h gui/widgets/resizegrip.cpp gui/widgets/resizegrip.h gui/widgets/scrollarea.cpp gui/widgets/scrollarea.h gui/widgets/slider.cpp gui/widgets/slider.h gui/widgets/tab.cpp gui/widgets/tab.h gui/widgets/tabbedarea.cpp gui/widgets/tabbedarea.h gui/widgets/textbox.cpp gui/widgets/textbox.h gui/widgets/textfield.cpp gui/widgets/textfield.h gui/widgets/textpreview.cpp gui/widgets/textpreview.h gui/widgets/vertcontainer.cpp gui/widgets/vertcontainer.h gui/widgets/whispertab.cpp gui/widgets/whispertab.h gui/widgets/window.cpp gui/widgets/window.h gui/widgets/windowcontainer.cpp gui/widgets/windowcontainer.h gui/buy.cpp gui/buy.h gui/buysell.cpp gui/buysell.h gui/changeemaildialog.cpp gui/changeemaildialog.h gui/changepassworddialog.cpp gui/changepassworddialog.h gui/charselectdialog.cpp gui/charselectdialog.h gui/charcreatedialog.cpp gui/charcreatedialog.h gui/chat.cpp gui/chat.h gui/confirmdialog.cpp gui/confirmdialog.h gui/connectiondialog.cpp gui/connectiondialog.h gui/debugwindow.cpp gui/debugwindow.h gui/emotepopup.cpp gui/emotepopup.h gui/emoteshortcutcontainer.cpp gui/emoteshortcutcontainer.h gui/equipmentwindow.cpp gui/equipmentwindow.h gui/focushandler.cpp gui/focushandler.h gui/gui.cpp gui/gui.h gui/help.cpp gui/help.h gui/inventorywindow.cpp gui/inventorywindow.h gui/itemcontainer.cpp gui/itemcontainer.h gui/itemlinkhandler.cpp gui/itemlinkhandler.h gui/itempopup.cpp gui/itempopup.h gui/itemshortcutcontainer.cpp gui/itemshortcutcontainer.h gui/itemamount.cpp gui/itemamount.h gui/linkhandler.h gui/login.cpp gui/login.h gui/minimap.cpp gui/minimap.h gui/ministatus.cpp gui/ministatus.h gui/npcdialog.cpp gui/npcdialog.h gui/npcpostdialog.cpp gui/npcpostdialog.h gui/okdialog.cpp gui/okdialog.h gui/outfitwindow.cpp gui/outfitwindow.h gui/palette.cpp gui/palette.h gui/partywindow.cpp gui/partywindow.h gui/playerbox.cpp gui/playerbox.h gui/popupmenu.cpp gui/popupmenu.h gui/quitdialog.cpp gui/quitdialog.h gui/recorder.cpp gui/recorder.h gui/register.cpp gui/register.h gui/sdlinput.cpp gui/sdlinput.h gui/sell.cpp gui/sell.h gui/serverdialog.cpp gui/serverdialog.h gui/setup.cpp gui/setup.h gui/setup_audio.cpp gui/setup_audio.h gui/setup_colors.cpp gui/setup_colors.h gui/setup_joystick.cpp gui/setup_joystick.h gui/setup_keyboard.cpp gui/setup_keyboard.h gui/setup_players.cpp gui/setup_players.h gui/setup_video.cpp gui/setup_video.h gui/setuptab.cpp gui/setuptab.h gui/shop.cpp gui/shop.h gui/shoplistbox.cpp gui/shoplistbox.h gui/shortcutcontainer.cpp gui/shortcutcontainer.h gui/shortcutwindow.cpp gui/shortcutwindow.h gui/skilldialog.cpp gui/skilldialog.h gui/skin.cpp gui/skin.h gui/speechbubble.cpp gui/speechbubble.h gui/specialswindow.cpp gui/specialswindow.h gui/statuswindow.cpp gui/statuswindow.h gui/storagewindow.cpp gui/storagewindow.h gui/table.cpp gui/table.h gui/tablemodel.cpp gui/tablemodel.h gui/textdialog.cpp gui/textdialog.h gui/textrenderer.h gui/trade.cpp gui/trade.h gui/truetypefont.cpp gui/truetypefont.h gui/unregisterdialog.cpp gui/unregisterdialog.h gui/updatewindow.cpp gui/updatewindow.h gui/viewport.cpp gui/viewport.h gui/windowmenu.cpp gui/windowmenu.h gui/worldselectdialog.cpp gui/worldselectdialog.h net/adminhandler.h net/charhandler.h net/chathandler.h net/download.cpp net/download.h net/gamehandler.h net/generalhandler.h net/guildhandler.h net/inventoryhandler.h net/logindata.h net/loginhandler.h net/messagehandler.cpp net/messagehandler.h net/messagein.cpp net/messagein.h net/messageout.cpp net/messageout.h net/npchandler.h net/net.cpp net/net.h net/partyhandler.h net/playerhandler.h net/serverinfo.h net/specialhandler.h net/tradehandler.h net/worldinfo.h resources/action.cpp resources/action.h resources/ambientoverlay.cpp resources/ambientoverlay.h resources/animation.cpp resources/animation.h resources/colordb.cpp resources/colordb.h resources/dye.cpp resources/dye.h resources/emotedb.cpp resources/emotedb.h resources/image.cpp resources/image.h resources/imageloader.cpp resources/imageloader.h resources/imageset.h resources/imageset.cpp resources/imagewriter.cpp resources/imagewriter.h resources/itemdb.cpp resources/itemdb.h resources/iteminfo.h resources/iteminfo.cpp resources/mapreader.cpp resources/mapreader.h resources/monsterdb.cpp resources/monsterdb.h resources/monsterinfo.cpp resources/monsterinfo.h resources/music.cpp resources/music.h resources/npcdb.cpp resources/npcdb.h resources/resource.cpp resources/resource.h resources/resourcemanager.cpp resources/resourcemanager.h resources/sdlrescalefacility.h resources/sdlrescalefacility.cpp resources/soundeffect.h resources/soundeffect.cpp resources/spritedef.h resources/spritedef.cpp resources/wallpaper.cpp resources/wallpaper.h utils/base64.cpp utils/base64.h utils/dtor.h utils/gettext.h utils/mathutils.h utils/sha256.cpp utils/sha256.h utils/stringutils.cpp utils/stringutils.h utils/mutex.h utils/xml.cpp utils/xml.h animatedsprite.cpp animatedsprite.h animationparticle.cpp animationparticle.h being.cpp being.h beingmanager.cpp beingmanager.h channel.cpp channel.h channelmanager.cpp channelmanager.h commandhandler.cpp commandhandler.h configlistener.h configuration.cpp configuration.h effectmanager.cpp effectmanager.h emoteshortcut.cpp emoteshortcut.h engine.cpp engine.h equipment.cpp equipment.h flooritem.cpp flooritem.h flooritemmanager.cpp flooritemmanager.h game.cpp game.h graphics.cpp graphics.h guichanfwd.h imageparticle.cpp imageparticle.h inventory.cpp inventory.h item.cpp item.h itemshortcut.cpp itemshortcut.h joystick.cpp joystick.h keyboardconfig.cpp keyboardconfig.h localplayer.cpp localplayer.h lockedarray.h log.cpp log.h main.cpp main.h map.cpp map.h monster.cpp monster.h npc.cpp npc.h openglgraphics.cpp openglgraphics.h particle.cpp particle.h particlecontainer.cpp particlecontainer.h particleemitter.cpp particleemitter.h particleemitterprop.h player.cpp player.h playerrelations.cpp playerrelations.h position.cpp position.h properties.h rotationalparticle.cpp rotationalparticle.h shopitem.cpp shopitem.h simpleanimation.cpp simpleanimation.h sound.cpp sound.h sprite.h statuseffect.cpp statuseffect.h text.cpp text.h textmanager.cpp textmanager.h textparticle.cpp textparticle.h tileset.h units.cpp units.h vector.cpp vector.h ) SET(SRCS_EA net/ea/gui/partytab.cpp net/ea/gui/partytab.h net/ea/adminhandler.cpp net/ea/adminhandler.h net/ea/beinghandler.cpp net/ea/beinghandler.h net/ea/buysellhandler.cpp net/ea/buysellhandler.h net/ea/charserverhandler.cpp net/ea/charserverhandler.h net/ea/chathandler.cpp net/ea/chathandler.h net/ea/equipmenthandler.cpp net/ea/equipmenthandler.h net/ea/gamehandler.cpp net/ea/gamehandler.h net/ea/generalhandler.cpp net/ea/generalhandler.h net/ea/inventoryhandler.cpp net/ea/inventoryhandler.h net/ea/itemhandler.cpp net/ea/itemhandler.h net/ea/loginhandler.cpp net/ea/loginhandler.h net/ea/network.cpp net/ea/network.h net/ea/npchandler.cpp net/ea/npchandler.h net/ea/partyhandler.cpp net/ea/partyhandler.h net/ea/playerhandler.cpp net/ea/playerhandler.h net/ea/protocol.h net/ea/specialhandler.cpp net/ea/specialhandler.h net/ea/tradehandler.cpp net/ea/tradehandler.h ) SET(SRCS_TMW gui/buddywindow.cpp gui/buddywindow.h gui/guildlistbox.cpp gui/guildlistbox.h gui/guildwindow.cpp gui/guildwindow.h net/tmwserv/accountserver/account.cpp net/tmwserv/accountserver/account.h net/tmwserv/accountserver/accountserver.cpp net/tmwserv/accountserver/accountserver.h net/tmwserv/accountserver/internal.cpp net/tmwserv/accountserver/internal.h net/tmwserv/chatserver/chatserver.cpp net/tmwserv/chatserver/chatserver.h net/tmwserv/chatserver/guild.cpp net/tmwserv/chatserver/guild.h net/tmwserv/chatserver/internal.cpp net/tmwserv/chatserver/internal.h net/tmwserv/chatserver/party.cpp net/tmwserv/chatserver/party.h net/tmwserv/gameserver/gameserver.cpp net/tmwserv/gameserver/gameserver.h net/tmwserv/gameserver/internal.cpp net/tmwserv/gameserver/internal.h net/tmwserv/gameserver/player.cpp net/tmwserv/gameserver/player.h net/tmwserv/adminhandler.cpp net/tmwserv/adminhandler.h net/tmwserv/beinghandler.cpp net/tmwserv/beinghandler.h net/tmwserv/buysellhandler.cpp net/tmwserv/buysellhandler.h net/tmwserv/charhandler.cpp net/tmwserv/charhandler.h net/tmwserv/chathandler.cpp net/tmwserv/chathandler.h net/tmwserv/connection.cpp net/tmwserv/connection.h net/tmwserv/effecthandler.cpp net/tmwserv/effecthandler.h net/tmwserv/gamehandler.cpp net/tmwserv/gamehandler.h net/tmwserv/generalhandler.cpp net/tmwserv/generalhandler.h net/tmwserv/guildhandler.cpp net/tmwserv/guildhandler.h net/tmwserv/internal.cpp net/tmwserv/internal.h net/tmwserv/inventoryhandler.cpp net/tmwserv/inventoryhandler.h net/tmwserv/itemhandler.h net/tmwserv/itemhandler.cpp net/tmwserv/loginhandler.cpp net/tmwserv/loginhandler.h net/tmwserv/network.cpp net/tmwserv/network.h net/tmwserv/npchandler.cpp net/tmwserv/npchandler.h net/tmwserv/partyhandler.cpp net/tmwserv/partyhandler.h net/tmwserv/playerhandler.cpp net/tmwserv/playerhandler.h net/tmwserv/protocol.h net/tmwserv/specialhandler.cpp net/tmwserv/specialhandler.h net/tmwserv/tradehandler.cpp net/tmwserv/tradehandler.h guild.cpp guild.h ) SET (PROGRAMS tmw tmw-ea) ADD_EXECUTABLE(tmw WIN32 ${SRCS} ${SRCS_TMW}) ADD_EXECUTABLE(tmw-ea WIN32 ${SRCS} ${SRCS_EA}) FOREACH(program ${PROGRAMS}) TARGET_LINK_LIBRARIES(${program} ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} ${SDLMIXER_LIBRARY} ${SDLNET_LIBRARY} ${SDLTTF_LIBRARY} ${ENET_LIBRARIES} ${PNG_LIBRARIES} ${PHYSFS_LIBRARY} ${CURL_LIBRARIES} ${LIBXML2_LIBRARIES} ${GUICHAN_LIBRARIES} ${OPENGL_LIBRARIES} ${EXTRA_LIBRARIES}) INSTALL(TARGETS ${program} RUNTIME DESTINATION ${PKG_BINDIR}) ENDFOREACH(program) SET(FLAGS_EA "${FLAGS} -DEATHENA_SUPPORT") SET(FLAGS_TMW "${FLAGS} -DTMWSERV_SUPPORT") SET_TARGET_PROPERTIES(tmw PROPERTIES COMPILE_FLAGS "${FLAGS_TMW}") SET_TARGET_PROPERTIES(tmw-ea PROPERTIES COMPILE_FLAGS "${FLAGS_EA}")