diff options
author | Benjamin Eikel <cmake@eikel.org> | 2012-09-04 09:40:06 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-09-25 17:51:14 (GMT) |
commit | 34e1a2ae5680b9dad24b153a5ed36c813ae946e6 (patch) | |
tree | 1711f6f1c2922aacc033ae5a683da3d31fa0c166 | |
parent | a5796112cb89ea90e1f906aba3e2082c6db435bc (diff) | |
download | CMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.zip CMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.tar.gz CMake-34e1a2ae5680b9dad24b153a5ed36c813ae946e6.tar.bz2 |
FindSDL: Version support for FindSDL_image
-rw-r--r-- | Modules/FindSDL_image.cmake | 20 |
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) |