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











                                











                                                           



                                             










                                                                
                                                    



                                                        


                                             

       
                                  
 























                                              































                                                                                 

                                 
                                
                                
                               
                                  
                                



                              

                                    
                                   



                                       

                                

                            

                             

                             







                                          

                                   
                                  

                                     
                           
                           
                                       
                           

                                 



                                     

                                     









                                         

                             





                                          

                                






                                

                             
                                        

                                 





                                 

                             





                                     

                              

                              

                             



                                       

                                  

                            



                                     



                             

                             
                                 
                                 
                            

                          

                              

                            

                              

                            

                             
                                
                                   
                                 
                              
                                
                                
                               
                            

                            





                               

                                 

                                 

                                   
                         

                               



                                   

                             





























                                        



                        





                                    





                              



















                                     

                   

                            





                                  

                    



                                

                               





                                       

                                   



















                                         
                         

                







                                  

                               



                                

                            

                 





                                    



                       

                               

                      

                                     
                      

                             
















                          
                   
                      
                    
                       

                     
                    
                      







                              

                           

                              

                             

                             

                           



                            

                        

                           

                     
                        

                            
                       

                       

                             



                             

                           

                          

                          

                          

                           

                         



                              

                                   



                              



                                 

                                 

                                         

                                

                          

                            

                              
                             

                           

                           

                          

                                    

                           





                                            

                    

                        

                        

                 
                

                   

                    
                   

                   
                     

                   

                        

                              

                         

                         

                     

                        

                           

                       

                         
                        

                   




                   

                      



                         

                     



                         
                                   

                    

                      

                          

                                  

                      

              


                           

                         

                    

                  

              

                      

                

                            
                              

                     
           

                

                       

                                    
              




                     

                     



                 

                       

                       

                        

             

                    

                              







                    

                        





                     

                          
                       





                            
                    

                               
                 

                         

              



            

                  

                

                  

                                   
                      



                         

                                   


                     

                                     

                                 
                                
                        
                      

                              






                                  
                           

             



                             
                                       


                

                                   



                                 

                                   

                          
               



                       
                 

                    


                    

                              



                   

                             
             



                    




                  

                 
                        
                              
                                
                  
               
                             
                  
                             
                          
               
                     
                           
                          
                                 
                       
                             
              
                           
                                 
                    
                        
                              








                                    
                                  
                    
                 
                 
                
                          








                                    

     
             



                           





                             

                                




                          

                           

                               

                          

                           

                      

                         

                           

                            

                           
                  

                           

     






































                                  

                           


                              

                             

                             



                             









































                                     

                                



                                
          

               

                               
                   




                       
                   
                                                                                    
                    
                                                                    
                     











                              











                                                                            
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(SDL_gfx REQUIRED)
FIND_PACKAGE(CURL REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PhysFS REQUIRED)
FIND_PACKAGE(PNG REQUIRED)
FIND_PACKAGE(Gettext REQUIRED)

IF (POLICY CMP0015)
  CMAKE_POLICY(SET CMP0015 OLD)
ENDIF()

SET(FLAGS "-DPACKAGE_VERSION=\\\"${VERSION}\\\"")
SET(FLAGS "${FLAGS} -DPKG_DATADIR=\\\"${PKG_DATADIR}/\\\"")
SET(FLAGS "${FLAGS} -DLOCALEDIR=\\\"${LOCALEDIR}/\\\"")

IF (ENABLE_NLS)
    SET(FLAGS "${FLAGS} -DENABLE_NLS=1")
ENDIF()

IF (ENABLE_EATHENA)
    SET(FLAGS "${FLAGS} -DEATHENA_SUPPORT=1")
ENDIF()

IF (CMAKE_BUILD_TYPE)
    STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER)
    IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug OR
       CMAKE_BUILD_TYPE_TOLOWER MATCHES relwithdebinfo)
        SET(FLAGS "${FLAGS} -DDEBUG")
    ENDIF()
ENDIF()

IF (WIN32)
    SET(EXTRA_LIBRARIES ws2_32 winmm)
    FIND_PACKAGE(LibIntl REQUIRED)
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR BEOS)
    FIND_PACKAGE(LibIntl REQUIRED)
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL SunOS)
    # explicit linking to libintl is required on Solaris
    SET(EXTRA_LIBRARIES intl)
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL Linux)
    #some distros need this explicitly linked
    SET(EXTRA_LIBRARIES rt)
ENDIF()

SET(FLAGS "${FLAGS} -DUSE_MUMBLE")

IF (WITH_OPENGL)
    FIND_PACKAGE(OpenGL REQUIRED)
    INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
    SET(FLAGS "${FLAGS} -DUSE_OPENGL")
