CMakeLists.txt
author nemo
Tue, 08 Sep 2009 19:44:49 +0000
changeset 2357 babe1a55e284
parent 2239 d7b5c65f7544
child 2401 2a694ea2a437
permissions -rw-r--r--
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
     1
project(hedgewars)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
     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
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
     4
1107
ee873ada9e86 Supress CMake warning
unc0rr
parents: 1074
diff changeset
     5
if(COMMAND cmake_policy)
ee873ada9e86 Supress CMake warning
unc0rr
parents: 1074
diff changeset
     6
	cmake_policy(SET CMP0003 NEW)
ee873ada9e86 Supress CMake warning
unc0rr
parents: 1074
diff changeset
     7
endif(COMMAND cmake_policy)
ee873ada9e86 Supress CMake warning
unc0rr
parents: 1074
diff changeset
     8
1843
16cdd1745b73 Add QCA2 checks to build system
unc0rr
parents: 1758
diff changeset
     9
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
1107
ee873ada9e86 Supress CMake warning
unc0rr
parents: 1074
diff changeset
    10
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    11
set(CPACK_PACKAGE_VERSION_MAJOR "0")
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    12
set(CPACK_PACKAGE_VERSION_MINOR "9")
2122
a3f987f1ddcd Current trunk version isn't compatible with 0.9.11, so set version to 0.9.12-dev
unc0rr
parents: 2107
diff changeset
    13
set(CPACK_PACKAGE_VERSION_PATCH "12-dev")
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    14
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    15
set(universal_build false)
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    16
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    17
if(APPLE)
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    18
set(bundle_name Hedgewars.app)
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    19
set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) 
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    20
set(DATA_INSTALL_DIR "../Resources/")
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    21
set(target_dir ".")
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    22
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    23
if(CMAKE_OSX_ARCHITECTURES MATCHES "i386;ppc7400" OR CMAKE_OSX_ARCHITECTURES MATCHES "ppc7400;i386" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386;ppc" OR CMAKE_OSX_ARCHITECTURES MATCHES "ppc;i386")
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    24
	set(universal_build true)
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    25
	message("-- Building a Universal Application")
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
    26
endif()
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
    27
else(APPLE)
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    28
set(target_dir "bin")
2015
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    29
endif(APPLE)
d2848d723690 koda's patch
unc0rr
parents: 2005
diff changeset
    30
266
53f46353d029 one else fix
displacer
parents: 265
diff changeset
    31
if(DEFINED DATA_INSTALL_DIR)
262
b4bc05237c06 fixed absent DATA_INSTALL_DIR
displacer
parents: 261
diff changeset
    32
	set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/)
266
53f46353d029 one else fix
displacer
parents: 265
diff changeset
    33
else(DEFINED DATA_INSTALL_DIR)
262
b4bc05237c06 fixed absent DATA_INSTALL_DIR
displacer
parents: 261
diff changeset
    34
	set(SHAREPATH share/hedgewars/)
266
53f46353d029 one else fix
displacer
parents: 265
diff changeset
    35
endif(DEFINED DATA_INSTALL_DIR)
220
d79eaeaf969d Fix hwengine target behaviour
unc0rr
parents: 205
diff changeset
    36
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    37
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    38
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
2122
a3f987f1ddcd Current trunk version isn't compatible with 0.9.11, so set version to 0.9.12-dev
unc0rr
parents: 2107
diff changeset
    39
set(HEDGEWARS_PROTO_VER 28)
271
f2f9a3d5b441 Protocol version sets in CMake
unc0rr
parents: 268
diff changeset
    40
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    41
if(WITH_SERVER)
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    42
	set(HAVE_NETSERVER true)
1979
912e450d4db2 - Add gameServer to build system
unc0rr
parents: 1843
diff changeset
    43
	add_subdirectory(gameServer)
1415
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    44
else(WITH_SERVER)
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    45
	set(HAVE_NETSERVER false)
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    46
endif(WITH_SERVER)
6fbfee0e113a Allow build without net game server: introduce -DWITH_SERVER configuration parameter
unc0rr
parents: 1370
diff changeset
    47
2239
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    48
#set default flags values for all the project
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    49
set(CMAKE_C_FLAGS "-Wall -pipe")
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    50
set(CMAKE_C_FLAGS_RELEASE "-w -O2 -fomit-frame-pointer")
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    51
set(CMAKE_C_FLAGS_DEBUG "-O0 -g")
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    52
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    53
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    54
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    55
d7b5c65f7544 move C and C++ optimization flags in the main CMakeLists.txt
koda
parents: 2219
diff changeset
    56
223
c41effdd461d Better build system scripts
unc0rr
parents: 220
diff changeset
    57
add_subdirectory(bin)
2191
20c62f787a4d koda's OpenAL conversion:
unc0rr
parents: 2122
diff changeset
    58
