From 54e1a2b16853d4a395138d20e9d190208e889126 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Tue, 11 Dec 2007 20:38:08 +0000 Subject: [PATCH] optionally set a minimum required version svn path=/trunk/KDE/kdegraphics/cmake/modules/; revision=747373 --- cmake/modules/FindLIBGS.cmake | 36 +++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/cmake/modules/FindLIBGS.cmake b/cmake/modules/FindLIBGS.cmake index 0cf8ca632..e02c42c9b 100644 --- a/cmake/modules/FindLIBGS.cmake +++ b/cmake/modules/FindLIBGS.cmake @@ -11,6 +11,7 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. include(CheckLibraryExists) +include(CheckCSourceRuns) if (LIBGS_LIBRARY) # in cache already @@ -32,13 +33,44 @@ else (LIBGS_LIBRARY) endif(LIBGS_LIBRARY) set(CMAKE_LIBRARY_PATH) + if (LIBGS_MINIMUM_VERSION) + string(REPLACE "." "" mingsver "${LIBGS_MINIMUM_VERSION}") + set(CMAKE_REQUIRED_LIBRARIES "${LIBGS_LIBRARY}") +set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/spectre/libspectre") + check_c_source_runs(" +#include + +int main(int argc, char **argv) +{ + gsapi_revision_t gsrev; + + if (gsapi_revision(&gsrev, sizeof(gsrev)) != 0) + return 1; + if (gsrev.revision < ${mingsver}) + return 1; + + return 0; +} +" HAVE_LIBGS_MINIMUM_VERSION) + set(CMAKE_REQUIRED_LIBRARIES) + if (NOT HAVE_LIBGS_MINIMUM_VERSION) + set(LIBGS_FOUND FALSE) + endif (NOT HAVE_LIBGS_MINIMUM_VERSION) + endif (LIBGS_MINIMUM_VERSION) + + if (LIBGS_MINIMUM_VERSION) + set(gsLibraryMessage " (v${LIBGS_MINIMUM_VERSION})") + else (LIBGS_MINIMUM_VERSION) + set(gsLibraryMessage "") + endif (LIBGS_MINIMUM_VERSION) + if (LIBGS_FOUND) if (NOT LIBGS_FIND_QUIETLY) - message(STATUS "Found the GS library: ${LIBGS_LIBRARY}") + message(STATUS "Found the GS library${gsLibraryMessage}: ${LIBGS_LIBRARY}") endif (NOT LIBGS_FIND_QUIETLY) else (LIBGS_FOUND) if (LIBGS_FIND_REQUIRED) - message(FATAL_ERROR "Could NOT find the GS library") + message(FATAL_ERROR "Could NOT find the GS library${gsLibraryMessage}") endif (LIBGS_FIND_REQUIRED) endif (LIBGS_FOUND)