ENDIF (WITH_OPENGL)

IF (USE_X11)
    FIND_PACKAGE(X11 REQUIRED)
    INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR})
    SET(FLAGS "${FLAGS} -DUSE_X11")
ENDIF (USE_X11)

INCLUDE_DIRECTORIES(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${SDL_INCLUDE_DIR}
    ${SDLIMAGE_INCLUDE_DIR}
    ${SDLMIXER_INCLUDE_DIR}
    ${SDLNET_INCLUDE_DIR}
    ${SDLTTF_INCLUDE_DIR}
    ${SDLGFX_INCLUDE_DIR}
    ${PNG_INCLUDE_DIR}
    ${PHYSFS_INCLUDE_DIR}
    ${CURL_INCLUDE_DIR}
    ${LIBXML2_INCLUDE_DIR}
    )

# enable rc-handling with mingw
# most likely this part can be kicked out with some later cmake version
IF (MINGW)
    FIND_PATH(MINGW_INCLUDE_DIR windows.h $ENV{INCLUDE})
    IF (MINGW_INCLUDE_DIR)
        MESSAGE(STATUS "Found mingw headers: ${MINGW_INCLUDE_DIR}")
        INCLUDE_DIRECTORIES(${MINGW_INCLUDE_DIR})
    ELSE()
        MESSAGE(FATAL_ERROR "Unable to find mingw headers. Required for windres")
    ENDIF()
    SET(CMAKE_RC_COMPILER_INIT windres)
    ENABLE_LANGUAGE(RC)
    SET(CMAKE_RC_COMPILE_OBJECT
      "<CMAKE_RC_COMPILER> <FLAGS> <DEFINES> -O coff -o <OBJECT> <SOURCE>")
ENDIF()

