CMakeLists.txt
changeset 8146 1fba650c2aa4
parent 8104 09c38cdf380d
child 8223 14d9a3c33650
child 8273 3717cbf47daf
equal deleted inserted replaced
8144:f3ba33d5d2b1 8146:1fba650c2aa4
     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)