158 #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2) |
158 #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2) |
159 if(current_macosx_version VERSION_EQUAL "10.4") |
159 if(current_macosx_version VERSION_EQUAL "10.4") |
160 find_package(SDL_mixer REQUIRED) |
160 find_package(SDL_mixer REQUIRED) |
161 set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg") |
161 set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg") |
162 set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod") |
162 set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod") |
163 set(CMAKE_C_FLAGS "${DYLIB_SMPEG} ${DYLIB_MIKMOD}") |
163 add_flag_append(CMAKE_C_FLAGS "${DYLIB_SMPEG} ${DYLIB_MIKMOD}") |
164 add_flag_append(CMAKE_Pascal_FLAGS "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}") |
164 add_flag_append(CMAKE_Pascal_FLAGS "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}") |
165 endif() |
165 endif() |
166 |
166 |
167 #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking |
167 #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking |
168 if(NOT CMAKE_OSX_ARCHITECTURES) |
168 if(NOT CMAKE_OSX_ARCHITECTURES) |
207 endif (CMAKE_BUILD_TYPE) |
207 endif (CMAKE_BUILD_TYPE) |
208 |
208 |
209 |
209 |
210 #set default flags values for all projects (unless MINIMAL_CFLAGS is true) |
210 #set default flags values for all projects (unless MINIMAL_CFLAGS is true) |
211 if(NOT ${MINIMAL_CFLAGS}) |
211 if(NOT ${MINIMAL_CFLAGS}) |
212 set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}") |
212 add_flag_append(CMAKE_C_FLAGS "-pipe") |
213 set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}") |
213 add_flag_append(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer") |
214 set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}") |
214 add_flag_append(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG") |
215 set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) |
215 add_flag_append(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) |
216 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) |
216 add_flag_append(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) |
217 set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
217 add_flag_append(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
218 else() |
218 else() |
219 #CMake adds a lot of additional configuration flags, so let's clear them up |
219 #CMake adds a lot of additional configuration flags, so let's clear them up |
220 set(CMAKE_C_FLAGS_RELEASE "") |
220 set(CMAKE_C_FLAGS_RELEASE "") |
221 set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG") |
221 set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG") |
222 set(CMAKE_CXX_FLAGS_RELEASE "") |
222 set(CMAKE_CXX_FLAGS_RELEASE "") |
228 set(CMAKE_REQUIRED_FLAGS "-Wl,-z -Wl,noexecstack") |
228 set(CMAKE_REQUIRED_FLAGS "-Wl,-z -Wl,noexecstack") |
229 check_c_compiler_flag("" HAVE_NOEXECSTACK) #empty because we are testing a linker flag |
229 check_c_compiler_flag("" HAVE_NOEXECSTACK) #empty because we are testing a linker flag |
230 if(HAVE_NOEXECSTACK) |
230 if(HAVE_NOEXECSTACK) |
231 add_flag_append(CMAKE_Pascal_FLAGS "-k-z -knoexecstack") |
231 add_flag_append(CMAKE_Pascal_FLAGS "-k-z -knoexecstack") |
232 if(NOT ${MINIMAL_CFLAGS}) |
232 if(NOT ${MINIMAL_CFLAGS}) |
233 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}") |
233 add_flag_append(CMAKE_C_FLAGS ${CMAKE_REQUIRED_FLAGS}) |
234 endif() |
234 endif() |
235 endif() |
235 endif() |
236 unset(CMAKE_REQUIRED_FLAGS) |
236 unset(CMAKE_REQUIRED_FLAGS) |
237 |
237 |
238 #parse additional parameters |
238 #parse additional parameters |