# 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/avatarlistbox.cpp
    gui/widgets/avatarlistbox.h
    gui/models/avatarlistmodel.h
    gui/models/beingslistmodel.h
    gui/models/colorlistmodel.h
    gui/widgets/tabs/battletab.cpp
    gui/widgets/tabs/battletab.h
    gui/widgets/browserbox.cpp
    gui/widgets/browserbox.h
    gui/widgets/button.cpp
    gui/widgets/button.h
    gui/widgets/characterdisplay.cpp
    gui/widgets/characterdisplay.h
    gui/widgets/characterviewbase.h
    gui/widgets/characterviewnormal.cpp
    gui/widgets/characterviewnormal.h
    gui/widgets/characterviewsmall.cpp
    gui/widgets/characterviewsmall.h
    gui/widgets/tabs/chattab.cpp
    gui/widgets/tabs/chattab.h
    gui/widgets/checkbox.cpp
    gui/widgets/checkbox.h
    gui/models/colormodel.cpp
    gui/models/colormodel.h
    gui/widgets/colorpage.cpp
    gui/widgets/colorpage.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/emoteshortcutcontainer.cpp
    gui/widgets/emoteshortcutcontainer.h
    gui/widgets/extendedlistbox.cpp
    gui/widgets/extendedlistbox.h
    gui/models/extendedlistmodel.h
    gui/models/extendednamesmodel.cpp
    gui/models/extendednamesmodel.h
    gui/models/fontsmodel.h
    gui/models/iconsmodel.h
    gui/models/ignorechoiceslistmodel.h
    gui/models/itemsmodel.h
    gui/widgets/flowcontainer.cpp
    gui/widgets/flowcontainer.h
    gui/widgets/tabs/gmtab.cpp
    gui/widgets/tabs/gmtab.h
    gui/widgets/tabs/guildchattab.cpp
    gui/widgets/tabs/guildchattab.h
    gui/widgets/horizontcontainer.cpp
    gui/widgets/horizontcontainer.h
    gui/widgets/icon.cpp
    gui/widgets/icon.h
    gui/widgets/inttextfield.cpp
    gui/widgets/inttextfield.h
    gui/widgets/itemcontainer.cpp
    gui/widgets/itemcontainer.h
    gui/widgets/itemlinkhandler.cpp
    gui/widgets/itemlinkhandler.h
    gui/widgets/dropshortcutcontainer.cpp
    gui/widgets/dropshortcutcontainer.h
    gui/widgets/emotepage.cpp
    gui/widgets/emotepage.h
    gui/widgets/itemshortcutcontainer.cpp
    gui/widgets/itemshortcutcontainer.h
    gui/widgets/spellshortcutcontainer.cpp
    gui/widgets/spellshortcutcontainer.h
    gui/widgets/label.cpp
    gui/widgets/label.h
    gui/widgets/tabs/langtab.cpp
    gui/widgets/tabs/langtab.h
    gui/widgets/layout.cpp
    gui/widgets/layout.h
    gui/widgets/layouthelper.cpp
    gui/widgets/layouthelper.h
    gui/widgets/linkhandler.h
    gui/widgets/listbox.cpp
    gui/widgets/listbox.h
    gui/models/namesmodel.cpp
    gui/models/namesmodel.h
    gui/models/playerrelationlistmodel.h
    gui/models/questsmodel.h
    gui/models/serverslistmodel.h
    gui/widgets/passwordfield.cpp
    gui/widgets/passwordfield.h
    gui/widgets/playerbox.cpp
    gui/widgets/playerbox.h
    gui/widgets/popup.cpp
    gui/widgets/popup.h
    gui/widgets/popuplist.cpp
    gui/widgets/popuplist.h
    gui/widgets/progressbar.cpp
    gui/widgets/progressbar.h
    gui/widgets/progressindicator.cpp
    gui/widgets/progressindicator.h
    gui/widgets/radiobutton.cpp
    gui/widgets/radiobutton.h
    gui/widgets/radiogroup.cpp
    gui/widgets/radiogroup.h
    gui/widgets/scrollarea.cpp
    gui/widgets/scrollarea.h
    gui/widgets/setupitem.cpp
    gui/widgets/setupitem.h
    gui/widgets/tabs/setuptab.cpp
    gui/widgets/tabs/setuptab.h
    gui/widgets/tabs/setuptabscroll.cpp
    gui/widgets/tabs/setuptabscroll.h
    gui/widgets/setuptouchitem.cpp
    gui/widgets/setuptouchitem.h
    gui/models/shopitems.cpp
    gui/models/shopitems.h
    gui/widgets/shoplistbox.cpp
    gui/widgets/shoplistbox.h
    gui/widgets/shortcutcontainer.cpp
    gui/widgets/shortcutcontainer.h
    gui/widgets/skilldata.cpp
    gui/widgets/skilldata.h
    gui/widgets/skillinfo.cpp
    gui/widgets/skillinfo.h
    gui/models/skillmodel.cpp
    gui/models/skillmodel.h
    gui/models/sortlistmodelbuy.h
    gui/models/sortlistmodelinv.h
    gui/models/soundsmodel.h
    gui/widgets/slider.cpp
    gui/widgets/slider.h
    gui/widgets/sliderlist.cpp
    gui/widgets/sliderlist.h
    gui/widgets/tabs/tab.cpp
    gui/widgets/tabs/tab.h
    gui/widgets/tabbedarea.cpp
    gui/widgets/tabbedarea.h
    gui/widgets/guitable.cpp
    gui/widgets/guitable.h
    gui/models/tablemodel.cpp
    gui/models/tablemodel.h
    gui/models/targettypemodel.h
    gui/models/touchactionmodel.cpp
    gui/models/touchactionmodel.h
    gui/models/typelistmodel.h
    gui/models/updatetypemodel.h
    gui/models/updatelistmodel.h
    gui/models/worldlistmodel.h
    gui/models/themesmodel.h
    gui/widgets/tabstrip.cpp
    gui/widgets/tabstrip.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/tabs/tradetab.cpp
    gui/widgets/tabs/tradetab.h
    gui/widgets/vertcontainer.cpp
    gui/widgets/vertcontainer.h
    gui/widgets/tabs/whispertab.cpp
    gui/widgets/tabs/whispertab.h
    gui/widgets/widget2.h
    gui/widgets/widgetgroup.cpp
    gui/widgets/widgetgroup.h
    gui/widgets/window.cpp
    gui/widgets/window.h
    gui/widgets/windowcontainer.cpp
    gui/widgets/windowcontainer.h
    gui/popups/beingpopup.cpp
    gui/popups/beingpopup.h
    gui/windows/buydialog.cpp
    gui/windows/buydialog.h
    gui/windows/buyselldialog.cpp
    gui/windows/buyselldialog.h
    gui/windows/changeemaildialog.cpp
    gui/windows/changeemaildialog.h
    gui/windows/changepassworddialog.cpp
    gui/windows/changepassworddialog.h
    gui/windows/charselectdialog.cpp
    gui/windows/charselectdialog.h
    gui/windows/charcreatedialog.cpp
    gui/windows/charcreatedialog.h
    gui/windows/chatwindow.cpp
    gui/windows/chatwindow.h
    gui/windows/confirmdialog.cpp
    gui/windows/confirmdialog.h
    gui/windows/connectiondialog.cpp
    gui/windows/connectiondialog.h
    gui/windows/debugwindow.cpp
    gui/windows/debugwindow.h
    gui/windows/didyouknowwindow.cpp
    gui/windows/didyouknowwindow.h
    gui/windows/editdialog.cpp
    gui/windows/editdialog.h
    gui/windows/editserverdialog.cpp
    gui/windows/editserverdialog.h
    gui/windows/emotewindow.cpp
    gui/windows/emotewindow.h
    gui/windows/equipmentwindow.cpp
    gui/windows/equipmentwindow.h
    gui/focushandler.cpp
    gui/focushandler.h
    gui/gui.cpp
    gui/gui.h
    gui/windows/helpwindow.cpp
    gui/windows/helpwindow.h
    gui/windows/inventorywindow.cpp
    gui/windows/inventorywindow.h
    gui/windows/itemamountwindow.cpp
    gui/windows/itemamountwindow.h
    gui/popups/itempopup.cpp
    gui/popups/itempopup.h
    gui/popups/spellpopup.cpp
    gui/popups/spellpopup.h
    gui/popups/statuspopup.cpp
    gui/popups/statuspopup.h
    gui/windows/killstats.cpp
    gui/windows/killstats.h
    gui/windows/logindialog.cpp
    gui/windows/logindialog.h
    gui/windows/minimap.cpp
    gui/windows/minimap.h
    gui/windows/ministatuswindow.cpp
    gui/windows/ministatuswindow.h
    gui/windows/npcdialog.cpp
    gui/windows/npcdialog.h
    gui/windows/npcpostdialog.cpp
    gui/windows/npcpostdialog.h
    gui/windows/okdialog.cpp
    gui/windows/okdialog.h
    gui/windows/outfitwindow.cpp
    gui/windows/outfitwindow.h
    gui/windows/botcheckerwindow.cpp
    gui/windows/botcheckerwindow.h
    gui/windows/textcommandeditor.cpp
    gui/windows/textcommandeditor.h
    gui/palette.cpp
    gui/palette.h
    gui/popups/popupmenu.cpp
    gui/popups/popupmenu.h
    gui/windows/questswindow.cpp
    gui/windows/questswindow.h
    gui/windows/quitdialog.cpp
    gui/windows/quitdialog.h
    gui/windows/registerdialog.cpp
    gui/windows/registerdialog.h
    gui/sdlinput.cpp
    gui/sdlinput.h
    gui/windows/selldialog.cpp
    gui/windows/selldialog.h
    gui/windows/serverdialog.cpp
    gui/windows/serverdialog.h
    gui/windows/setupwindow.cpp
    gui/windows/setupwindow.h
    gui/widgets/tabs/setup_audio.cpp
    gui/widgets/tabs/setup_audio.h
    gui/widgets/tabs/setup_colors.cpp
    gui/widgets/tabs/setup_colors.h
    gui/widgets/tabs/setup_joystick.cpp
    gui/widgets/tabs/setup_joystick.h
    gui/widgets/tabs/setup_mods.cpp
    gui/widgets/tabs/setup_mods.h
    gui/widgets/tabs/setup_other.cpp
    gui/widgets/tabs/setup_other.h
    gui/widgets/tabs/setup_theme.cpp
    gui/widgets/tabs/setup_theme.h
    gui/widgets/tabs/setup_touch.cpp
    gui/widgets/tabs/setup_touch.h
    gui/widgets/tabs/setup_chat.cpp
    gui/widgets/tabs/setup_chat.h
    gui/widgets/tabs/setup_input.cpp
    gui/widgets/tabs/setup_input.h
    gui/widgets/tabs/setup_perfomance.cpp
    gui/widgets/tabs/setup_perfomance.h
    gui/widgets/tabs/setup_relations.cpp
    gui/widgets/tabs/setup_relations.h
    gui/widgets/tabs/setup_players.cpp
    gui/widgets/tabs/setup_players.h
    gui/widgets/tabs/setup_video.cpp
    gui/widgets/tabs/setup_video.h
    gui/widgets/tabs/setup_visual.cpp
    gui/widgets/tabs/setup_visual.h
    gui/setupactiondata.h
    gui/font.cpp
    gui/font.h
    gui/windows/shopwindow.cpp
    gui/windows/shopwindow.h
    gui/windows/shortcutwindow.cpp
    gui/windows/shortcutwindow.h
    gui/windows/skilldialog.cpp
    gui/windows/skilldialog.h
    gui/windows/socialwindow.cpp
    gui/windows/socialwindow.h
    gui/popups/speechbubble.cpp
    gui/popups/speechbubble.h
    gui/windows/statuswindow.cpp
    gui/windows/statuswindow.h
    gui/windows/textdialog.cpp
    gui/windows/textdialog.h
    gui/popups/textpopup.cpp
    gui/popups/textpopup.h
    gui/theme.cpp
    gui/theme.h
    gui/windows/tradewindow.cpp
    gui/windows/tradewindow.h
    gui/windows/unregisterdialog.cpp
    gui/windows/unregisterdialog.h
    gui/windows/updaterwindow.cpp
    gui/windows/updaterwindow.h
    gui/userpalette.cpp
    gui/userpalette.h
    gui/viewport.cpp
    gui/viewport.h
    gui/windows/whoisonline.cpp
    gui/windows/whoisonline.h
    gui/windowmenu.cpp
    gui/windowmenu.h
    gui/windows/worldselectdialog.cpp
    gui/windows/worldselectdialog.h
    net/adminhandler.h
    net/charserverhandler.cpp
    net/charserverhandler.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.h
    net/messagein.cpp
    net/messagein.h
    net/messageout.cpp
    net/messageout.h
    net/npchandler.h
    net/net.cpp
    net/net.h
    net/netconsts.h
    net/partyhandler.h
    net/pethandler.h
    net/playerhandler.h
    net/sdltcpnet.cpp
    net/sdltcpnet.h
    net/serverinfo.h
    net/skillhandler.h
    net/tradehandler.h
    net/worldinfo.h
    net/packetcounters.cpp
    net/packetcounters.h
    resources/action.cpp
    resources/action.h
    resources/ambientlayer.cpp
    resources/ambientlayer.h
    resources/animation.cpp
    resources/animation.h
    resources/atlasmanager.cpp
    resources/atlasmanager.h
    resources/db/avatardb.cpp
    resources/db/avatardb.h
    resources/beingcommon.cpp
    resources/beingcommon.h
    resources/beinginfo.cpp
    resources/beinginfo.h
    resources/db/chardb.cpp
    resources/db/chardb.h
    resources/db/colordb.cpp
    resources/db/colordb.h
    resources/cursor.cpp
    resources/cursor.h
    resources/db/deaddb.cpp
    resources/db/deaddb.h
    resources/dye.cpp
    resources/dye.h
    resources/dyecolor.h
    resources/db/emotedb.cpp
    resources/db/emotedb.h
    resources/fboinfo.h
    resources/image.cpp
    resources/image.h
    resources/imagehelper.cpp
    resources/imagehelper.h
    resources/imageset.h
    resources/imageset.cpp
    resources/imagewriter.cpp
    resources/imagewriter.h
    resources/db/itemdb.cpp
    resources/db/itemdb.h
    resources/iteminfo.h
    resources/iteminfo.cpp
    resources/db/mapdb.cpp
    resources/db/mapdb.h
    resources/db/moddb.cpp
    resources/db/moddb.h
    resources/mapreader.cpp
    resources/mapreader.h
    resources/modinfo.cpp
    resources/modinfo.h
    resources/db/monsterdb.cpp
    resources/db/monsterdb.h
    resources/db/npcdb.cpp
    resources/db/npcdb.h
    resources/openglimagehelper.cpp
    resources/openglimagehelper.h
    resources/db/palettedb.cpp
    resources/db/palettedb.h
    resources/db/petdb.cpp
    resources/db/petdb.h
    resources/resource.cpp
    resources/resource.h
    resources/resourcemanager.cpp
    resources/resourcemanager.h
    resources/sdl2imagehelper.cpp
    resources/sdl2imagehelper.h
    resources/sdl2softwareimagehelper.cpp
    resources/sdl2softwareimagehelper.h
    resources/sdlimagehelper.cpp
    resources/sdlimagehelper.h
    resources/sdlmusic.cpp
    resources/sdlmusic.h
    resources/db/sounddb.cpp
    resources/db/sounddb.h
    resources/db/weaponsdb.cpp
    resources/db/weaponsdb.h
    resources/soundeffect.cpp
    resources/soundeffect.h
    resources/soundinfo.h
    resources/spritedef.h
    resources/spritedef.cpp
    resources/subimage.cpp
    resources/subimage.h
    resources/surfaceimagehelper.cpp
    resources/surfaceimagehelper.h
    resources/wallpaper.cpp
    resources/wallpaper.h
    utils/translation/podict.cpp
    utils/translation/podict.h
    utils/translation/poparser.cpp
    utils/translation/poparser.h
    utils/translation/translationmanager.cpp
    utils/translation/translationmanager.h
    utils/base64.cpp
    utils/base64.h
    utils/checkutils.cpp
    utils/checkutils.h
    utils/copynpaste.cpp
    utils/copynpaste.h
    utils/cpu.cpp
    utils/cpu.h
    utils/dtor.h
    utils/files.cpp
    utils/files.h
    utils/fuzzer.cpp
    utils/fuzzer.h
    utils/gettext.h
    utils/langs.cpp
    utils/langs.h
    utils/mathutils.h
    utils/paths.cpp
    utils/paths.h
    utils/perfomance.cpp
    utils/perfomance.h
    utils/physfscheckutils.cpp
    utils/physfscheckutils.h
    utils/physfsrwops.cpp
    utils/physfsrwops.h
    utils/physfstools.cpp
    utils/physfstools.h
    utils/process.cpp
    utils/process.h
    utils/sdl2helper.cpp
    utils/sdl2helper.h
    utils/sdlcheckutils.cpp
    utils/sdlcheckutils.h
    utils/sdlhelper.cpp
    utils/sdlhelper.h
    utils/stringutils.cpp
    utils/stringutils.h
    utils/stringvector.h
    utils/timer.cpp
    utils/timer.h
    utils/mutex.h
    utils/mkdir.cpp
    utils/mkdir.h
    utils/xml.cpp
    utils/xml.h
    utils/xmlutils.cpp
    utils/xmlutils.h
    test/testlauncher.cpp
    test/testlauncher.h
    test/testmain.cpp
    test/testmain.h
    actionmanager.cpp
    actionmanager.h
    being/actor.cpp
    being/actor.h
    being/actorsprite.cpp
    being/actorsprite.h
    listeners/actorspritelistener.h
    actormanager.cpp
    actormanager.h
    animatedsprite.cpp
    animatedsprite.h
    animationdelayload.cpp
    animationdelayload.h
    particle/animationparticle.cpp
    particle/animationparticle.h
    auctionmanager.cpp
    auctionmanager.h
    avatar.cpp
    avatar.h
    being/being.cpp
    being/being.h
    being/beingcacheentry.h
    beingequipbackend.cpp
    beingequipbackend.h
    spellmanager.cpp
    spellmanager.h
    chatlogger.cpp
    chatlogger.h
    client.cpp
    client.h
    commandhandler.cpp
    commandhandler.h
    commands.cpp
    commands.h
    being/compoundsprite.cpp
    being/compoundsprite.h
    listeners/configlistener.h
    configuration.cpp
    configuration.h
    debug.h
    defaults.cpp
    defaults.h
    depricatedevent.cpp
    depricatedevent.h
    listeners/depricatedlistener.cpp
    listeners/depricatedlistener.h
    dragdrop.h
    effectmanager.cpp
    effectmanager.h
    emoteshortcut.cpp
    emoteshortcut.h
    equipment.h
    eventsmanager.cpp
    eventsmanager.h
    flooritem.cpp
    flooritem.h
    game.cpp
    game.h
    render/graphics.cpp
    render/graphics.h
    graphicsmanager.cpp
    graphicsmanager.h
    graphicsvertexes.cpp
    graphicsvertexes.h
    guild.cpp
    guild.h
    guildmanager.cpp
    guildmanager.h
    particle/imageparticle.cpp
    particle/imageparticle.h
    imagesprite.cpp
    imagesprite.h
    inventory.cpp
    inventory.h
    item.cpp
    item.h
    itemshortcut.cpp
    itemshortcut.h
    itemsoundmanager.cpp
    itemsoundmanager.h
    dropshortcut.cpp
    dropshortcut.h
    spellshortcut.cpp
    spellshortcut.h
    textcommand.cpp
    textcommand.h
    input/inputmanager.cpp
    input/inputmanager.h
    events/inputevent.h
    input/joystick.cpp
    input/joystick.h
    input/keyboardconfig.cpp
    input/keyboardconfig.h
    input/keyboarddata.h
    input/keydata.h
    input/keyinput.h
    input/multitouchmanager.cpp
    input/multitouchmanager.h
    localconsts.h
    being/localplayer.cpp
    being/localplayer.h
    logger.cpp
    logger.h
    main.cpp
    main.h
    map.cpp
    map.h
    mapheights.cpp
    mapheights.h
    maplayer.cpp
    maplayer.h
    render/mgl.cpp
    render/mgl.h
    render/mobileopenglgraphics.cpp
    render/mobileopenglgraphics.h
    input/mouseinput.h
    mumblemanager.cpp
    mumblemanager.h
    navigationmanager.cpp
    navigationmanager.h
    render/normalopenglgraphics.cpp
    render/normalopenglgraphics.h
    notifications.h
    notifymanager.cpp
    notifymanager.h
    render/graphics_calcImageRect.hpp
    render/graphics_drawImageRect.hpp
    render/nullopenglgraphics.cpp
    render/nullopenglgraphics.h
    render/openglgraphicsdef.hpp
    render/renderers.cpp
    render/renderers.h
    render/rendererslistsdl.h
    render/rendererslistsdl2.h
    particle/particle.cpp
    particle/particle.h
    particle/particlecontainer.cpp
    particle/particlecontainer.h
    particle/particleemitter.cpp
    particle/particleemitter.h
    particle/particleemitterprop.h
    particle/particleinfo.h
    party.cpp
    party.h
    being/playerinfo.cpp
    being/playerinfo.h
    being/playerrelations.cpp
    being/playerrelations.h
    listeners/playerrelationslistener.h
    position.cpp
    position.h
    properties.h
    particle/rotationalparticle.cpp
    particle/rotationalparticle.h
    render/safeopenglgraphics.cpp
    render/safeopenglgraphics.h
    render/sdl2graphics.cpp
    render/sdl2graphics.h
    render/sdl2softwaregraphics.cpp
    render/sdl2softwaregraphics.h
    render/sdlgraphics.cpp
    render/sdlgraphics.h
    sdlshared.h
    shopitem.cpp
    shopitem.h
    simpleanimation.cpp
    simpleanimation.h
    soundconsts.h
    soundmanager.cpp
    soundmanager.h
    sprite.h
    statuseffect.cpp
    statuseffect.h
    render/surfacegraphics.cpp
    render/surfacegraphics.h
    text.cpp
    text.h
    textmanager.cpp
    textmanager.h
    particle/textparticle.cpp
    particle/textparticle.h
    tileset.h
    touchactions.cpp
    touchactions.h
    touchmanager.cpp
    touchmanager.h
    units.cpp
    units.h
    variabledata.h
    vector.cpp
    vector.h
    walklayer.cpp
    walklayer.h
    events/actionevent.h
    listeners/actionlistener.h
    gui/widgets/basiccontainer.h
    gui/cliprect.h
    gui/color.h
    listeners/deathlistener.h
    events/event.h
    listeners/focuslistener.h
    events/inputguievent.h
    input/key.h
    events/keyevent.h
    listeners/keylistener.h
    gui/models/listmodel.h
    gui/models/magicschoolmodel.h
    events/mouseevent.h
    listeners/mouselistener.h
    gui/rect.h
    events/selectionevent.h
    listeners/selectionlistener.h
    utils/sdlpixel.h
    gui/widgets/widget.h
    listeners/widgetlistener.h
    gui/base/widgets/checkbox.hpp
    gui/base/widgets/container.hpp
    gui/base/widgets/label.hpp
    gui/base/widgets/listbox.hpp
    gui/base/widgets/radiobutton.hpp
    gui/base/widgets/scrollarea.hpp
    gui/base/widgets/slider.hpp
    gui/base/widgets/textbox.hpp
    gui/base/widgets/textfield.hpp
    gui/widgets/basiccontainer.cpp
    gui/cliprect.cpp
    gui/color.cpp
    input/key.cpp
    gui/rect.cpp
    gui/widgets/widget.cpp
    gui/base/widgets/checkbox.cpp
    gui/base/widgets/container.cpp
    gui/base/widgets/label.cpp
    gui/base/widgets/listbox.cpp
    gui/base/widgets/radiobutton.cpp
    gui/base/widgets/scrollarea.cpp
    gui/base/widgets/slider.cpp
    gui/base/widgets/textbox.cpp
    gui/base/widgets/textfield.cpp
    )