add_subdirectory(openalbridge)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    59
add_subdirectory(QTfrontend)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    60
add_subdirectory(hedgewars)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    61
add_subdirectory(share)
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents: 2203
diff changeset
    62
add_subdirectory(tools)
2203
6bd39d75e0dd -Added support for Release and Debug for CMAKE_BUILD_TYPE
koda
parents: 2200
diff changeset
    63
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    64
# CPack vars
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    65
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    66
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a turn-based strategy")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    67
set(CPACK_PACKAGE_VENDOR "Hedgewars")
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    68
set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}")
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    69
set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${HEDGEWARS_VERSION}")
1459
cf6fa7c9cf45 Fix generator name (TBZ2 instead of BZ2)
unc0rr
parents: 1458
diff changeset
    70
set(CPACK_SOURCE_GENERATOR "TBZ2")
1173
70b0acd4548c Revert accidental nsis installer generator regression
unc0rr
parents: 1159
diff changeset
    71
set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "hedgewars")
458
5880af7b530a Fix build
unc0rr
parents: 360
diff changeset
    72
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
907
a5b0b93a39c8 Use constant generated by cmake for version string
unc0rr
parents: 904
diff changeset
    73
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${HEDGEWARS_VERSION}")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    74
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    75
if(WIN32 AND NOT UNIX)
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    76
	set(CPACK_NSIS_DISPLAY_NAME "Hedgewars, a free turn-based strategy game") 
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    77
	set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    78
	set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    79
	set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
1159
49c88f620e51 Various build system improvements
unc0rr
parents: 1141
diff changeset
    80
	set(CPACK_NSIS_MODIFY_PATH OFF)
49c88f620e51 Various build system improvements
unc0rr
parents: 1141
diff changeset
    81
	set(CPACK_GENERATOR "ZIP;NSIS")
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    82
else(WIN32 AND NOT UNIX)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    83
	set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine")
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    84
endif(WIN32 AND NOT UNIX)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
    85
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    86
set(CPACK_SOURCE_IGNORE_FILES
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    87
	"~"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    88
	"\\\\.svn"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    89
	"\\\\.exe$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    90
	"\\\\.a$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    91
	"\\\\.dll$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    92
	"\\\\.xcf$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    93
	"\\\\.cxx$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    94
	"\\\\.db$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    95
	"\\\\.dof$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    96
	"\\\\.cmake$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    97
	"\\\\.layout$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    98
	"\\\\.zip$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
    99
	"\\\\.gz$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   100
	"\\\\.bz2$"
722
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   101
	"\\\\.tmp$"
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   102
	"\\\\.core$"
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   103
	"\\\\.sh$"
727
da975a75af09 Fix all issues with make package_source on my system
unc0rr
parents: 722
diff changeset
   104
	"\\\\.ppu$"
da975a75af09 Fix all issues with make package_source on my system
unc0rr
parents: 722
diff changeset
   105
	"\\\\.o$"
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   106
	"Makefile"
722
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   107
	"Doxyfile"
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   108
	"CMakeFiles"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   109
	"debug"
727
da975a75af09 Fix all issues with make package_source on my system
unc0rr
parents: 722
diff changeset
   110
	"release$"
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   111
	"Debug$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   112
	"Release$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   113
	"proto.inc$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   114
	"hwconsts.cpp$"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   115
	"playlist.inc$"
722
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   116
	"CPack"
727
da975a75af09 Fix all issues with make package_source on my system
unc0rr
parents: 722
diff changeset
   117
	"^${PROJECT_SOURCE_DIR}/bin/[a-z]"
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   118
	"^${PROJECT_SOURCE_DIR}/tools"
722
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   119
	"^${PROJECT_SOURCE_DIR}/doc"
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   120
	"^${PROJECT_SOURCE_DIR}/templates"
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   121
	"^${PROJECT_SOURCE_DIR}/Graphics"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   122
	"^${PROJECT_SOURCE_DIR}/realtest"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   123
	"^${PROJECT_SOURCE_DIR}/tmp"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   124
	"^${PROJECT_SOURCE_DIR}/utils"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   125
	"^${PROJECT_SOURCE_DIR}/share/hedgewars/Data/Maps/test"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   126
	"^${PROJECT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   127
	"^${PROJECT_SOURCE_DIR}/install_manifest.txt"
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   128
	"^${PROJECT_SOURCE_DIR}/CMakeCache.txt"
722
993faebbe546 - Use shotgun training as more attractive than the second one with bazooka
unc0rr
parents: 720
diff changeset
   129
	"^${PROJECT_SOURCE_DIR}/hedgewars\\\\."
584
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   130
)
f381705f1aeb Some stuff to get good results from make 'package_source'
unc0rr
parents: 546
diff changeset
   131
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 123
diff changeset
   132
include(CPack)