summaryrefslogtreecommitdiffstats
path: root/Modules/FindSDL_net.cmake
diff options
context:
space:
mode:
authorBenjamin Eikel <cmake@eikel.org>2012-09-01 12:10:59 (GMT)
committerBrad King <brad.king@kitware.com>2012-09-25 17:51:06 (GMT)
commita5796112cb89ea90e1f906aba3e2082c6db435bc (patch)
treeb1c88a08192509d1fa6cb22d476ea3b49dde044b /Modules/FindSDL_net.cmake
parent80a95e185e026d77019056b59e81102df9056dea (diff)
downloadCMake-a5796112cb89ea90e1f906aba3e2082c6db435bc.zip
CMake-a5796112cb89ea90e1f906aba3e2082c6db435bc.tar.gz
CMake-a5796112cb89ea90e1f906aba3e2082c6db435bc.tar.bz2
FindSDL: Add version support for FindSDL_net
Diffstat (limited to 'Modules/FindSDL_net.cmake')
-rw-r--r--Modules/FindSDL_net.cmake20
1 files changed, 19 insertions, 1 deletions
diff --git a/Modules/FindSDL_net.cmake b/Modules/FindSDL_net.cmake
index 7e90e90..39a2f68 100644
--- a/Modules/FindSDL_net.cmake
+++ b/Modules/FindSDL_net.cmake
@@ -3,6 +3,7 @@
# SDLNET_LIBRARY, the name of the library to link against
# SDLNET_FOUND, if false, do not try to link against
# SDLNET_INCLUDE_DIR, where to find the headers
+# SDLNET_VERSION_STRING - human-readable string containing the version of SDL_net
#
# $SDLDIR is an environment variable that would
# correspond to the ./configure --prefix=$SDLDIR
@@ -57,7 +58,24 @@ find_library(SDLNET_LIBRARY
/opt
)
+if(SDLNET_INCLUDE_DIR AND EXISTS "${SDLNET_INCLUDE_DIR}/SDL_net.h")
+ file(STRINGS "${SDLNET_INCLUDE_DIR}/SDL_net.h" SDLNET_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_NET_MAJOR_VERSION[ \t]+[0-9]+$")
+ file(STRINGS "${SDLNET_INCLUDE_DIR}/SDL_net.h" SDLNET_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_NET_MINOR_VERSION[ \t]+[0-9]+$")
+ file(STRINGS "${SDLNET_INCLUDE_DIR}/SDL_net.h" SDLNET_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_NET_PATCHLEVEL[ \t]+[0-9]+$")
+ string(REGEX REPLACE "^#define[ \t]+SDL_NET_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDLNET_VERSION_MAJOR "${SDLNET_VERSION_MAJOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_NET_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDLNET_VERSION_MINOR "${SDLNET_VERSION_MINOR_LINE}")
+ string(REGEX REPLACE "^#define[ \t]+SDL_NET_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDLNET_VERSION_PATCH "${SDLNET_VERSION_PATCH_LINE}")
+ set(SDLNET_VERSION_STRING ${SDLNET_VERSION_MAJOR}.${SDLNET_VERSION_MINOR}.${SDLNET_VERSION_PATCH})
+ unset(SDLNET_VERSION_MAJOR_LINE)
+ unset(SDLNET_VERSION_MINOR_LINE)
+ unset(SDLNET_VERSION_PATCH_LINE)
+ unset(SDLNET_VERSION_MAJOR)
+ unset(SDLNET_VERSION_MINOR)
+ unset(SDLNET_VERSION_PATCH)
+endif()
+
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDLNET
- REQUIRED_VARS SDLNET_LIBRARY SDLNET_INCLUDE_DIR)
+ REQUIRED_VARS SDLNET_LIBRARY SDLNET_INCLUDE_DIR
+ VERSION_VAR SDLNET_VERSION_STRING)