summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBenjamin Eikel <cmake@eikel.org>2012-09-04 09:40:06 (GMT)
committerBrad King <brad.king@kitware.com>2012-09-25 17:51:14 (GMT)
commit34e1a2ae5680b9dad24b153a5ed36c813ae946e6 (patch)
tree1711f6f1c2922aacc033ae5a683da3d31fa0c166 /Modules
parenta5796112cb89ea90e1f906aba3e2082c6db435bc (diff)
downloadCMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.zip
CMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.tar.gz
CMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.tar.bz2
FindSDL: Version support for FindSDL_image
Diffstat (limited to 'Modules')
-rw-r--r--Modules/FindSDL_image.cmake20
1 files changed, 19 insertions, 1 deletions
diff --git a/Modules/FindSDL_image.cmake b/Modules/FindSDL_image.cmake
index 8c9e891..ae2bc69 100644
--- a/Modules/FindSDL_image.cmake
+++ b/Modules/FindSDL_image.cmake
@@ -3,6 +3,7 @@
# SDLIMAGE_LIBRARY, the name of the library to link against
# SDLIMAGE_FOUND, if false, do not try to link to SDL
# SDLIMAGE_INCLUDE_DIR, where to find SDL/SDL.h
+# SDLIMAGE_VERSION_STRING - human-readable string containing the version of SDL_image
#
# $SDLDIR is an environment variable that would
# correspond to the ./configure --prefix=$SDLDIR
@@ -58,7 +59,24 @@ find_library(SDLIMAGE_LIBRARY
/opt
)
+if(SDLIMAGE_INCLUDE_DIR AND EXISTS "${SDLIMAGE_INCLUDE_DIR}/SDL_image.h")
+ file(STRINGS "${SDLIMAGE_INCLUDE_DIR}/SDL_image.h" SDLIMAGE_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+[0-9]+$")
+ file(STRINGS "${SDLIMAGE_INCLUDE_DIR}/SDL_image.h" SDLIMAGE_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+[0-9]+$")
+ file(STRINGS "${SDLIMAGE_INCLUDE_DIR}/SDL_image.h" SDLIMAGE_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+[0-9]+$")
+ string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDLIMAGE_VERSION_MAJOR "${SDLIMAGE_VERSION_MAJOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDLIMAGE_VERSION_MINOR "${SDLIMAGE_VERSION_MINOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_IMAGE_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDLIMAGE_VERSION_PATCH "${SDLIMAGE_VERSION_PATCH_LINE}")
+ set(SDLIMAGE_VERSION_STRING ${SDLIMAGE_VERSION_MAJOR}.${SDLIMAGE_VERSION_MINOR}.${SDLIMAGE_VERSION_PATCH})
+ unset(SDLIMAGE_VERSION_MAJOR_LINE)
+ unset(SDLIMAGE_VERSION_MINOR_LINE)
+ unset(SDLIMAGE_VERSION_PATCH_LINE)
+ unset(SDLIMAGE_VERSION_MAJOR)
+ unset(SDLIMAGE_VERSION_MINOR)
+ unset(SDLIMAGE_VERSION_PATCH)
+endif()
+
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDLIMAGE
- REQUIRED_VARS SDLIMAGE_LIBRARY SDLIMAGE_INCLUDE_DIR)
+ REQUIRED_VARS SDLIMAGE_LIBRARY SDLIMAGE_INCLUDE_DIR
+ VERSION_VAR SDLIMAGE_VERSION_STRING)