CMakeLists.txt
branchhedgeroid
changeset 5495 272ed78e59a7
parent 5381 8f95038f3f75
parent 5429 0caa7519cbd1
child 5644 4ad07103cfae
equal deleted inserted replaced
5479:b9aed3de7c27 5495:272ed78e59a7
     1 project(hedgewars)
     1 project(hedgewars)
     2 
     2 
       
     3 
       
     4 #initialise cmake environment
     3 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
     5 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
     4 FOREACH(policy CMP0003 CMP0012)
     6 FOREACH(policy CMP0003 CMP0012)
     5 	IF(POLICY ${policy})
     7 	IF(POLICY ${policy})
     6 		CMAKE_POLICY(SET ${policy} NEW)
     8 		CMAKE_POLICY(SET ${policy} NEW)
     7 	ENDIF()
     9 	ENDIF()
     8 ENDFOREACH()
    10 ENDFOREACH()
       
    11 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
       
    12 
     9 
    13 
    10 #detect Mercurial revision (if present)
    14 #detect Mercurial revision (if present)
    11 set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
    15 set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
    12 set(HGCHANGED "")
    16 set(HGCHANGED "")
    13 IF(version_suffix MATCHES "-dev")
    17 IF(version_suffix MATCHES "-dev")
    18 			exec_program(${HGCOMMAND}
    22 			exec_program(${HGCOMMAND}
    19 				     ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR}
    23 				     ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR}
    20 				     OUTPUT_VARIABLE version_suffix
    24 				     OUTPUT_VARIABLE version_suffix
    21 				     )
    25 				     )
    22 			STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
    26 			STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
    23 			STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3:\\1" version_suffix ${version_suffix})
    27 			STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3-\\1" version_suffix ${version_suffix})
    24 			IF (HGCHANGED)
    28 			IF (HGCHANGED)
    25 				MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
    29 				MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
    26 			ELSE()
    30 			ELSE()
    27 				MESSAGE(STATUS "Building revision ${version_suffix}")
    31 				MESSAGE(STATUS "Building revision ${version_suffix}")
    28 			ENDIF()
    32 			ENDIF()
    31 	ENDIF()
    35 	ENDIF()
    32 ELSE()
    36 ELSE()
    33 	set(HW_DEV false)
    37 	set(HW_DEV false)
    34 ENDIF()
    38 ENDIF()
    35 
    39 
    36 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
    40 
    37 
    41 #versioning
    38 set( CPACK_PACKAGE_VERSION_MAJOR 0 )
    42 set(CPACK_PACKAGE_VERSION_MAJOR 0)
    39 set( CPACK_PACKAGE_VERSION_MINOR 9 )
    43 set(CPACK_PACKAGE_VERSION_MINOR 9)
    40 set( CPACK_PACKAGE_VERSION_PATCH 16${version_suffix} )
    44 set(CPACK_PACKAGE_VERSION_PATCH 16${version_suffix})
       
    45 set(HEDGEWARS_PROTO_VER 38)
       
    46 set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
       
    47 
    41 
    48 
    42 #set some safe values
    49 #set some safe values
    43 IF(NOT WITH_SERVER)
    50 IF(NOT WITH_SERVER)
    44 	SET(WITH_SERVER 0)
    51 	SET(WITH_SERVER 0)
    45 ENDIF(NOT WITH_SERVER)
    52 ENDIF(NOT WITH_SERVER)
    47 	SET(BUILD_ENGINE_LIBRARY 0)
    54 	SET(BUILD_ENGINE_LIBRARY 0)
    48 ENDIF(NOT BUILD_ENGINE_LIBRARY)
    55 ENDIF(NOT BUILD_ENGINE_LIBRARY)
    49 set(target_dir "bin")
    56 set(target_dir "bin")
    50 
    57 
    51 
    58 
       
    59 #bundle .app setup
    52 if(APPLE)
    60 if(APPLE)
    53 	set(CMAKE_FIND_FRAMEWORK "FIRST")
    61 	set(CMAKE_FIND_FRAMEWORK "FIRST")
    54 
    62 
    55 	#paths for creating the bundle
    63 	#paths for creating the bundle
    56 	set(bundle_name Hedgewars.app)
    64 	set(bundle_name Hedgewars.app)
   163 else()
   171 else()
   164 	set(SHAREPATH share/hedgewars/)
   172 	set(SHAREPATH share/hedgewars/)
   165 endif()
   173 endif()
   166 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
   174 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
   167 
   175 
   168 set( HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" )
       
   169 set( HEDGEWARS_PROTO_VER 38 )
       
   170 
   176 
   171 if(WITH_SERVER)
   177 if(WITH_SERVER)
   172 	find_program(ghc_executable ghc)
   178 	find_program(ghc_executable ghc)
   173 
   179 
   174 	if(ghc_executable)
   180 	if(ghc_executable)
   193 	add_subdirectory(QTfrontend)
   199 	add_subdirectory(QTfrontend)
   194 	add_subdirectory(share)
   200 	add_subdirectory(share)
   195 	add_subdirectory(tools)
   201 	add_subdirectory(tools)
   196 endif()
   202 endif()
   197 
   203 
   198 # CPack vars
   204 
   199 
   205 # CPack variables
   200 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
   206 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
   201 set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
   207 set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
   202 set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}")
   208 set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}")
   203 set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${HEDGEWARS_VERSION}")
   209 set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${HEDGEWARS_VERSION}")
   204 set(CPACK_SOURCE_GENERATOR "TBZ2")
   210 set(CPACK_SOURCE_GENERATOR "TBZ2")
   276 	"^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
   282 	"^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
   277 	"^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
   283 	"^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
   278 )
   284 )
   279 
   285 
   280 include(CPack)
   286 include(CPack)
       
   287