allows for building hedgewars with SDL-1.3
authorkoda
Thu, 17 Mar 2011 23:53:33 +0100
changeset 5019 e38d1720a0ff
parent 5018 cede79695460
child 5020 14b2915a1404
allows for building hedgewars with SDL-1.3 also reordered other sdl~version dependent macros into a proper cmake module file
QTfrontend/CMakeLists.txt
cmake_modules/FindSDL_Extras.cmake
hedgewars/CMakeLists.txt
--- a/QTfrontend/CMakeLists.txt	Thu Mar 17 22:35:46 2011 +0100
+++ b/QTfrontend/CMakeLists.txt	Thu Mar 17 23:53:33 2011 +0100
@@ -12,9 +12,6 @@
 find_package(Qt4 REQUIRED)
 include(${QT_USE_FILE})
 
-#find_package(QCA2 REQUIRED)
-#include_directories(${QCA2_INCLUDE_DIR})
-
 # Configure for SDL
 find_package(SDL REQUIRED)
 find_package(SDL_mixer REQUIRED)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmake_modules/FindSDL_Extras.cmake	Thu Mar 17 23:53:33 2011 +0100
@@ -0,0 +1,53 @@
+#if the headers are not installed, the newer apis won't be activated
+
+#find which version of SDL we are building against
+find_file(sdl_h SDL_version.h ${SDL_INCLUDE_DIR})
+if(sdl_h)
+    file(STRINGS ${sdl_h} sdl_majorversion_tmp REGEX "SDL_MAJOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdl_h} sdl_minorversion_tmp REGEX "SDL_MINOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdl_h} sdl_patchversion_tmp REGEX "SDL_PATCHLEVEL[\t' ']+[0-9]+")
+    string(REGEX MATCH ".([0-9]+)" sdl_majorversion "${sdl_majorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdl_minorversion "${sdl_minorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdl_patchversion "${sdl_patchversion_tmp}")
+    math(EXPR sdl_version "${sdl_majorversion}*10000 + ${sdl_minorversion}*100 + ${sdl_patchversion}")
+
+    if(NOT (sdl_version LESS "010300"))
+        message(STATUS "Enabling SDL-1.3+ calls")
+        set(pascal_compiler_flags_cmn "-dSDL13" ${pascal_compiler_flags_cmn})
+    endif()
+endif()
+
+#find which version of SDL_mixer we have (for Mix_Init)
+find_file(sdlmixer_h SDL_mixer.h ${SDLMIXER_INCLUDE_DIR})
+if(sdlmixer_h)
+    file(STRINGS ${sdlmixer_h} sdlmixer_majorversion_tmp REGEX "SDL_MIXER_MAJOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdlmixer_h} sdlmixer_minorversion_tmp REGEX "SDL_MIXER_MINOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdlmixer_h} sdlmixer_patchversion_tmp REGEX "SDL_MIXER_PATCHLEVEL[\t' ']+[0-9]+")
+    string(REGEX MATCH ".([0-9]+)" sdlmixer_majorversion "${sdlmixer_majorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdlmixer_minorversion "${sdlmixer_minorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdlmixer_patchversion "${sdlmixer_patchversion_tmp}")
+    math(EXPR sdlmixer_version "${sdlmixer_majorversion}*10000 + ${sdlmixer_minorversion}*100 + ${sdlmixer_patchversion}")
+
+    if(sdlmixer_version GREATER "10209")
+        message(STATUS "Enabling enhanced SDL_Mixer calls")
+        set(pascal_compiler_flags_cmn "-dSDL_MIXER_NEWER" ${pascal_compiler_flags_cmn})
+    endif()
+endif()
+
+#find which version of SDL_image we have (for IMG_Init)
+find_file(sdlimage_h SDL_image.h ${SDLIMAGE_INCLUDE_DIR})
+if(sdlimage_h)
+    file(STRINGS ${sdlimage_h} sdlimage_majorversion_tmp REGEX "SDL_IMAGE_MAJOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdlimage_h} sdlimage_minorversion_tmp REGEX "SDL_IMAGE_MINOR_VERSION[\t' ']+[0-9]+")
+    file(STRINGS ${sdlimage_h} sdlimage_patchversion_tmp REGEX "SDL_IMAGE_PATCHLEVEL[\t' ']+[0-9]+")
+    string(REGEX MATCH ".([0-9]+)" sdlimage_majorversion "${sdlimage_majorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdlimage_minorversion "${sdlimage_minorversion_tmp}")
+    string(REGEX MATCH ".([0-9]+)" sdlimage_patchversion "${sdlimage_patchversion_tmp}")
+    math(EXPR sdlimage_version "${sdlimage_majorversion}*10000 + ${sdlimage_minorversion}*100 + ${sdlimage_patchversion}")
+
+    if(sdlimage_version GREATER "010207")
+        message(STATUS "Enabling enhanced SDL_Image calls")
+        set(pascal_compiler_flags_cmn "-dSDL_IMAGE_NEWER" ${pascal_compiler_flags_cmn})
+    endif()
+endif()
+
--- a/hedgewars/CMakeLists.txt	Thu Mar 17 22:35:46 2011 +0100
+++ b/hedgewars/CMakeLists.txt	Thu Mar 17 23:53:33 2011 +0100
@@ -5,31 +5,9 @@
 find_package(SDL_mixer)
 find_package(Lua)
 
-configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
-
-#find which version of SDL_image and SDL_mixer we have (for IMG_Init and Mix_Init)
-#if the headers are not installed, the newer apis won't be activated
-find_file(sdlmixer_h SDL_mixer.h ${SDLMIXER_INCLUDE_DIR})
-if(sdlmixer_h)
-    file(STRINGS ${sdlmixer_h} sdlmixer_version_tmp REGEX "SDL_MIXER_PATCHLEVEL[\t' ']+[0-9]+")
-    string(REGEX MATCH ".([0-9]+)" sdlmixer_version "${sdlmixer_version_tmp}")
+include(${CMAKE_MODULE_PATH}/FindSDL_Extras.cmake)
 
-    if(sdlmixer_version GREATER 9)
-        message(STATUS "Enabling enhanced SDL_Mixer calls")
-        set(pascal_compiler_flags_cmn "-dSDL_MIXER_NEWER" ${pascal_compiler_flags_cmn})
-    endif()
-endif()
-
-find_file(sdlimage_h SDL_image.h ${SDLIMAGE_INCLUDE_DIR})
-if(sdlimage_h)
-    file(STRINGS ${sdlimage_h} sdlimage_version_tmp REGEX "SDL_IMAGE_PATCHLEVEL[\t' ']+[0-9]+")
-    string(REGEX MATCH ".([0-9]+)" sdlimage_version "${sdlimage_version_tmp}")
-
-    if(sdlimage_version GREATER 7)
-        message(STATUS "Enabling enhanced SDL_Image calls")
-        set(pascal_compiler_flags_cmn "-dSDL_IMAGE_NEWER" ${pascal_compiler_flags_cmn})
-    endif()
-endif()
+configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
 
 #SOURCE AND PROGRAMS SECTION
 set(fpc_tryexe fpc)
@@ -154,8 +132,8 @@
 
     if(fpc_ver LESS "020200")
         message(FATAL_ERROR "Minimum required version of FreePascal is 2.2.0")
-    elseif(APPLE AND x86_64_build AND fpc_ver LESS "020400")
-        message(FATAL_ERROR "Minimum required version of FreePascal is 2.4.0 for building 64 bit applications!")
+    elseif(APPLE AND x86_64_build AND (fpc_ver LESS "020400"))
+        message(FATAL_ERROR "Minimum required version of FreePascal is 2.4.0 for building 64 bit applications on Mac OS X!")
     endif()
 else()
     message(FATAL_ERROR "No Pascal compiler found!")