1 project(hedgewars) |
1 project(hedgewars) |
2 |
2 |
3 #initialise cmake environment |
3 #initialise cmake environment |
4 cmake_minimum_required(VERSION 2.6.0) |
4 cmake_minimum_required(VERSION 2.6.0) |
5 FOREACH(hwpolicy CMP0003 CMP0012 CMP0017) |
5 foreach(hwpolicy CMP0003 CMP0012 CMP0017) |
6 IF(POLICY ${hwpolicy}) |
6 if(POLICY ${hwpolicy}) |
7 CMAKE_POLICY(SET ${hwpolicy} NEW) |
7 cmake_policy(SET ${hwpolicy} NEW) |
8 ENDIF() |
8 endif() |
9 ENDFOREACH() |
9 endforeach() |
10 #use available modules, fallback to ours if not present (CMP0017 helps) |
10 #use available modules, fallback to ours if not present (CMP0017 helps) |
11 set(CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") |
11 set(CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") |
12 |
12 |
13 |
13 |
14 #usually this is set at release time |
14 #usually this is set at release time |
25 option(CROSSAPPLE "Enable OSX when not on OSX [default: off]" OFF) |
25 option(CROSSAPPLE "Enable OSX when not on OSX [default: off]" OFF) |
26 option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF) |
26 option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF) |
27 |
27 |
28 |
28 |
29 #detect Mercurial revision (if present) |
29 #detect Mercurial revision (if present) |
30 IF(NOT NOREVISION) |
30 if(NOT NOREVISION) |
31 set(default_build_type "DEBUG") |
31 set(default_build_type "DEBUG") |
32 set(version_suffix "-development_version") |
32 set(version_suffix "-development_version") |
33 set(HW_DEV true) |
33 set(HW_DEV true) |
34 FIND_PROGRAM(HGCOMMAND hg) |
34 find_program(HGCOMMAND hg) |
35 IF(HGCOMMAND AND (EXISTS ${CMAKE_SOURCE_DIR}/.hg)) |
35 if(HGCOMMAND AND (EXISTS ${CMAKE_SOURCE_DIR}/.hg)) |
36 execute_process(COMMAND ${HGCOMMAND} identify -in |
36 execute_process(COMMAND ${HGCOMMAND} identify -in |
37 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
37 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
38 OUTPUT_VARIABLE internal_version |
38 OUTPUT_VARIABLE internal_version |
39 ERROR_QUIET |
39 ERROR_QUIET |
40 ) |
40 ) |
41 #check local repo status |
41 #check local repo status |
42 STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${internal_version}) |
42 string(REGEX REPLACE "[^+]" "" HGCHANGED ${internal_version}) |
43 |
43 |
44 STRING(REGEX REPLACE "[0-9a-zA-Z]+(.*) ([0-9]+)(.*)" "\\2" revision_number ${internal_version}) |
44 string(REGEX REPLACE "[0-9a-zA-Z]+(.*) ([0-9]+)(.*)" "\\2" revision_number ${internal_version}) |
45 STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) [0-9]+(.*)" "\\1" revision_hash ${internal_version}) |
45 string(REGEX REPLACE "([0-9a-zA-Z]+)(.*) [0-9]+(.*)" "\\1" revision_hash ${internal_version}) |
46 |
46 |
47 MESSAGE(STATUS "Building revision ${revision_number} from hash ${revision_hash} ${HGCHANGED}") |
47 message(STATUS "Building revision ${revision_number} from hash ${revision_hash} ${HGCHANGED}") |
48 IF(HGCHANGED) |
48 if(HGCHANGED) |
49 MESSAGE(WARNING "Notice: you have uncommitted changes in your repository") |
49 MESSAGE(WARNING "Notice: you have uncommitted changes in your repository") |
50 ENDIF() |
50 endif() |
51 set(version_suffix "-${revision_number}${HGCHANGED}") |
51 set(version_suffix "-${revision_number}${HGCHANGED}") |
52 ENDIF() |
52 endif() |
53 ELSE(NOT NOREVISION) |
53 else(NOT NOREVISION) |
54 set(default_build_type "RELEASE") |
54 set(default_build_type "RELEASE") |
55 set(HWDEV false) |
55 set(HWDEV false) |
56 MESSAGE(STATUS "Building distributable version") |
56 message(STATUS "Building distributable version") |
57 ENDIF(NOT NOREVISION) |
57 endif(NOT NOREVISION) |
58 |
58 |
59 |
59 |
60 #versioning |
60 #versioning |
61 set(CPACK_PACKAGE_VERSION_MAJOR 0) |
61 set(CPACK_PACKAGE_VERSION_MAJOR 0) |
62 set(CPACK_PACKAGE_VERSION_MINOR 9) |
62 set(CPACK_PACKAGE_VERSION_MINOR 9) |