SET(SRCS_EVOL
    net/ea/gui/guildtab.cpp
    net/ea/gui/guildtab.h
    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/eaprotocol.h
    net/ea/gamehandler.cpp
    net/ea/gamehandler.h
    net/ea/guildhandler.cpp
    net/ea/guildhandler.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/skillhandler.cpp
    net/ea/skillhandler.h
    net/ea/token.h
    net/ea/tradehandler.cpp
    net/ea/tradehandler.h
    )

SET(SRCS_TMWA
    net/tmwa/gui/guildtab.cpp
    net/tmwa/gui/guildtab.h
    net/tmwa/gui/partytab.cpp
    net/tmwa/gui/partytab.h
    net/tmwa/adminhandler.cpp
    net/tmwa/adminhandler.h
    net/tmwa/beinghandler.cpp
    net/tmwa/beinghandler.h
    net/tmwa/buysellhandler.cpp
    net/tmwa/buysellhandler.h
    net/tmwa/charserverhandler.cpp
    net/tmwa/charserverhandler.h
    net/tmwa/chathandler.cpp
    net/tmwa/chathandler.h
    net/tmwa/gamehandler.cpp
    net/tmwa/gamehandler.h
    net/tmwa/generalhandler.cpp
    net/tmwa/generalhandler.h
    net/tmwa/guildhandler.cpp
    net/tmwa/guildhandler.h
    net/tmwa/inventoryhandler.cpp
    net/tmwa/inventoryhandler.h
    net/tmwa/itemhandler.cpp
    net/tmwa/itemhandler.h
    net/tmwa/loginhandler.cpp
    net/tmwa/loginhandler.h
    net/tmwa/messagehandler.cpp
    net/tmwa/messagehandler.h
    net/tmwa/messagein.cpp
    net/tmwa/messagein.h
    net/tmwa/messageout.cpp
    net/tmwa/messageout.h
    net/tmwa/network.cpp
    net/tmwa/network.h
    net/tmwa/npchandler.cpp
    net/tmwa/npchandler.h
    net/tmwa/partyhandler.cpp
    net/tmwa/partyhandler.h
    net/tmwa/pethandler.cpp
    net/tmwa/pethandler.h
    net/tmwa/playerhandler.cpp
    net/tmwa/playerhandler.h
    net/tmwa/protocol.h
    net/tmwa/questhandler.cpp
    net/tmwa/questhandler.h
    net/tmwa/skillhandler.cpp
    net/tmwa/skillhandler.h
    net/tmwa/tradehandler.cpp
    net/tmwa/tradehandler.h
    )

