author | koda |
Mon, 30 Nov 2009 04:18:31 +0000 | |
changeset 2652 | 67d0344aea9f |
parent 2644 | 52b7c4776af9 |
child 2663 | d53918cd22bb |
permissions | -rw-r--r-- |
184 | 1 |
project(hedgewars) |
2 |
||
1461
87e5a6c3882c
Ping clients every 30 seconds, should help with ghosts on server
unc0rr
parents:
1459
diff
changeset
|
3 |
cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR) |
184 | 4 |
|
1107 | 5 |
if(COMMAND cmake_policy) |
6 |
cmake_policy(SET CMP0003 NEW) |
|
7 |
endif(COMMAND cmake_policy) |
|
8 |
||
1843 | 9 |
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules) |
1107 | 10 |
|
907 | 11 |
set(CPACK_PACKAGE_VERSION_MAJOR "0") |
12 |
set(CPACK_PACKAGE_VERSION_MINOR "9") |
|
2573
a7db29d7e2d0
Set version to 0.9.13-dev, protocol number to 30 due to changes in engine
unc0rr
parents:
2556
diff
changeset
|
13 |
set(CPACK_PACKAGE_VERSION_PATCH "13-dev") |
907 | 14 |
|
2641 | 15 |
#forbid in-tree building |
16 |
#IF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) |
|
17 |
# MESSAGE(STATUS "Please do an out-of-tree build:") |
|
18 |
# MESSAGE(STATUS "rm CMakeCache.txt; mkdir build; cd build; cmake ..; make") |
|
19 |
# MESSAGE(FATAL_ERROR "In-tree-build detected!") |
|
20 |
#ENDIF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) |
|
21 |
||
22 |
||
2015 | 23 |
if(APPLE) |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
24 |
set(CMAKE_FIND_FRAMEWORK "FIRST") |
2609 | 25 |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
26 |
#paths for creating the bundle |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
27 |
set(bundle_name Hedgewars.app) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
28 |
set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
29 |
set(DATA_INSTALL_DIR "../Resources/") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
30 |
set(target_dir ".") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
31 |
|
2641 | 32 |
#detect on which system are we |
33 |
EXEC_PROGRAM("/usr/bin/sw_vers" OUTPUT_VARIABLE MACOSX_VERSION_TMP) |
|
34 |
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACOSX_VERSION_TMP "${MACOSX_VERSION_TMP}") |
|
35 |
STRING(REGEX REPLACE "([0-9][0-9].[0-9]+).[0-9]" "\\1" current_macosx_version ${MACOSX_VERSION_TMP}) |
|
36 |
||
37 |
set(minimum_macosx $ENV{MACOSX_DEPLOYMENT_TARGET}) |
|
38 |
||
39 |
if(NOT minimum_macosx) |
|
40 |
set(minimum_macosx ${current_macosx_version}) |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
41 |
endif() |
2641 | 42 |
|
43 |
#create universal binaries only when it's time to bundle the application |
|
44 |
IF(BUNDLE) |
|
45 |
if(current_macosx_version MATCHES "10.6") |
|
2652 | 46 |
set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc7400") |
2641 | 47 |
else() |
48 |
set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400") |
|
49 |
endif() |
|
2652 | 50 |
ELSEIF(NOT CMAKE_OSX_ARCHITECTURES) |
51 |
EXEC_PROGRAM("/usr/bin/uname" ARGS "-p" OUTPUT_VARIABLE ARCH_TYPE) |
|
52 |
set(CMAKE_OSX_ARCHITECTURES "${ARCH_TYPE}") |
|
2641 | 53 |
ENDIF() |
54 |
||
2652 | 55 |
message(STATUS "Target system: Mac OS X ${minimum_macosx} ${CMAKE_OSX_ARCHITECTURES}") |
2641 | 56 |
|
57 |
if(minimum_macosx MATCHES "10.4") |
|
58 |
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/") |
|
59 |
else() |
|
60 |
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${minimum_macosx}.sdk/") |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
61 |
endif() |
2641 | 62 |
|
2203
6bd39d75e0dd
-Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents:
2200
diff
changeset
|
63 |
else(APPLE) |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
64 |
set(target_dir "bin") |
2015 | 65 |
endif(APPLE) |
66 |
||
2406 | 67 |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
68 |
#this snippet sets "Release" mode by default |
2641 | 69 |
#IF (NOT CMAKE_BUILD_TYPE) |
70 |
# SET(CMAKE_BUILD_TYPE "Release") |
|
71 |
#ENDIF (NOT CMAKE_BUILD_TYPE) |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
72 |
if (NOT CMAKE_BUILD_TYPE) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
73 |
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
74 |
endif (NOT CMAKE_BUILD_TYPE) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
75 |
|
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
76 |
if(CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES "Release") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
77 |
message(STATUS "Building Release") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
78 |
set(Optz true) |
2406 | 79 |
else() |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
80 |
message(STATUS "Building Debug") |
2406 | 81 |
set(CMAKE_VERBOSE_MAKEFILE true) |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
82 |
set(Optz false) |
2406 | 83 |
endif() |
84 |
||
85 |
||
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
86 |
#set default flags values for all the project |
2641 | 87 |
set(CMAKE_C_FLAGS "-pipe") |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
88 |
set(CMAKE_C_FLAGS_RELEASE "-w -O2 -fomit-frame-pointer") |
2641 | 89 |
set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG") |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
90 |
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
91 |
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
92 |
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
93 |
|
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
94 |
set(pascal_compiler_flags_cmn "-B" "-FE../bin" "-Fl../bin/" "-Cs2000000" "-vwi") |
2652 | 95 |
if(LOWRES) |
96 |
set(pascal_compiler_flags_cmn "-dLOWRES" ${pascal_compiler_flags_cmn}) |
|
97 |
add_definitions(-DLOWRES) |
|
98 |
endif(LOWRES) |
|
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
99 |
|
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
100 |
if(Optz) |
2641 | 101 |
set(pascal_compiler_flags_cmn "-O2" "-Xs" "-Si" ${pascal_compiler_flags_cmn}) |
2606
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
102 |
set(haskell_compiler_flags_cmn "-w" "-O2") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
103 |
else(Optz) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
104 |
set(pascal_compiler_flags_cmn "-O-" "-gl" "-dDEBUGFILE" "-pg" "-vv" ${pascal_compiler_flags_cmn}) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
105 |
set(haskell_compiler_flags_cmn "-Wall" "-debug" "-dcore-lint") |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
106 |
endif(Optz) |
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
107 |
|
ed687a8d081f
updated build files for macosx and optimization system
koda
parents:
2573
diff
changeset
|
108 |
|
266 | 109 |
if(DEFINED DATA_INSTALL_DIR) |
262 | 110 |
set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/) |
2652 | 111 |
else() |
262 | 112 |
set(SHAREPATH share/hedgewars/) |
2652 | 113 |
endif() |
220 | 114 |
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) |
184 | 115 |
|
907 | 116 |
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") |
2573
a7db29d7e2d0
Set version to 0.9.13-dev, protocol number to 30 due to changes in engine
unc0rr
parents:
2556
diff
changeset
|
117 |
set(HEDGEWARS_PROTO_VER 30) |
271 | 118 |
|
1415
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
119 |
if(WITH_SERVER) |
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
120 |
set(HAVE_NETSERVER true) |
1979 | 121 |
add_subdirectory(gameServer) |
1415
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
122 |
else(WITH_SERVER) |
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
123 |
set(HAVE_NETSERVER false) |
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
124 |
endif(WITH_SERVER) |
6fbfee0e113a
Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents:
1370
diff
changeset
|
125 |
|
2239
d7b5c65f7544
move C and C++ optimization flags in the main CMakeLists.txt
koda
parents:
2219
diff
changeset
|
126 |
|
223 | 127 |
add_subdirectory(bin) |
2515
51d3f4b6293a
revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents:
2503
diff
changeset
|
128 |
#add_subdirectory(openalbridge) |
184 | 129 |
add_subdirectory(QTfrontend) |
130 |
add_subdirectory(hedgewars) |
|
131 |
add_subdirectory(share) |
|
2219
07f5345ecae7
additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
2203
diff
changeset
|
132 |
add_subdirectory(tools) |
2203
6bd39d75e0dd
-Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents:
2200
diff
changeset
|
133 |
|
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
134 |
# CPack vars |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
135 |
|
184 | 136 |
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a turn-based strategy") |
137 |
set(CPACK_PACKAGE_VENDOR "Hedgewars") |
|
907 | 138 |
set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}") |
139 |
set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${HEDGEWARS_VERSION}") |
|
1459 | 140 |
set(CPACK_SOURCE_GENERATOR "TBZ2") |
1173
70b0acd4548c
Revert accidental nsis installer generator regression
unc0rr
parents:
1159
diff
changeset
|
141 |
set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "hedgewars") |
458 | 142 |
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") |
907 | 143 |
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${HEDGEWARS_VERSION}") |
184 | 144 |
|
145 |
if(WIN32 AND NOT UNIX) |
|
2200
8192be6e3aef
koda/Smaxx changes to openal for crossplatform building
nemo
parents:
2191
diff
changeset
|
146 |
set(CPACK_NSIS_DISPLAY_NAME "Hedgewars, a free turn-based strategy game") |
184 | 147 |
set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/") |
148 |
set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/") |
|
149 |
set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com") |
|
1159 | 150 |
set(CPACK_NSIS_MODIFY_PATH OFF) |
151 |
set(CPACK_GENERATOR "ZIP;NSIS") |
|
184 | 152 |
else(WIN32 AND NOT UNIX) |
153 |
set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine") |
|
154 |
endif(WIN32 AND NOT UNIX) |
|
155 |
||
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
156 |
set(CPACK_SOURCE_IGNORE_FILES |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
157 |
"~" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
158 |
"\\\\.svn" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
159 |
"\\\\.exe$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
160 |
"\\\\.a$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
161 |
"\\\\.dll$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
162 |
"\\\\.xcf$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
163 |
"\\\\.cxx$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
164 |
"\\\\.db$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
165 |
"\\\\.dof$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
166 |
"\\\\.cmake$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
167 |
"\\\\.layout$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
168 |
"\\\\.zip$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
169 |
"\\\\.gz$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
170 |
"\\\\.bz2$" |
722
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
171 |
"\\\\.tmp$" |
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
172 |
"\\\\.core$" |
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
173 |
"\\\\.sh$" |
727
da975a75af09
Fix all issues with make package_source on my system
unc0rr
parents:
722
diff
changeset
|
174 |
"\\\\.ppu$" |
da975a75af09
Fix all issues with make package_source on my system
unc0rr
parents:
722
diff
changeset
|
175 |
"\\\\.o$" |
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
176 |
"Makefile" |
722
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
177 |
"Doxyfile" |
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
178 |
"CMakeFiles" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
179 |
"debug" |
727
da975a75af09
Fix all issues with make package_source on my system
unc0rr
parents:
722
diff
changeset
|
180 |
"release$" |
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
181 |
"Debug$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
182 |
"Release$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
183 |
"proto.inc$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
184 |
"hwconsts.cpp$" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
185 |
"playlist.inc$" |
722
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
186 |
"CPack" |
727
da975a75af09
Fix all issues with make package_source on my system
unc0rr
parents:
722
diff
changeset
|
187 |
"^${PROJECT_SOURCE_DIR}/bin/[a-z]" |
2556 | 188 |
"^${PROJECT_SOURCE_DIR}/tools/templates" |
722
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
189 |
"^${PROJECT_SOURCE_DIR}/doc" |
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
190 |
"^${PROJECT_SOURCE_DIR}/templates" |
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
191 |
"^${PROJECT_SOURCE_DIR}/Graphics" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
192 |
"^${PROJECT_SOURCE_DIR}/realtest" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
193 |
"^${PROJECT_SOURCE_DIR}/tmp" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
194 |
"^${PROJECT_SOURCE_DIR}/utils" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
195 |
"^${PROJECT_SOURCE_DIR}/share/hedgewars/Data/Maps/test" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
196 |
"^${PROJECT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
197 |
"^${PROJECT_SOURCE_DIR}/install_manifest.txt" |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
198 |
"^${PROJECT_SOURCE_DIR}/CMakeCache.txt" |
722
993faebbe546
- Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents:
720
diff
changeset
|
199 |
"^${PROJECT_SOURCE_DIR}/hedgewars\\\\." |
584
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
200 |
) |
f381705f1aeb
Some stuff to get good results from make 'package_source'
unc0rr
parents:
546
diff
changeset
|
201 |
|
184 | 202 |
include(CPack) |