CMakeLists.txt
changeset 2641 b08cafb86797
parent 2629 be70fd3458c0
child 2644 52b7c4776af9
equal deleted inserted replaced
2640:fa096fb04b24 2641:b08cafb86797
    10 
    10 
    11 set(CPACK_PACKAGE_VERSION_MAJOR "0")
    11 set(CPACK_PACKAGE_VERSION_MAJOR "0")
    12 set(CPACK_PACKAGE_VERSION_MINOR "9")
    12 set(CPACK_PACKAGE_VERSION_MINOR "9")
    13 set(CPACK_PACKAGE_VERSION_PATCH "13-dev")
    13 set(CPACK_PACKAGE_VERSION_PATCH "13-dev")
    14 
    14 
       
    15 #forbid in-tree building
       
    16 #IF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR})
       
    17 #	MESSAGE(STATUS "Please do an out-of-tree build:")
       
    18 #	MESSAGE(STATUS "rm CMakeCache.txt; mkdir build; cd build; cmake ..; make")
       
    19 #	MESSAGE(FATAL_ERROR "In-tree-build detected!")
       
    20 #ENDIF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR})
       
    21 
       
    22 
    15 if(APPLE)
    23 if(APPLE)
    16 	set(CMAKE_FIND_FRAMEWORK "FIRST")
    24 	set(CMAKE_FIND_FRAMEWORK "FIRST")
    17 	
    25 	
    18 	#paths for creating the bundle
    26 	#paths for creating the bundle
    19 	set(bundle_name Hedgewars.app)
    27 	set(bundle_name Hedgewars.app)
    20 	set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) 
    28 	set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) 
    21 	set(DATA_INSTALL_DIR "../Resources/")
    29 	set(DATA_INSTALL_DIR "../Resources/")
    22 	set(target_dir ".")
    30 	set(target_dir ".")
    23 	
    31 	
    24 	#build architecture / os version
    32 	#detect on which system are we
    25 	set(minimum_os $ENV{MACOSX_DEPLOYMENT_TARGET})
    33 	EXEC_PROGRAM("/usr/bin/sw_vers" OUTPUT_VARIABLE MACOSX_VERSION_TMP)
    26 	if(minimum_os MATCHES "10.4")
    34 	STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACOSX_VERSION_TMP "${MACOSX_VERSION_TMP}")
    27 		message(STATUS "Target: Mac OS X 10.4 i386/ppc")	
    35 	STRING(REGEX REPLACE "([0-9][0-9].[0-9]+).[0-9]" "\\1" current_macosx_version ${MACOSX_VERSION_TMP})
       
    36 
       
    37 	set(minimum_macosx $ENV{MACOSX_DEPLOYMENT_TARGET})
       
    38 
       
    39 	if(NOT minimum_macosx)
       
    40 		set(minimum_macosx ${current_macosx_version})
       
    41 	endif()
       
    42 
       
    43 	#create universal binaries only when it's time to bundle the application
       
    44 	IF(BUNDLE)
       
    45 		if(current_macosx_version MATCHES "10.6")
       
    46 			set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc7400")
       
    47 			set(build_64_universal TRUE)		
       
    48 		else()
       
    49 			set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400")
       
    50 		endif()
       
    51 	ENDIF()	
       
    52 
       
    53 	message(STATUS "Target system: Mac OS X ${minimum_macosx} for ${CMAKE_OSX_ARCHITECTURES}")	
       
    54 
       
    55 	if(minimum_macosx MATCHES "10.4")
    28 		set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
    56 		set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
    29 		set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400")
    57 	else()
       
    58 		set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${minimum_macosx}.sdk/")
    30 	endif()
    59 	endif()
    31 	if(minimum_os MATCHES "10.5")
    60 
    32 		message(STATUS "Target: Mac OS X 10.5 i386/ppc")
       
    33 		set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk/")
       
    34 		set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400")
       
    35 	endif()
       
    36 	if(minimum_os MATCHES "10.6")
       
    37 		message(STATUS "Target: Mac OS X 10.6 i386/ppc/x86_64")
       
    38 		set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.6.sdk/")
       
    39 		set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc7400")
       
    40 		set(build_type "universal64")
       
    41 	endif()
       
    42 	if(NOT minimum_os)
       
    43 	#use the default sysroot with default archs	
       
    44 		EXEC_PROGRAM(sw_vers OUTPUT_VARIABLE MACOSX_VERSION)
       
    45 		string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACOSX_VERSION "${MACOSX_VERSION}")
       
    46 		STRING(REGEX REPLACE "[0-9][0-9].([0-9]+).[0-9]" "\\1" MACOSX_VERSION ${MACOSX_VERSION})
       
    47 		set(minimum_os "10.${MACOSX_VERSION}")
       
    48 	endif()
       
    49 else(APPLE)
    61 else(APPLE)
    50 	set(target_dir "bin")
    62 	set(target_dir "bin")
    51 endif(APPLE)
    63 endif(APPLE)
    52 
    64 
    53 
    65 
    54 #this snippet sets "Release" mode by default
    66 #this snippet sets "Release" mode by default
       
    67 #IF (NOT CMAKE_BUILD_TYPE)
       
    68 #	SET(CMAKE_BUILD_TYPE "Release")
       
    69 #ENDIF (NOT CMAKE_BUILD_TYPE)
    55 if (NOT CMAKE_BUILD_TYPE)
    70 if (NOT CMAKE_BUILD_TYPE)
    56 	set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE)
    71 	set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE)
    57 endif (NOT CMAKE_BUILD_TYPE)
    72 endif (NOT CMAKE_BUILD_TYPE)
    58 
    73 
    59 if(CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES "Release")
    74 if(CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES "Release")
    65 	set(Optz false)
    80 	set(Optz false)
    66 endif()
    81 endif()
    67 
    82 
    68 
    83 
    69 #set default flags values for all the project
    84 #set default flags values for all the project
    70 set(CMAKE_C_FLAGS "-Wall -pipe")
    85 set(CMAKE_C_FLAGS "-pipe")
    71 set(CMAKE_C_FLAGS_RELEASE "-w -O2 -fomit-frame-pointer")
    86 set(CMAKE_C_FLAGS_RELEASE "-w -O2 -fomit-frame-pointer")
    72 set(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG")
    87 set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG")
    73 set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
    88 set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
    74 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
    89 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
    75 set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
    90 set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
    76 
    91 
    77 set(pascal_compiler_flags_cmn "-B" "-FE../bin" "-Fl../bin/" "-Cs2000000" "-vwi")
    92 set(pascal_compiler_flags_cmn "-B" "-FE../bin" "-Fl../bin/" "-Cs2000000" "-vwi")
    78 
    93 
    79 if(Optz)
    94 if(Optz)
    80 	set(pascal_compiler_flags_cmn "-O2" "-Xs" "-Nu" "-Si" ${pascal_compiler_flags_cmn})
    95 	set(pascal_compiler_flags_cmn "-O2" "-Xs" "-Si" ${pascal_compiler_flags_cmn})
    81 	set(haskell_compiler_flags_cmn "-w" "-O2")
    96 	set(haskell_compiler_flags_cmn "-w" "-O2")
    82 	if(APPLE AND NOT universal_build)
       
    83 		set(CMAKE_C_FLAGS_RELEASE "-fPIC -msse2 ${CMAKE_C_FLAGS_RELEASE}")
       
    84 		set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -msse2 ${CMAKE_CXX_FLAGS_RELEASE}")
       
    85 		set(pascal_compiler_flags_cmn "-fPIC" ${pascal_compiler_flags_cmn})
       
    86 		#-Cf7400 for ppc, -CfSSE2 for x86 (but none for x86_64)
       
    87 	endif()
       
    88 else(Optz)
    97 else(Optz)
    89 	set(pascal_compiler_flags_cmn "-O-" "-gl" "-dDEBUGFILE" "-pg" "-vv" ${pascal_compiler_flags_cmn})
    98 	set(pascal_compiler_flags_cmn "-O-" "-gl" "-dDEBUGFILE" "-pg" "-vv" ${pascal_compiler_flags_cmn})
    90 	set(haskell_compiler_flags_cmn "-Wall" "-debug" "-dcore-lint")
    99 	set(haskell_compiler_flags_cmn "-Wall" "-debug" "-dcore-lint")
    91 endif(Optz)
   100 endif(Optz)
    92 
   101