QTfrontend/CMakeLists.txt
author sheepluva
Mon, 28 Mar 2011 16:24:42 +0200
changeset 5056 01ab6121fa3f
parent 5019 e38d1720a0ff
child 5078 3527f0e7bb21
permissions -rw-r--r--
Beach-Theme: fix+crop horizon and sky

# Configure for Qt4
set(QT_MIN_VERSION "4.5.0")

set(QT_USE_QTCORE TRUE)
set(QT_USE_QTGUI TRUE)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTSVG FALSE)
set(QT_USE_QTXML FALSE)
set(QT_USE_QTOPENGL FALSE)
set(QT_USE_QTMAIN TRUE)

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})

# Configure for SDL
find_package(SDL REQUIRED)
find_package(SDL_mixer REQUIRED)

include_directories(.)
include_directories(${SDL_INCLUDE_DIR})
include_directories(${SDLMIXER_INCLUDE_DIR})
if(UNIX)
    # HACK: in freebsd cannot find iconv.h included via SDL.h
    include_directories("/usr/local/include")
endif(UNIX)


if(WIN32 AND NOT UNIX)
    set(HEDGEWARS_BINDIR ".")
    set(HEDGEWARS_DATADIR "../share/")
        add_definitions(-DUSE_XFIRE)
else()
    set(HEDGEWARS_BINDIR ${CMAKE_INSTALL_PREFIX})
    if(DEFINED DATA_INSTALL_DIR)
        set(HEDGEWARS_DATADIR ${DATA_INSTALL_DIR})
    else()
        set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/share/)
    endif()
endif()


configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hwconsts.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp)

set(hwfr_src
    game.cpp
    main.cpp
    hwform.cpp
    team.cpp
    namegen.cpp
    teamselect.cpp
    teamselhelper.cpp
    frameTeam.cpp
    vertScrollArea.cpp
    gameuiconfig.cpp
    ui_hwform.cpp
    gamecfgwidget.cpp
    pages.cpp
    SquareLabel.cpp
    hats.cpp
    hedgehogerWidget.cpp
    hwmap.cpp
    mapContainer.cpp
    tcpBase.cpp
    about.cpp
    proto.cpp
    fpsedit.cpp
    netserver.cpp
    newnetclient.cpp
    netudpserver.cpp
    netudpwidget.cpp
    netregister.cpp
    netserverslist.cpp
    chatwidget.cpp
    binds.cpp
    SDLs.cpp
    playrecordpage.cpp
    ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp
    selectWeapon.cpp
    itemNum.cpp
    input_ip.cpp
    igbox.cpp
    weaponItem.cpp
    statsPage.cpp
    misc.cpp
    ammoSchemeModel.cpp
    togglebutton.cpp
    bgwidget.cpp
    achievements.cpp
    qaspectratiolayout.cpp
    drawmapwidget.cpp
    drawmapscene.cpp
    )

#xfire integration
if(WIN32)
    set(hwfr_src ${hwfr_src} xfire.cpp ../misc/xfire/xfiregameclient.cpp)
endif(WIN32)

if(MINGW)
    # resource compilation for mingw
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o
    COMMAND windres -I ${CMAKE_CURRENT_SOURCE_DIR}
    -i ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars.rc
    -o ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
    set(hwfr_src ${hwfr_src} ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
else(MINGW)
    set(hwfr_src ${hwfr_src} hedgewars.rc)
endif(MINGW)

set(hwfr_moc_hdrs
    game.h
    hats.h
    hwform.h
    teamselect.h
    teamselhelper.h
    frameTeam.h
    vertScrollArea.h
    gameuiconfig.h
    gamecfgwidget.h
    pages.h
    SquareLabel.h
    hedgehogerWidget.h
    hwmap.h
    mapContainer.h
    tcpBase.h
    about.h
    proto.h
    fpsedit.h
    netserver.h
    newnetclient.h
    netudpserver.h
    netudpwidget.h
    netregister.h
    netserverslist.h
    chatwidget.h
    SDLs.h
    playrecordpage.h
    selectWeapon.h
    itemNum.h
    input_ip.h
    igbox.h
    weaponItem.h
    statsPage.h
    misc.h
    ammoSchemeModel.h
    togglebutton.h
    bgwidget.h
    qaspectratiolayout.h
    drawmapwidget.h
    drawmapscene.h
    )

set(hwfr_hdrs
    binds.h
    ui_hwform.h
    KB.h
    hwconsts.h
    )

set(hwfr_rez hedgewars.qrc)

qt4_add_resources(hwfr_rez_src ${hwfr_rez})

qt4_wrap_cpp(hwfr_moc_srcs ${hwfr_moc_hdrs})


if(APPLE)
    set(hwfr_src ${hwfr_src} InstallController.cpp CocoaInitializer.mm M3Panel.mm M3InstallController.m NSWorkspace_RBAdditions.m)
    set(HW_LINK_LIBS IOKit)

    if(NOT NOAUTOUPDATE)
        find_package(Sparkle)
        if(SPARKLE_FOUND)
            add_definitions(-DSPARKLE_ENABLED)
            set(hwfr_src ${hwfr_src} AutoUpdater.cpp SparkleAutoUpdater.mm)
            set(HW_LINK_LIBS ${SPARKLE_LIBRARY} ${HW_LINK_LIBS})
        endif()
    endif()
endif()


add_executable(hedgewars WIN32
    ${hwfr_src}
    ${hwfr_moc_srcs}
    ${hwfr_hdrs}
    ${hwfr_rez_src}
    )


set(HW_LINK_LIBS
    ${QT_LIBRARIES}
    ${SDL_LIBRARY}
    ${SDLMIXER_LIBRARY}
    ${HW_LINK_LIBS}
    )

if(WIN32 AND NOT UNIX)
    if(NOT SDL_LIBRARY)
        set(HW_LINK_LIBS ${HW_LINK_LIBS} SDL)
    endif()

    set(	HW_LINK_LIBS
        ${HW_LINK_LIBS}
        ole32
        oleaut32
        winspool
        uuid
        )
endif()


target_link_libraries(hedgewars	${HW_LINK_LIBS})


install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})