summaryrefslogblamecommitdiff
path: root/src/CMakeLists.txt
blob: 0d1c5697a46e2ce210a9288a321e1f6e3af78909 (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/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/widgets/colormodel.cpp
    gui/widgets/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/widgets/extendedlistmodel.h
    gui/widgets/extendednamesmodel.cpp
    gui/widgets/extendednamesmodel.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/widgets/namesmodel.cpp
    gui/widgets/namesmodel.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/widgets/shopitems.cpp
    gui/widgets/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/widgets/skillmodel.cpp
    gui/widgets/skillmodel.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/widgets/tablemodel.cpp
    gui/widgets/tablemodel.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/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
    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/base/basiccontainer.hpp
    gui/base/cliprectangle.hpp
    gui/base/color.hpp
    listeners/deathlistener.h
    events/event.h
    gui/base/focushandler.hpp
    listeners/focuslistener.h
    gui/base/gui.hpp
    events/inputguievent.h
    input/key.hpp
    events/keyevent.h
    listeners/keylistener.h
    gui/base/listmodel.hpp
    events/mouseevent.h
    listeners/mouselistener.h
    gui/base/rectangle.hpp
    events/selectionevent.h
    listeners/selectionlistener.h
    gui/base/sdl/sdlpixel.hpp
    gui/base/widget.hpp
    listeners/widgetlistener.h
    gui/base/widgets/button.hpp
    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/base/widgets/window.hpp
    gui/base/basiccontainer.cpp
    gui/base/cliprectangle.cpp
    gui/base/color.cpp
    gui/base/focushandler.cpp
    gui/base/gui.cpp
    input/key.cpp
    gui/base/rectangle.cpp
    gui/base/widget.cpp
    gui/base/widgets/button.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
    gui/base/widgets/window.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}")