summaryrefslogblamecommitdiff
path: root/src/CMakeLists.txt
blob: f54b6858b049d4b60e5cbd4da696740ddbff0ad7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11



                                
                              
                           
                           



                              
 
                                                 

                                                           
 



                                     
                             








                                                    
                               



                           
                         
                       

                         
                       



                          












                                                         
        

                          



                              



                              

                            

                             

                           

                            

                                 





                                

                          

                                









                                 

                              



                              



                              



                             

                               

                                 

                              



                                   

               

                   

                             

                                

                            

                            

                

                         

                            

                       

                      

                                  



                           







                           

                           

                     
                                 
                               

                      
                     

                 



                      

                     

                         

                    

                        

                   
                       
                     



                     

                      

                    

                    

                    

                

                        

                 

                       

                        

                          

                          

                         

                       
                    
                  

                

                       

                             

                          

                       

                

                        

                          

                        

                         

                 

                      

                      
                      

                 

                        

                            
                        
                      

                    

                      

                             

                      
                     
                     
                        
                      
                          
                   
                      





                          
                    

               
                      
                       
                    
                        
                      
                   

                        

                                

                           

                         

                     

                         

                       



                             

                             

                        
                        
                          

                           
                           
                         
                             
                           
                       
                     

                       



                                 

                                    
                           
                             

                           

                           

                    
                
                   
                     
                    
                  

                         
                 

                 

                      

                         



                    



                      

                      


                     

                     

                     



                 

                 






                        

                     



                 

                    

                

                      




                   









                      

                

                         

                       
                         

              

                       

                
                

                          

                

                       


             

                    



                   

                    
             

             
              
            

     
           













                                

                          

                             





                               







                            
                     

                             


                           
 


                       



                        



















                                               

                                



                                  

                               





                                 

                               

                                  









                                    








                                 

                                  



                                

     
 

                         

                                               












                                                   

                           


                                                                 


                                           

                                                                    
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/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}")