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 |