SET(SRCS_EATHENA
    net/eathena/gui/guildtab.cpp
    net/eathena/gui/guildtab.h
    net/eathena/gui/partytab.cpp
    net/eathena/gui/partytab.h
    net/eathena/adminhandler.cpp
    net/eathena/adminhandler.h
    net/eathena/beinghandler.cpp
    net/eathena/beinghandler.h
    net/eathena/buysellhandler.cpp
    net/eathena/buysellhandler.h
    net/eathena/charserverhandler.cpp
    net/eathena/charserverhandler.h
    net/eathena/chathandler.cpp
    net/eathena/chathandler.h
    net/eathena/gamehandler.cpp
    net/eathena/gamehandler.h
    net/eathena/generalhandler.cpp
    net/eathena/generalhandler.h
    net/eathena/guildhandler.cpp
    net/eathena/guildhandler.h
    net/eathena/inventoryhandler.cpp
    net/eathena/inventoryhandler.h
    net/eathena/itemhandler.cpp
    net/eathena/itemhandler.h
    net/eathena/loginhandler.cpp
    net/eathena/loginhandler.h
    net/eathena/messagehandler.cpp
    net/eathena/messagehandler.h
    net/eathena/messagein.cpp
    net/eathena/messagein.h
    net/eathena/messageout.cpp
    net/eathena/messageout.h
    net/eathena/network.cpp
    net/eathena/network.h
    net/eathena/npchandler.cpp
    net/eathena/npchandler.h
    net/eathena/partyhandler.cpp
    net/eathena/partyhandler.h
    net/eathena/playerhandler.cpp
    net/eathena/playerhandler.h
    net/eathena/protocol.h
    net/eathena/skillhandler.cpp
    net/eathena/skillhandler.h
    net/eathena/tradehandler.cpp
    net/eathena/tradehandler.h
    )

