CMakeLists.txt
changeset 7288 5d0704f23a2a
parent 7264 4c438ad3eddc
child 7397 833fc211ca2d
equal deleted inserted replaced
7188:580cd247511e 7288:5d0704f23a2a
     2 
     2 
     3 
     3 
     4 #initialise cmake environment
     4 #initialise cmake environment
     5 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
     5 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
     6 FOREACH(policy CMP0003 CMP0012)
     6 FOREACH(policy CMP0003 CMP0012)
     7 	IF(POLICY ${policy})
     7     IF(POLICY ${policy})
     8 		CMAKE_POLICY(SET ${policy} NEW)
     8         CMAKE_POLICY(SET ${policy} NEW)
     9 	ENDIF()
     9     ENDIF()
    10 ENDFOREACH()
    10 ENDFOREACH()
    11 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
    11 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
    12 
    12 
    13 
    13 
    14 #detect Mercurial revision (if present)
    14 #detect Mercurial revision (if present)
    15 set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
    15 set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
    16 set(HGCHANGED "")
    16 set(HGCHANGED "")
    17 IF(version_suffix MATCHES "-dev")
    17 IF(version_suffix MATCHES "-dev")
    18 	set(HW_DEV true)
    18     set(HW_DEV true)
    19 	IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.hg)
    19     IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.hg)
    20 		FIND_PROGRAM(HGCOMMAND hg)
    20         FIND_PROGRAM(HGCOMMAND hg)
    21 		IF(HGCOMMAND)
    21         IF(HGCOMMAND)
    22 			exec_program(${HGCOMMAND}
    22             exec_program(${HGCOMMAND}
    23 				     ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR}
    23                      ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR}
    24 				     OUTPUT_VARIABLE version_suffix
    24                      OUTPUT_VARIABLE version_suffix
    25 				     )
    25                      )
    26 			STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
    26             STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
    27 			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})
    28 			IF (HGCHANGED)
    28             IF (HGCHANGED)
    29 				MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
    29                 MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
    30 			ELSE()
    30             ELSE()
    31 				MESSAGE(STATUS "Building revision ${version_suffix}")
    31                 MESSAGE(STATUS "Building revision ${version_suffix}")
    32 			ENDIF()
    32             ENDIF()
    33 			set(version_suffix "-${version_suffix}")
    33             set(version_suffix "-${version_suffix}")
    34 		ENDIF()
    34         ENDIF()
    35 	ENDIF()
    35     ENDIF()
    36 ELSE()
    36 ELSE()
    37 	set(HW_DEV false)
    37     set(HW_DEV false)
    38 ENDIF()
    38 ENDIF()
    39 
    39 
    40 
    40 
    41 #versioning
    41 #versioning
    42 set(CPACK_PACKAGE_VERSION_MAJOR 0)
    42 set(CPACK_PACKAGE_VERSION_MAJOR 0)
    45 set(HEDGEWARS_PROTO_VER 42)
    45 set(HEDGEWARS_PROTO_VER 42)
    46 set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
    46 set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
    47 
    47 
    48 
    48 
    49 #set some safe values
    49 #set some safe values
    50 IF(NOT WITH_SERVER)
       
    51 	SET(WITH_SERVER 0)
       
    52 ENDIF(NOT WITH_SERVER)
       
    53 IF(NOT BUILD_ENGINE_LIBRARY)
    50 IF(NOT BUILD_ENGINE_LIBRARY)
    54 	SET(BUILD_ENGINE_LIBRARY 0)
    51     SET(BUILD_ENGINE_LIBRARY 0)
    55 ENDIF(NOT BUILD_ENGINE_LIBRARY)
    52 ENDIF(NOT BUILD_ENGINE_LIBRARY)
    56 set(target_dir "bin")
    53 set(target_dir "bin")
    57 
    54 
    58 
       
    59 #bundle .app setup
    55 #bundle .app setup
       
    56 if(APPLE OR CROSSAPPLE)
       
    57     #paths for creating the bundle
       
    58     set(bundle_name Hedgewars.app)
       
    59     set(frameworks_dir ${bundle_name}/Contents/Frameworks/)
       
    60     set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/)
       
    61     set(DATA_INSTALL_DIR "../Resources/")
       
    62     set(target_dir ".")
       
    63     set(minimum_macosx_version "10.6")
       
    64 endif()
       
    65 
    60 if(APPLE)
    66 if(APPLE)
    61 	set(CMAKE_FIND_FRAMEWORK "FIRST")
    67     set(CMAKE_FIND_FRAMEWORK "FIRST")
    62 
    68 
    63 	#paths for creating the bundle
    69     #what system are we building for
    64 	set(bundle_name Hedgewars.app)
    70     set(minimum_macosx_version $ENV{MACOSX_DEPLOYMENT_TARGET})
    65 	set(frameworks_dir ${bundle_name}/Contents/Frameworks/)
    71 
    66 	set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/)
    72     #detect on which system we are: if sw_vers cannot be found for any reason (re)use minimum_macosx_version
    67 	set(DATA_INSTALL_DIR "../Resources/")
    73     find_program(sw_vers sw_vers)
    68 	set(target_dir ".")
    74     if(sw_vers)
    69 
    75         exec_program(${sw_vers} ARGS "-productVersion" OUTPUT_VARIABLE current_macosx_version)
    70 	#what system are we building for
    76         string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" current_macosx_version ${current_macosx_version})
    71 	set(minimum_macosx_version $ENV{MACOSX_DEPLOYMENT_TARGET})
       
    72 
       
    73 	#detect on which system we are: if sw_vers cannot be found for any reason (re)use minimum_macosx_version
       
    74 	find_program(sw_vers sw_vers)
       
    75 	if(sw_vers)
       
    76 		exec_program(${sw_vers} ARGS "-productVersion" OUTPUT_VARIABLE current_macosx_version)
       
    77 		string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" current_macosx_version ${current_macosx_version})
       
    78         else()
    77         else()
    79 		if(NOT minimum_macosx_version)
    78         if(NOT minimum_macosx_version)
    80 			message(FATAL_ERROR "sw_vers not found! Need explicit MACOSX_DEPLOYMENT_TARGET variable set")
    79             message(FATAL_ERROR "sw_vers not found! Need explicit MACOSX_DEPLOYMENT_TARGET variable set")
    81 		else()
    80         else()
    82 			set(current_macosx_version ${minimum_macosx_version})
    81             set(current_macosx_version ${minimum_macosx_version})
    83 		endif()
    82         endif()
    84 	endif()
    83     endif()
    85 
    84 
    86 	#if nothing is set, we deploy only for the current system
    85     #if nothing is set, we deploy only for the current system
    87 	if(NOT minimum_macosx_version)
    86     if(NOT minimum_macosx_version)
    88 		set(minimum_macosx_version ${current_macosx_version})
    87         set(minimum_macosx_version ${current_macosx_version})
    89 	endif()
    88     endif()
    90 
    89 
    91 	#lower systems don't have enough processing power anyways
    90     #lower systems don't have enough processing power anyways
    92 	if (minimum_macosx_version LESS "10.4")
    91     if (minimum_macosx_version LESS "10.4")
    93 		message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
    92         message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
    94 	endif()
    93     endif()
    95 
    94 
    96 	#workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
    95     #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
    97 	if(current_macosx_version MATCHES "10.4")
    96     if(current_macosx_version MATCHES "10.4")
    98 		find_package(SDL_mixer REQUIRED)
    97         find_package(SDL_mixer REQUIRED)
    99 		set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
    98         set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
   100 		set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
    99         set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
   101 		set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags})
   100         set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags})
   102 		set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS})
   101         set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS})
   103 	endif()
   102     endif()
   104 
   103 
   105 	#CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
   104     #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
   106 	if(NOT CMAKE_OSX_ARCHITECTURES)
   105     if(NOT CMAKE_OSX_ARCHITECTURES)
   107 		if(current_macosx_version LESS "10.6")
   106         if(current_macosx_version LESS "10.6")
   108 			if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
   107             if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
   109 				set(CMAKE_OSX_ARCHITECTURES "ppc7400")
   108                 set(CMAKE_OSX_ARCHITECTURES "ppc7400")
   110 			else()
   109             else()
   111 				set(CMAKE_OSX_ARCHITECTURES "i386")
   110                 set(CMAKE_OSX_ARCHITECTURES "i386")
   112 			endif()
   111             endif()
   113 		else()
   112         else()
   114 			set(CMAKE_OSX_ARCHITECTURES "x86_64")
   113             set(CMAKE_OSX_ARCHITECTURES "x86_64")
   115 		endif()
   114         endif()
   116 	endif()
   115     endif()
   117 
   116 
   118 	#CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
   117     #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
   119 	#we need to provide the correct one when host and target differ
   118     #we need to provide the correct one when host and target differ
   120 	if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version})
   119     if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version})
   121 		if(minimum_macosx_version MATCHES "10.4")
   120         if(minimum_macosx_version MATCHES "10.4")
   122 			set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
   121             set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
   123 			set(CMAKE_C_COMPILER "gcc-4.0")
   122             set(CMAKE_C_COMPILER "gcc-4.0")
   124 			set(CMAKE_CXX_COMPILER "g++-4.0")
   123             set(CMAKE_CXX_COMPILER "g++-4.0")
   125 		else()
   124         else()
   126 			string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
   125             string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
   127 			set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/")
   126             set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/")
   128 		endif()
   127         endif()
   129 	endif()
   128     endif()
   130 
   129 
   131 	#add user framework directory, other paths can be passed via FPFLAGS
   130     #add user framework directory, other paths can be passed via FPFLAGS
   132 	set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags})
   131     set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags})
   133 	#set deployment target
   132     #set deployment target
   134 	set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
   133     set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
   135 
   134 
   136 	message(STATUS "Build system: Mac OS X ${current_macosx_version} with GCC:${CMAKE_C_COMPILER}")
   135     message(STATUS "Build system: Mac OS X ${current_macosx_version} with GCC:${CMAKE_C_COMPILER}")
   137 	message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s):${CMAKE_OSX_ARCHITECTURES}")
   136     message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s):${CMAKE_OSX_ARCHITECTURES}")
   138 endif(APPLE)
   137 endif(APPLE)
   139 
   138 
   140 
   139 
   141 #build Debug only when explicitally set
   140 #build Debug only when explicitally set
   142 if (NOT CMAKE_BUILD_TYPE)
   141 if (NOT CMAKE_BUILD_TYPE)
   143 	set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)
   142     set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: Debug Release." FORCE)
   144 endif (NOT CMAKE_BUILD_TYPE)
   143 endif (NOT CMAKE_BUILD_TYPE)
   145 
   144 
   146 if(CMAKE_BUILD_TYPE MATCHES DEBUG OR CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "debug")
   145 if(CMAKE_BUILD_TYPE MATCHES DEBUG OR CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "debug")
   147 	message(STATUS "Building Debug")
   146     message(STATUS "Building Debug")
   148 	set(Optz false)
   147     set(Optz false)
   149 else()
   148 else()
   150 	message(STATUS "Building Release")
   149     message(STATUS "Building Release")
   151 	set(Optz true)
   150     set(Optz true)
   152 endif()
   151 endif()
   153 
   152 
   154 
   153 
   155 #set default flags values for all projects
   154 #set default flags values for all projects
   156 set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
   155 set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
   159 set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
   158 set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
   160 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
   159 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
   161 set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
   160 set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
   162 
   161 
   163 separate_arguments(fpflags_full UNIX_COMMAND ${FPFLAGS})
   162 separate_arguments(fpflags_full UNIX_COMMAND ${FPFLAGS})
   164 set(pascal_flags ${fpflags_full} "-B" "-FE../bin" "-Cs2000000" "-vewn" ${pascal_flags})
   163 set(pascal_flags ${fpflags_full} "-B" "-FE../bin" "-Cs2000000" "-vewn" "-dDEBUGFILE" ${pascal_flags})
   165 separate_arguments(ghflags_full UNIX_COMMAND ${GHFLAGS})
   164 separate_arguments(ghflags_full UNIX_COMMAND ${GHFLAGS})
   166 set(haskell_flags "-O2" ${haskell_flags} ${ghflags_full})
   165 set(haskell_flags "-O2" ${haskell_flags} ${ghflags_full})
   167 
   166 
   168 if(Optz)
   167 if(Optz)
   169 #	set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
   168 #    set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
   170 	set(pascal_flags "-Os" "-Ooregvar" "-Xs" "-Si" ${pascal_flags})
   169     set(pascal_flags "-Os" "-Ooregvar" "-Xs" "-Si" ${pascal_flags})
   171 	set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
   170     set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
   172 else(Optz)
   171 else(Optz)
   173 	set(pascal_flags "-O-" "-g" "-gl" "-gv" "-Ct" "-dDEBUGFILE" ${pascal_flags})
   172     set(pascal_flags "-O-" "-g" "-gl" "-gv" "-Ct" ${pascal_flags})
   174 	set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
   173     set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
   175 endif(Optz)
   174 endif(Optz)
   176 
   175 
   177 
   176 
   178 if(DEFINED DATA_INSTALL_DIR)
   177 if(DEFINED DATA_INSTALL_DIR)
   179 	set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/)
   178     set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/)
   180 else()
   179 else()
   181 	set(SHAREPATH share/hedgewars/)
   180     set(SHAREPATH share/hedgewars/)
   182 endif()
   181 endif()
   183 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
   182 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
   184 
   183 
   185 
   184 
   186 if(WITH_SERVER)
   185 if(NOT NOSERVER)
   187 	if(GHC)
   186     if(GHC)
   188 		set(ghc_executable ${GHC})
   187         set(ghc_executable ${GHC})
   189 	else()
   188     else()
   190 		find_program(ghc_executable ghc)
   189         find_program(ghc_executable ghc)
   191 	endif()
   190     endif()
   192 
   191 
   193 	if(ghc_executable)
   192     if(ghc_executable)
   194 		set(HAVE_NETSERVER true)
   193         set(HAVE_NETSERVER true)
   195 		add_subdirectory(gameServer)
   194         add_subdirectory(gameServer)
   196 	else()
   195     else()
   197 		message(STATUS "No GHC executable found, server will *not* be built")
   196         message(STATUS "No GHC executable found, server will not be built")
   198 		set(HAVE_NETSERVER false)
   197         set(HAVE_NETSERVER false)
   199 	endif()
   198     endif()
   200 else(WITH_SERVER)
   199 else()
   201 	set(HAVE_NETSERVER false)
   200     message(STATUS "Server will not be built per user request")
   202 endif(WITH_SERVER)
   201     set(HAVE_NETSERVER false)
       
   202 endif()
   203 
   203 
   204 find_package(Lua)
   204 find_package(Lua)
   205 if(NOT ${LUA_FOUND})
   205 if(LUA_FOUND)
   206         message(STATUS "Lua library not found, building bundled dependency")
   206     message(STATUS "Lua library is present on your system (${LUA_DEFAULT})")
   207 	add_subdirectory(misc/liblua)
   207 else()
   208 	#link with liblua.a (which requires system readline)
   208     message(STATUS "Lua library not found, building bundled dependency")
   209 	set(pascal_flags "-k${CMAKE_BINARY_DIR}/bin/liblua.a" "-k-lreadline" ${pascal_flags})
   209     add_subdirectory(misc/liblua)
   210 endif()
   210     #linking with liblua.a requires system readline -- this works everywhere, right?
       
   211     if(WIN32)
       
   212         set(pascal_flags "-k${CMAKE_BINARY_DIR}/bin/liblua.dll.a" "-k-lreadline" ${pascal_flags})
       
   213     else()
       
   214         set(pascal_flags "-k${CMAKE_BINARY_DIR}/bin/liblua.a" "-k-lreadline" ${pascal_flags})
       
   215     endif()
       
   216 endif()
       
   217 
   211 add_subdirectory(hedgewars)
   218 add_subdirectory(hedgewars)
       
   219 
   212 
   220 
   213 #run cmake -DANDROID=1 to enable this
   221 #run cmake -DANDROID=1 to enable this
   214 if(ANDROID)
   222 if(ANDROID)
   215 	add_subdirectory(project_files/Android-build)
   223     add_subdirectory(project_files/Android-build)
   216 endif()
   224 endif()
       
   225 
   217 
   226 
   218 if(NOT (BUILD_ENGINE_LIBRARY OR ANDROID))
   227 if(NOT (BUILD_ENGINE_LIBRARY OR ANDROID))
   219 	add_subdirectory(bin)
   228     add_subdirectory(bin)
   220 	add_subdirectory(misc/quazip)
   229     add_subdirectory(misc/quazip)
   221 	add_subdirectory(QTfrontend)
   230     add_subdirectory(QTfrontend)
   222 	add_subdirectory(share)
   231     add_subdirectory(share)
   223 	add_subdirectory(tools)
   232     add_subdirectory(tools)
   224 endif()
   233 endif()
   225 
   234 
   226 
   235 
   227 # CPack variables
   236 # CPack variables
   228 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
   237 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
   233 set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "hedgewars")
   242 set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "hedgewars")
   234 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
   243 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
   235 set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${HEDGEWARS_VERSION}")
   244 set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${HEDGEWARS_VERSION}")
   236 
   245 
   237 if(WIN32 AND NOT UNIX)
   246 if(WIN32 AND NOT UNIX)
   238 	set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
   247     set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
   239 	set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
   248     set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
   240 	set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
   249     set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
   241 	set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
   250     set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
   242 	set(CPACK_NSIS_MODIFY_PATH OFF)
   251     set(CPACK_NSIS_MODIFY_PATH OFF)
   243 	set(CPACK_GENERATOR "ZIP;NSIS")
   252     set(CPACK_GENERATOR "ZIP;NSIS")
   244 	set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
   253     set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
   245 else(WIN32 AND NOT UNIX)
   254 else(WIN32 AND NOT UNIX)
   246 	set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine")
   255     set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine")
   247 endif(WIN32 AND NOT UNIX)
   256 endif(WIN32 AND NOT UNIX)
   248 
   257 
   249 set(CPACK_SOURCE_IGNORE_FILES
   258 set(CPACK_SOURCE_IGNORE_FILES
   250 	"~"
   259     "~"
   251 	"\\\\.hg"
   260     "\\\\.hg"
   252 	"\\\\.svn"
   261     "\\\\.svn"
   253 	"\\\\.exe$"
   262     "\\\\.exe$"
   254 	"\\\\.a$"
   263     "\\\\.a$"
   255 	"\\\\.dll$"
   264     "\\\\.dll$"
   256 	"\\\\.xcf$"
   265     "\\\\.xcf$"
   257 	"\\\\.cxx$"
   266     "\\\\.cxx$"
   258 	"\\\\.db$"
   267     "\\\\.db$"
   259 	"\\\\.dof$"
   268     "\\\\.dof$"
   260 	"\\\\.layout$"
   269     "\\\\.layout$"
   261 	"\\\\.zip$"
   270     "\\\\.zip$"
   262 	"\\\\.gz$"
   271     "\\\\.gz$"
   263 	"\\\\.bz2$"
   272     "\\\\.bz2$"
   264 	"\\\\.tmp$"
   273     "\\\\.tmp$"
   265 	"\\\\.core$"
   274     "\\\\.core$"
   266 	"\\\\.sh$"
   275     "\\\\.sh$"
   267 	"\\\\.sifz$"
   276     "\\\\.sifz$"
   268 	"\\\\.svg$"
   277     "\\\\.svg$"
   269 	"\\\\.svgz$"
   278     "\\\\.svgz$"
   270 	"\\\\.ppu$"
   279     "\\\\.ppu$"
   271 	"\\\\.psd$"
   280     "\\\\.psd$"
   272 	"\\\\.o$"
   281     "\\\\.o$"
   273 	"Makefile"
   282     "Makefile"
   274 	"Doxyfile"
   283     "Doxyfile"
   275 	"CMakeFiles"
   284     "CMakeFiles"
   276 	"debug"
   285     "debug"
   277 	"release$"
   286     "release$"
   278 	"Debug$"
   287     "Debug$"
   279 	"Release$"
   288     "Release$"
   280 	"proto\\\\.inc$"
   289     "proto\\\\.inc$"
   281 	"hwconsts\\\\.cpp$"
   290     "hwconsts\\\\.cpp$"
   282 	"playlist\\\\.inc$"
   291     "playlist\\\\.inc$"
   283 	"CPack"
   292     "CPack"
   284 	"cmake_install\\\\.cmake$"
   293     "cmake_install\\\\.cmake$"
   285 	"config\\\\.inc$"
   294     "config\\\\.inc$"
   286 	"hwengine\\\\.desktop$"
   295     "hwengine\\\\.desktop$"
   287 	"CMakeCache\\\\.txt$"
   296     "CMakeCache\\\\.txt$"
   288 #	"^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
   297 #    "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
   289 #	"^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype"
   298 #    "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype"
   290 	"^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua"
   299     "^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua"
   291 #	"^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor"
   300 #    "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor"
   292 	"^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/"
   301     "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/"
   293 	"^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]"
   302     "^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]"
   294 	"^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates"
   303     "^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates"
   295 	"^${CMAKE_CURRENT_SOURCE_DIR}/doc"
   304     "^${CMAKE_CURRENT_SOURCE_DIR}/doc"
   296 	"^${CMAKE_CURRENT_SOURCE_DIR}/templates"
   305     "^${CMAKE_CURRENT_SOURCE_DIR}/templates"
   297 	"^${CMAKE_CURRENT_SOURCE_DIR}/Graphics"
   306     "^${CMAKE_CURRENT_SOURCE_DIR}/Graphics"
   298 	"^${CMAKE_CURRENT_SOURCE_DIR}/realtest"
   307     "^${CMAKE_CURRENT_SOURCE_DIR}/realtest"
   299 	"^${CMAKE_CURRENT_SOURCE_DIR}/tmp"
   308     "^${CMAKE_CURRENT_SOURCE_DIR}/tmp"
   300 	"^${CMAKE_CURRENT_SOURCE_DIR}/utils"
   309     "^${CMAKE_CURRENT_SOURCE_DIR}/utils"
   301 	"^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test"
   310     "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test"
   302 	"^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal"
   311     "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal"
   303 	"^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt"
   312     "^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt"
   304 	"^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
   313     "^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
   305 	"^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
   314     "^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
   306 )
   315 )
   307 
   316 
   308 include(CPack)
   317 include(CPack)
   309 
   318