QTfrontend/CMakeLists.txt
author unc0rr
Tue, 28 Aug 2012 22:33:17 +0400
changeset 7617 0ac281e1b58b
parent 7528 f8cf277dca36
child 7619 e5d17bab312f
permissions -rw-r--r--
Make ffmpeg optional for frontend
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)
7256
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
    14
if (NOT CROSSAPPLE)
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
    15
    include(${QT_USE_FILE})
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
    16
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    17
5879
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    18
# Check if we need zlib
6204
80cd75daf80f Fix for 'The "optimized" argument must be followed by a library.' cmake failure
unc0rr
parents: 6175
diff changeset
    19
check_library_exists("${QT_QTCORE_LIBRARY}" inflateInit2_ ${QT_LIBRARY_DIR} QT_PROVIDES_ZLIB_FUNCTIONS)
5879
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    20
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    21
if(NOT QT_PROVIDES_ZLIB_FUNCTIONS)
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    22
    find_package(ZLIB REQUIRED)
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    23
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    24
    set(HW_LINK_LIBS ${ZLIB_LIBRARIES} ${HW_LINK_LIBS})
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    25
endif()
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    26
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
    27
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    28
# Configure for SDL
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    29
find_package(SDL REQUIRED)
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2443
diff changeset
    30
find_package(SDL_mixer REQUIRED)
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7528
diff changeset
    31
find_package(FFMPEG)
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    32
2239
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2230
diff changeset
    33
include_directories(.)
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    34
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
    35
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
    36
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
    37
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
    38
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
    39
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
    40
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
707
0a00c16022ca Try to fix SDL problem
unc0rr
parents: 653
diff changeset
    41
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
    42
include_directories(${SDLMIXER_INCLUDE_DIR})
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents: 7278
diff changeset
    43
include_directories(${FFMPEG_INCLUDE_DIR})
5754
583b7a683b17 - Implement progressbars to show download progress
unc0rr
parents: 5338
diff changeset
    44
include_directories(${CMAKE_SOURCE_DIR}/misc/quazip)
1159
49c88f620e51 Various build system improvements
unc0rr
parents: 1043
diff changeset
    45
if(UNIX)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    46
    # 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
    47
    include_directories("/usr/local/include")
1159
49c88f620e51 Various build system improvements
unc0rr
parents: 1043
diff changeset
    48
endif(UNIX)
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
    49
1904
20348675b015 - Fix warnings in frontend
unc0rr
parents: 1881
diff changeset
    50
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    51
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
    52
    set(HEDGEWARS_BINDIR ".")
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    53
    set(HEDGEWARS_DATADIR "../share/")
3694
3e9c0634065c new quality slider widget (needs to be customized), removed obsolete arguments
koda
parents: 3344
diff changeset
    54
        add_definitions(-DUSE_XFIRE)
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
    55
else()
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    56
    set(HEDGEWARS_BINDIR ${CMAKE_INSTALL_PREFIX})
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    57
    if(DEFINED DATA_INSTALL_DIR)
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    58
        set(HEDGEWARS_DATADIR ${DATA_INSTALL_DIR})
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    59
    else()
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    60
        set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/share/)
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    61
    endif()