IF (WIN32)
    SET(SRCS
        ${SRCS}
        utils/specialfolder.cpp
        utils/specialfolder.h
        manaplus.rc
    )
ENDIF ()

SET (PROGRAMS manaplus)

IF (ENABLE_EATHENA)
    ADD_EXECUTABLE(manaplus WIN32 ${SRCS} ${SRCS_EATHENA} ${SRCS_TMWA} ${SRCS_EVOL})
ELSE(ENABLE_EATHENA)
    ADD_EXECUTABLE(manaplus WIN32 ${SRCS} ${SRCS_TMWA} ${SRCS_EVOL})
ENDIF(ENABLE_EATHENA)

TARGET_LINK_LIBRARIES(manaplus
    ${SDLGFX_LIBRARIES}
    ${SDL_LIBRARY}
    ${SDLIMAGE_LIBRARY}
    ${SDLMIXER_LIBRARY}
    ${SDLNET_LIBRARY}
    ${SDLTTF_LIBRARY}
    ${PNG_LIBRARIES}
    ${PHYSFS_LIBRARY}
    ${CURL_LIBRARIES}
    ${LIBXML2_LIBRARIES}
    ${OPENGL_LIBRARIES}
    ${LIBINTL_LIBRARIES}
    ${EXTRA_LIBRARIES})
INSTALL(TARGETS manaplus RUNTIME DESTINATION ${PKG_BINDIR})

IF (CMAKE_SYSTEM_NAME STREQUAL SunOS)
    # we expect the SMCgtxt package to be present on Solaris;
    # the Solaris gettext is not API-compatible to GNU gettext
    SET_TARGET_PROPERTIES(manaplus PROPERTIES LINK_FLAGS "-L/usr/local/lib")
ENDIF()

SET_TARGET_PROPERTIES(manaplus PROPERTIES COMPILE_FLAGS "${FLAGS}")