QTfrontend/CMakeLists.txt
author koda
Tue, 25 Dec 2012 01:13:07 +0100
changeset 8327 a6f3452f5f94
parent 8323 ab0b618bdf13
child 8330 aaefa587e277
child 8333 416cb5e5a405
permissions -rw-r--r--
convert Game() library call to argc,argv format so that we can use the new parsing functions
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
     1
# Configure for Qt4
6604
9cc612a24b43 this should lower compatibility with qt4.5 again, but i have no way to test it
koda
parents: 6441
diff changeset
     2
set(QT_MIN_VERSION "4.5.0")
6032
f89cab39053e my qt version needs this to work...
koda
parents: 5973
diff changeset
     3
include(CheckLibraryExists)
260
2208405af6c6 Minimal QT 4 version supported is 4.2.0
unc0rr
parents: 241
diff changeset
     4
502
bc178daca088 Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents: 495
diff changeset
     5
set(QT_USE_QTCORE TRUE)
bc178daca088 Fix build with CMake & gcc 4.1.2 on my system (treating #include <QtGui> as including directory)
unc0rr
parents: 495
diff changeset
     6
set(QT_USE_QTGUI TRUE)
494
503758a35c02 Use right way of finding and using Qt4 in CMake
unc0rr
parents: 477
diff changeset
     7
set(QT_USE_QTNETWORK TRUE)
2525
e6cdc0251cd1 remove the svg dependency
koda
parents: 2515
diff changeset
     8
set(QT_USE_QTSVG FALSE)
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2421
diff changeset
     9
set(QT_USE_QTXML FALSE)
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2421
diff changeset
    10
set(QT_USE_QTOPENGL FALSE)
494
503758a35c02 Use right way of finding and using Qt4 in CMake
unc0rr
parents: 477
diff changeset
    11
set(QT_USE_QTMAIN TRUE)
503758a35c02 Use right way of finding and using Qt4 in CMake
unc0rr
parents: 477
diff changeset
    12
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    13
find_package(Qt4 REQUIRED)
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
    14
include(${QT_USE_FILE})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    15
8083
2edbd01a04a0 added sdl_net headers and def lib for windows, fix frontlib compilation on windows
koda
parents: 8082
diff changeset
    16
find_package(SDL REQUIRED)       #video in SDLInteraction
2edbd01a04a0 added sdl_net headers and def lib for windows, fix frontlib compilation on windows
koda
parents: 8082
diff changeset
    17
find_package(SDL_mixer REQUIRED) #audio in SDLInteraction
2edbd01a04a0 added sdl_net headers and def lib for windows, fix frontlib compilation on windows
koda
parents: 8082
diff changeset
    18
find_package(SDL_net REQUIRED)   #network frontlib
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7813
diff changeset
    19
if(NOT NOVIDEOREC)
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7813
diff changeset
    20
    find_package(FFMPEG)
8144
f3ba33d5d2b1 Google Code-in: Hide "video record" keybind option
Mitchell Kember <mk12360@gmail.com>
parents: 8104
diff changeset
    21
    if(${FFMPEG_FOUND})
8147
53190e590919 Use same macro for hiding video record button and keybinding
Mitchell Kember <mk12360@gmail.com>
parents: 8144
diff changeset
    22
        add_definitions(-DVIDEOREC -D__STDC_CONSTANT_MACROS)
8144
f3ba33d5d2b1 Google Code-in: Hide "video record" keybind option
Mitchell Kember <mk12360@gmail.com>
parents: 8104
diff changeset
    23
    endif()
7817
6cc558a69b58 countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents: 7813
diff changeset
    24
endif()
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    25
2239
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2230
diff changeset
    26
include_directories(.)
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    27
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/model)
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    28
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/net)
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    29
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui)
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    30
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/dialog)
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    31
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/page)
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    32
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/widget)
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    33
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
707
0a00c16022ca Try to fix SDL problem
unc0rr
parents: 653
diff changeset
    34
include_directories(${SDL_INCLUDE_DIR})
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2443
diff changeset
    35
include_directories(${SDLMIXER_INCLUDE_DIR})
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents: 7278
diff changeset
    36
include_directories(${FFMPEG_INCLUDE_DIR})
7778
3331b30e4ef1 Fix build
unc0rr
parents: 7718
diff changeset
    37
include_directories(${CMAKE_SOURCE_DIR}/misc/physfs/src)
8052
845b5ae03841 Mount .hwt files found in Data folder
unc0rr
parents: 7951
diff changeset
    38
include_directories(${CMAKE_SOURCE_DIR}/misc/physfs/extras)
1159
49c88f620e51 Various build system improvements
unc0rr
parents: 1043
diff changeset
    39