5188
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5078
diff changeset
    62
    #only the cocoa version of qt supports building 64 bit apps
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5078
diff changeset
    63
    if(APPLE AND (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64*") AND (NOT QT_MAC_USE_COCOA))
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5078
diff changeset
    64
        message(FATAL_ERROR "Building the 64 bit version of Hedgewars *requires* the Cocoa variant of QT on Mac OS X")
d0461bd6d45b some updates to the crossbuild system for mac
koda
parents: 5078
diff changeset
    65
    endif()
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
    66
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    67
2239
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2230
diff changeset
    68
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2218
diff changeset
    69
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
    70
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    71
file(GLOB NetCpp net/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    72
file(GLOB ModelCpp model/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    73
file(GLOB_RECURSE UIcpp ui/*.cpp)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    74
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
    75
7617
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7528
diff changeset
    76
if((NOT NO_VIDEOREC) AND ${FFMPEG_FOUND})
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7528
diff changeset
    77
    add_definitions(-DVIDEOREC)
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7528
diff changeset
    78
endif()
0ac281e1b58b Make ffmpeg optional for frontend
unc0rr
parents: 7528
diff changeset
    79
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
    80
set(hwfr_src
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
    81
    ${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
    82
    ${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
    83
    ${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
    84
    ${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
    85
    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
    86
    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
    87
    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
    88
    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
    89
    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
    90
    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
    91
    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
    92
    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
    93
    team.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
    94
    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
    95
    ${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
    96
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
    97
2821
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    98
#xfire integration
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
    99
if(WIN32)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   100
    set(hwfr_src ${hwfr_src} xfire.cpp ../misc/xfire/xfiregameclient.cpp)
2821
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
   101
endif(WIN32)
67815ee123d7 Frontend:
smxx
parents: 2663
diff changeset
   102
880
f9efe907828f Add win32 resource compilation under mingw (used sim-im srcs as example)
unc0rr
parents: 781
diff changeset
   103
if(MINGW)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   104
    # 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
   105
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   106
    COMMAND windres -I ${CMAKE_CURRENT_SOURCE_DIR}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   107
    -i ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars.rc
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   108
    -o ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   109
    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
   110
else(MINGW)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   111
    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
   112
endif(MINGW)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   113
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   114
file(GLOB ModelHdr model/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   115
file(GLOB NetHdr net/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   116
file(GLOB_RECURSE UIhdr ui/*.h)
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   117
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
   118
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
   119
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   120
set(hwfr_moc_hdrs
6061
15b4b485a1c5 this makes more sense
sheepluva
parents: 6060
diff changeset
   121
    ${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
   122
    ${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
   123
    ${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
   124
    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
   125
    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
   126
    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
   127
    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
   128
    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
   129
    team.h
6931
86c951cd0f3f make DataManager a QObject with reload() slot that emits signal updated()
sheepluva
parents: 6604
diff changeset
   130
    util/DataManager.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   131
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   132
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   133
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
   134
    ${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
   135
    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
   136
    achievements.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   137
    binds.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   138
    ui_hwform.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   139
    KB.h
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   140
    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
   141
    sdlkeys.h
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   142
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   143
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   144
set(hwfr_rez hedgewars.qrc)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   145
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2525
diff changeset
   146
qt4_add_resources(hwfr_rez_src ${hwfr_rez})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   147
2641
b08cafb86797 some tweaks in the mac compilation system
koda
parents: 2525
diff changeset
   148
qt4_wrap_cpp(hwfr_moc_srcs ${hwfr_moc_hdrs})
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   149
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   150
7256
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   151
if(APPLE OR CROSSAPPLE)
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   152
    set(hwfr_src ${hwfr_src} InstallController.cpp CocoaInitializer.mm M3Panel.mm M3InstallController.m NSWorkspace_RBAdditions.m)
5879
42cf124c305b This should check if Qt provides zlib functions, and adds zlib dependency in case of zlibless Qt. Tested with Qt providing zlib functions only.
unc0rr
parents: 5808
diff changeset
   153
    set(HW_LINK_LIBS IOKit ${HW_LINK_LIBS})
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   154
4775
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   155
    if(NOT NOAUTOUPDATE)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   156
        find_package(Sparkle)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   157
        if(SPARKLE_FOUND)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   158
            add_definitions(-DSPARKLE_ENABLED)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   159
            set(hwfr_src ${hwfr_src} AutoUpdater.cpp SparkleAutoUpdater.mm)
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   160
            set(HW_LINK_LIBS ${SPARKLE_LIBRARY} ${HW_LINK_LIBS})
663aa9552bfc add NOAUTOUPDATE symbol and hedgewars-server.cabal
koda
parents: 4520
diff changeset
   161
        endif()
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   162
    endif()
2652
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   163
endif()
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   164
67d0344aea9f still updates for mac compilation
koda
parents: 2641
diff changeset
   165
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   166
add_executable(hedgewars WIN32
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   167
    ${hwfr_src}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   168
    ${hwfr_moc_srcs}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   169
    ${hwfr_hdrs}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   170
    ${hwfr_rez_src}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   171
    )
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2015
diff changeset
   172
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   173
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   174
set(HW_LINK_LIBS
5790
75ffa050c4f9 Fix link again (changed libraries order)
unc0rr
parents: 5757
diff changeset
   175
    quazip
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   176
    ${QT_LIBRARIES}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   177
    ${SDL_LIBRARY}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   178
    ${SDLMIXER_LIBRARY}
7528
f8cf277dca36 FindFFMPEG.cmake (used only for frontend for now).
Stepan777 <stepik-777@mail.ru>
parents: 7278
diff changeset
   179
    ${FFMPEG_LIBRARIES}
4520
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   180
    ${HW_LINK_LIBS}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   181
    )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   182
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   183
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
   184
    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
   185
        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
   186
    endif()
555
0376fdcc6322 Get possible screen resolutions from SDL library
unc0rr
parents: 539
diff changeset
   187
5757
5bf89dbf3547 Link against quazip
unc0rr
parents: 5755
diff changeset
   188
    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
   189
        ${HW_LINK_LIBS}
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   190
        ole32
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   191
        oleaut32
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   192
        winspool
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   193
        uuid
e7882bd1a894 Allow to draw maps in frontend and play them (only locally, some bugs to fix)
unc0rr
parents: 4410
diff changeset
   194
        )
2663
d53918cd22bb random updates for 10.6 and iphone builds
koda
parents: 2652
diff changeset
   195
endif()
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 177
diff changeset
   196
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   197
7256
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   198
if (CROSSAPPLE)
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   199
    add_dependencies(hedgewars quazip)
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   200
else()
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   201
    target_link_libraries(hedgewars ${HW_LINK_LIBS})
5b97b9946cde CROSSAPPLE ftw
koda
parents: 6931
diff changeset
   202
endif()
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
2015
d2848d723690 koda's patch
unc0rr
parents: 2012
diff changeset
   205
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
2218
59a9bebc4988 -Smaxx' solution for compiling frontend with static libs in windows
koda
parents: 2212
diff changeset
   206