--- a/CMakeLists.txt Sat Dec 08 20:49:43 2012 -0500
+++ b/CMakeLists.txt Sun Dec 09 16:00:06 2012 +0100
@@ -105,12 +105,12 @@
endif()
#lower systems don't have enough processing power anyway
- if (minimum_macosx_version LESS "10.4")
+ if (minimum_macosx_version VERSION_LESS "10.4")
message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
endif()
#workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
- if(current_macosx_version MATCHES "10.4")
+ if(current_macosx_version VERSION_EQUAL "10.4")
find_package(SDL_mixer REQUIRED)
set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
@@ -120,7 +120,7 @@
#CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
if(NOT CMAKE_OSX_ARCHITECTURES)
- if(current_macosx_version LESS "10.6")
+ if(current_macosx_version VERSION_LESS "10.6")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
set(CMAKE_OSX_ARCHITECTURES "ppc7400")
else()
@@ -133,8 +133,8 @@
#CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
#we need to provide the correct one when host and target differ
- if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version})
- if(minimum_macosx_version MATCHES "10.4")
+ if(NOT ${minimum_macosx_version} VERSION_EQUAL ${current_macosx_version})
+ if(minimum_macosx_version VERSION_EQUAL "10.4")
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
set(CMAKE_C_COMPILER "gcc-4.0")
set(CMAKE_CXX_COMPILER "g++-4.0")
@@ -149,8 +149,10 @@
#set deployment target
set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
- message(STATUS "Build system: Mac OS X ${current_macosx_version} with C compiler: ${CMAKE_C_COMPILER}")
- message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s): ${CMAKE_OSX_ARCHITECTURES}")
+ #silly libav that always brings in VideoDecoderAcceleration, avaible only from 10.6.3
+ if(NOT NOVIDEOREC AND ${minimum_macosx_version} VERSION_LESS "10.6")
+ set(WARNING "Video recording support before OS X 10.6 is experimental")
+ endif()
endif(APPLE)
@@ -158,7 +160,7 @@
if (CMAKE_BUILD_TYPE)
string (TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
if ( NOT( (CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "DEBUG") ) )
- set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Only 'Debug' or 'Release' options are allowed." FORCE)
+ set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Choose the build type, options are: Debug Release." FORCE)
message (STATUS "Unknown build type, using default (${default_build_type})")
endif ()
else (CMAKE_BUILD_TYPE)
@@ -183,25 +185,24 @@
#parse additional parameters
if(FPFLAGS OR GHFLAGS)
- math(EXPR cmake_version "${CMAKE_MAJOR_VERSION}*10000 + ${CMAKE_MINOR_VERSION}*100 + ${CMAKE_PATCH_VERSION}")
- if(cmake_version LESS "020800")
- message(STATUS "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
+ set(cmake_version "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
+ if(cmake_version VERSION_LESS "2.8")
+ message(WARNING "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
else()
separate_arguments(fpflags_parsed UNIX_COMMAND ${FPFLAGS})
separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
endif()
endif()
-set(pascal_flags ${fpflags_parsed} "-vm4079,4080,4081" "-B" "-FE../bin" "-Cs2000000" "-vewnq" "-dDEBUGFILE" ${pascal_flags})
+set(pascal_flags ${fpflags_parsed} "-vm4079,4080,4081" "-B" "-FE${PROJECT_BINARY_DIR}/bin" "-Cs2000000" "-vewnq" "-dDEBUGFILE" ${pascal_flags})
set(haskell_flags "-O2" ${ghflags_parsed} ${haskell_flags})
#get BUILD_TYPE and enable/disable optimisation
+message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
- message(STATUS "Building Debug flavour")
set(pascal_flags "-O-" "-g" "-gl" "-gv" ${pascal_flags})
set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
else()
- message(STATUS "Building Release flavour")
# set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
set(pascal_flags "-Os" "-Xs" "-Si" ${pascal_flags})
set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
@@ -215,12 +216,13 @@
set(SHAREPATH share/hedgewars/)
endif()
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
-set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
+set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
if(WIN32)
set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/misc/winutils/")
link_directories("${EXECUTABLE_OUTPUT_PATH}" "${CMAKE_SOURCE_DIR}/misc/winutils/bin")
endif(WIN32)
+
#server discovery
if(NOT NOSERVER)
if(GHC)
--- a/QTfrontend/CMakeLists.txt Sat Dec 08 20:49:43 2012 -0500
+++ b/QTfrontend/CMakeLists.txt Sun Dec 09 16:00:06 2012 +0100
@@ -142,9 +142,14 @@
if(APPLE OR CROSSAPPLE)
- set(hwfr_src ${hwfr_src} InstallController.cpp CocoaInitializer.mm M3Panel.mm M3InstallController.m NSWorkspace_RBAdditions.m)
- set(HW_LINK_LIBS IOKit ${HW_LINK_LIBS})
-
+ find_library(iokit_framework NAMES IOKit)
+ set(HW_LINK_LIBS ${iokit_framework} ${HW_LINK_LIBS})
+ set(hwfr_src ${hwfr_src} CocoaInitializer.mm
+ InstallController.cpp
+ M3Panel.mm
+ M3InstallController.m
+ NSWorkspace_RBAdditions.m
+ )
if(NOT NOAUTOUPDATE)
find_package(Sparkle)
if(SPARKLE_FOUND)
--- a/cmake_modules/FindFFMPEG.cmake Sat Dec 08 20:49:43 2012 -0500
+++ b/cmake_modules/FindFFMPEG.cmake Sun Dec 09 16:00:06 2012 +0100
@@ -74,10 +74,6 @@
${FFMPEG_LIBAVFORMAT}
${FFMPEG_LIBAVUTIL}
)
- if (APPLE)
- set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} "bz2" "-framework CoreVideo" "-framework VideoDecodeAcceleration")
- endif(APPLE)
-
endif (FFMPEG_FOUND)
if (FFMPEG_FOUND)
--- a/hedgewars/uVideoRec.pas Sat Dec 08 20:49:43 2012 -0500
+++ b/hedgewars/uVideoRec.pas Sun Dec 09 16:00:06 2012 +0100
@@ -30,11 +30,6 @@
{$IFNDEF WIN32}
{$LINKLIB ../bin/libavwrapper.a}
{$ENDIF}
-{$IFDEF DARWIN}
- {$LINKLIB bz2}
- {$LINKFRAMEWORK CoreVideo}
- {$LINKFRAMEWORK VideoDecodeAcceleration}
-{$ENDIF}
interface
--- a/share/CMakeLists.txt Sat Dec 08 20:49:43 2012 -0500
+++ b/share/CMakeLists.txt Sun Dec 09 16:00:06 2012 +0100
@@ -9,6 +9,14 @@
set(HEDGEWARS_REVISION ${HEDGEWARS_VERSION})
endif()
+ #silly libav that always brings in VideoDecoderAcceleration, avaible only from 10.6.3
+ if(NOT NOVIDEOREC)
+ find_package(FFMPEG QUIET)
+ if(${FFMPEG_FOUND} AND ${minimum_macosx_version} VERSION_EQUAL "10.6")
+ set(minimum_macosx_version "10.6.3")
+ endif()
+ endif()
+
configure_file(${hedgewars_SOURCE_DIR}/share/Info.plist.in
${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
#path here should be Hedgewars.app/Contents/MacOS