if(UNIX)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    40
    # HACK: in freebsd cannot find iconv.h included via SDL.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    41
    include_directories("/usr/local/include")
1159
49c88f620e51 Various build system improvements
unc0rr
parents: 1043
diff changeset
    42
endif(UNIX)
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    43
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    44
#directory for resources, relative to the one above on certain platforms/configurations
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    45
if(DEFINED DATA_INSTALL_DIR OR WIN32 OR APPLE)
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    46
    set(HEDGEWARS_DATADIR ${SHAREPATH})
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
    47
else()
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    48
    set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/${SHAREPATH}/)
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
    49
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    50
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    51
#only the cocoa version of qt supports building 64 bit apps
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    52
if(APPLE AND (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64*") AND (NOT QT_MAC_USE_COCOA))
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    53
    message(FATAL_ERROR "Building the 64 bit version of Hedgewars *requires* the Cocoa variant of QT on Mac OS X")
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    54
endif()
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    55
#endif()
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
    56
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2218
diff changeset
    57
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hwconsts.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    58
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    59
file(GLOB NetCpp net/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    60
file(GLOB ModelCpp model/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    61
file(GLOB_RECURSE UIcpp ui/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    62
file(GLOB UtilCpp util/*.cpp)
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    63
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    64
set(hwfr_src
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    65
    ${ModelCpp}
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    66
    ${NetCpp}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    67
    ${UIcpp}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    68
    ${UtilCpp}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    69
    achievements.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    70
    binds.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    71
    drawmapscene.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    72
    game.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    73
    gameuiconfig.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    74
    HWApplication.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    75
    hwform.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    76
    main.cpp
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    77
    team.cpp
7201
dc17ffdf0702 The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents: 6931
diff changeset
    78
    campaign.cpp
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
    79
    ui_hwform.cpp
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    80
    ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    81
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    82
2821
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    83
#xfire integration
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    84
if(WIN32)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    85
    set(hwfr_src ${hwfr_src} xfire.cpp ../misc/xfire/xfiregameclient.cpp)
2821
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    86
endif(WIN32)
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    87
880
f9efe907828f Add win32 resource compilation under mingw (used sim-im srcs as example)
unc0rr
parents: 781
diff changeset
    88
if(MINGW)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    89
    # resource compilation for mingw
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    90
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o
8283
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    91
                       COMMAND windres -I ${CMAKE_CURRENT_SOURCE_DIR}
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    92
                               -i ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars.rc
af97cdbb7713 cmake verbosity/documentation/cleanup/formatting
koda
parents: 8279
diff changeset
    93
                               -o ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    94
    set(hwfr_src ${hwfr_src} ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
880
f9efe907828f Add win32 resource compilation under mingw (used sim-im srcs as example)
unc0rr
parents: 781
diff changeset
    95
else(MINGW)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    96
    set(hwfr_src ${hwfr_src} hedgewars.rc)
880
f9efe907828f Add win32 resource compilation under mingw (used sim-im srcs as example)
unc0rr
parents: 781
diff changeset
    97
endif(MINGW)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    98
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    99
file(GLOB ModelHdr model/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   100
file(GLOB NetHdr net/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   101
file(GLOB_RECURSE UIhdr ui/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   102
file(GLOB UtilHdr util/*.h)
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   103
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   104
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   105
set(hwfr_moc_hdrs
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   106
    ${ModelHdr}
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   107
    ${NetHdr}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   108
    ${UIhdr}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   109
    drawmapscene.h
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   110
    game.h
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   111
    gameuiconfig.h
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   112
    HWApplication.h
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   113
    hwform.h
6223
cc3eb9b7230f It doesn't make much sense to make checks like 'if(game)' if you never set game to 0. Using smart pointers instead. Does it fix segfaults? Probably.
unc0rr
parents: 6204
diff changeset
   114
    team.h
6931
86c951cd0f3f make DataManager a QObject with reload() slot that emits signal updated()
sheepluva
parents: 6604
diff changeset
   115
    util/DataManager.h
7897
5e7c0810f365 libav name refactor
koda
parents: 7817
diff changeset
   116
    util/LibavInteraction.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   117
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   118
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   119
set(hwfr_hdrs
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   120
    ${UtilHdr}
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   121
    team.h
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   122
    achievements.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   123
    binds.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   124
    ui_hwform.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   125
    hwconsts.h
6060
fdfc01419815 I started to move stuff around, c'mon, hate on meee. PS: if your (clean) build is broken - let me know)
sheepluva
parents: 6038
diff changeset
   126
    sdlkeys.h
7639
41e6de947531 * don't build moc for campaign.h
sheepluva
parents: 7628
diff changeset
   127
    campaign.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   128
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   129
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   130
set(hwfr_rez hedgewars.qrc)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   131
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
   132
if(${BUILD_ENGINE_LIBRARY})
8314
7faceaca67d4 can change library name and compile it on windows again
koda
parents: 8312
diff changeset
   133
    add_definitions(-DHWLIBRARY=1)
7faceaca67d4 can change library name and compile it on windows again
koda
parents: 8312
diff changeset
   134
    set(hwlibname "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
8311
bc18481dca8b can use engine as library on windows too
koda
parents: 8310
diff changeset
   135
    set(HW_LINK_LIBS ${hwlibname} ${HW_LINK_LIBS})
8310
a98c349bc06b minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents: 8283
diff changeset
   136
endif()
a98c349bc06b minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents: 8283
diff changeset
   137
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2525
diff changeset
   138
qt4_add_resources(hwfr_rez_src ${hwfr_rez})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   139
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2525
diff changeset
   140
qt4_wrap_cpp(hwfr_moc_srcs ${hwfr_moc_hdrs})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   141
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   142
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
   143
if(APPLE)
8279
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   144
    find_library(iokit_framework NAMES IOKit)
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   145
    set(HW_LINK_LIBS ${iokit_framework} ${HW_LINK_LIBS})
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   146
    set(hwfr_src ${hwfr_src} CocoaInitializer.mm
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   147
                             InstallController.cpp
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   148
                             M3Panel.mm
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   149
                             M3InstallController.m
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   150
                             NSWorkspace_RBAdditions.m
c03d64969112 less linking needed, raise minimum_osx_version when videorec is enabled
koda
parents: 8223
diff changeset
   151
                             )
4775
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   152
    if(NOT NOAUTOUPDATE)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   153
        find_package(Sparkle)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   154
        if(SPARKLE_FOUND)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   155
            add_definitions(-DSPARKLE_ENABLED)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   156
            set(hwfr_src ${hwfr_src} AutoUpdater.cpp SparkleAutoUpdater.mm)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   157
            set(HW_LINK_LIBS ${SPARKLE_LIBRARY} ${HW_LINK_LIBS})
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   158
        endif()
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   159
    endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   160
endif()
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   161
8104
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   162
#when debugging, always prompt a console to see fronted messages
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   163
#TODO: check it doesn't interfere on UNIX
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   164
if(CMAKE_BUILD_TYPE MATCHES "RELEASE")
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   165
    set(console_access "WIN32")
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   166
endif(CMAKE_BUILD_TYPE MATCHES "RELEASE")
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   167
8104
09c38cdf380d show console on win when debugging to see frontend messages
koda
parents: 8083
diff changeset
   168
add_executable(hedgewars ${console_access}
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   169
    ${hwfr_src}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   170
    ${hwfr_moc_srcs}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   171
    ${hwfr_hdrs}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   172
    ${hwfr_rez_src}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   173
    )
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2015
diff changeset
   174
8315
b3875e10a8ae edit rpath manually, allowing frontend+libengine to run on linux too
koda
parents: 8314
diff changeset
   175
if((UNIX AND NOT APPLE) AND ${BUILD_ENGINE_LIBRARY})
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
   176
    set_target_properties(hedgewars PROPERTIES LINK_FLAGS "-Wl,-rpath,${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}")
8315
b3875e10a8ae edit rpath manually, allowing frontend+libengine to run on linux too
koda
parents: 8314
diff changeset
   177
endif()
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   178
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   179
set(HW_LINK_LIBS
7778
3331b30e4ef1 Fix build
unc0rr
parents: 7718
diff changeset
   180
    physfs
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   181
    ${QT_LIBRARIES}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   182
    ${SDL_LIBRARY}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   183
    ${SDLMIXER_LIBRARY}
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents: 7278
diff changeset
   184
    ${FFMPEG_LIBRARIES}
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   185
    ${HW_LINK_LIBS}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   186
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   187
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   188
if(WIN32 AND NOT UNIX)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   189
    if(NOT SDL_LIBRARY)
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   190
        set(HW_LINK_LIBS ${HW_LINK_LIBS} SDL)
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   191
    endif()
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
   192
5757
5bf89dbf3547 Link against quazip
unc0rr
parents: 5755
diff changeset
   193
    set(HW_LINK_LIBS
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   194
        ${HW_LINK_LIBS}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   195
        ole32
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   196
        oleaut32
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   197
        winspool
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   198
        uuid
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   199
        )
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   200
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   201
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
   202
target_link_libraries(hedgewars ${HW_LINK_LIBS})
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   203
495
62c1c2b4414c - Fix most of the warnings in hwengine
unc0rr
parents: 494
diff changeset
   204
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 8315
diff changeset
   205
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir})
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   206