35 |
35 |
36 option(WEBGL "Enable WebGL build (implies NOPASCAL) [default: off]" OFF) |
36 option(WEBGL "Enable WebGL build (implies NOPASCAL) [default: off]" OFF) |
37 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL}) |
37 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL}) |
38 option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF) |
38 option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF) |
39 |
39 |
40 set(FPFLAGS "" CACHE STRING "Additional Freepascal flags") |
|
41 set(GHFLAGS "" CACHE STRING "Additional Haskell flags") |
40 set(GHFLAGS "" CACHE STRING "Additional Haskell flags") |
42 if(UNIX AND NOT APPLE) |
41 if(UNIX AND NOT APPLE) |
43 set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path") |
42 set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path") |
44 endif() |
43 endif() |
45 |
44 |
74 |
73 |
75 |
74 |
76 #perform safe check that enable/disable compilation features |
75 #perform safe check that enable/disable compilation features |
77 include(${CMAKE_MODULE_PATH}/compilerchecks.cmake) |
76 include(${CMAKE_MODULE_PATH}/compilerchecks.cmake) |
78 |
77 |
79 #set default flags values for all projects (unless MINIMAL_FLAGS is true) |
78 #set default compiler flags |
80 if(NOT ${MINIMAL_FLAGS}) |
79 add_flag_append(CMAKE_C_FLAGS "-Wall -pipe -fPIC") |
81 set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}") |
80 add_flag_append(CMAKE_C_FLAGS_RELEASE "-Os") |
82 set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}") |
81 add_flag_append(CMAKE_C_FLAGS_DEBUG "-Wextra -O0") |
83 set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g ${CMAKE_C_FLAGS_DEBUG}") |
82 add_flag_append(CMAKE_CXX_FLAGS "-Wall -pipe -fPIC") |
84 set(CMAKE_CXX_FLAGS "-pipe ${CMAKE_CXX_FLAGS}") |
83 add_flag_append(CMAKE_CXX_FLAGS_RELEASE "-Os") |
85 set(CMAKE_CXX_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_CXX_FLAGS_RELEASE}") |
84 add_flag_append(CMAKE_CXX_FLAGS_DEBUG "-Wextra -O0") |
86 set(CMAKE_CXX_FLAGS_DEBUG "-Wall -O0 -g ${CMAKE_CXX_FLAGS_DEBUG}") |
85 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000 -fPIC") |
87 else() |
86 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-O- -gv") |
88 #CMake adds a lot of additional configuration flags, so let's clear them up |
87 add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Os -Xs") |
89 set(CMAKE_C_FLAGS_RELEASE "") |
88 |
90 set(CMAKE_C_FLAGS_DEBUG "-Wall") |
89 #CMake adds a lot of additional configuration flags, so let's clear them up |
91 set(CMAKE_CXX_FLAGS_RELEASE "") |
90 if(${MINIMAL_FLAGS}) |
92 set(CMAKE_CXX_FLAGS_DEBUG "-Wall") |
91 unset(CMAKE_C_FLAGS_RELEASE) |
|
92 unset(CMAKE_C_FLAGS_DEBUG) |
|
93 unset(CMAKE_CXX_FLAGS_RELEASE) |
|
94 unset(CMAKE_CXX_FLAGS_DEBUG) |
93 endif() |
95 endif() |
94 |
96 |
95 |
97 |
96 #parse additional parameters |
98 #parse additional parameters |
97 if(FPFLAGS) |
|
98 add_flag_prepend(CMAKE_Pascal_FLAGS ${FPFLAGS}) |
|
99 endif() |
|
100 if(GHFLAGS) |
99 if(GHFLAGS) |
101 if(${allow_parse_args}) |
100 if(${CMAKE_VERSION} VERSION_GREATER 2.6) |
102 separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS}) |
101 separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS}) |
103 else() |
102 else() |
104 message("*** FPFLAGS and GHFLAGS are available only when using CMake >= 2.8 ***") |
103 message("*** GHFLAGS are available only when using CMake >= 2.8 ***") |
105 endif() |
104 endif() |
106 endif() |
105 endif() |
107 |
106 |
108 |
107 list(APPEND haskell_flags ${ghflags_parsed} "-O2") |
109 list(APPEND haskell_flags ${ghflags_parsed} # user flags |
|
110 "-O2" # optimise for faster code |
|
111 ) |
|
112 |
|
113 #-vm4079,4080,4081 |
|
114 add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000") |
|
115 add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-O- -gv") |
|
116 add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Os -Xs") |
|
117 |
108 |
118 #get BUILD_TYPE and enable/disable optimisation |
109 #get BUILD_TYPE and enable/disable optimisation |
119 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration") |
110 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration") |
120 if(CMAKE_BUILD_TYPE MATCHES "DEBUG") |
111 if(CMAKE_BUILD_TYPE MATCHES "DEBUG") |
121 list(APPEND haskell_flags "-Wall" # all warnings |
112 list(APPEND haskell_flags "-Wall" # all warnings |