diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/FindLibAttica.cmake | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/modules/FindLibAttica.cmake b/modules/FindLibAttica.cmake index 39ae84d4..151a3bfb 100644 --- a/modules/FindLibAttica.cmake +++ b/modules/FindLibAttica.cmake @@ -10,6 +10,10 @@ # # Redistribution and use is allowed according to the terms of the BSD license. +IF (NOT LIBATTICA_MIN_VERSION) + SET(LIBATTICA_MIN_VERSION "0.1.0") +ENDIF(NOT LIBATTICA_MIN_VERSION) + IF (LIBATTICA_INCLUDE_DIR AND LIBATTICA_LIBRARIES) # in cache already SET(libattica_FIND_QUIETLY TRUE) @@ -30,6 +34,24 @@ FIND_PATH(LIBATTICA_INCLUDE_DIR attica/provider.h PATH_SUFFIXES attica ) +SET(LIBATTICA_VERSION_OK TRUE) +IF(LIBATTICA_INCLUDE_DIR) + FILE(READ ${LIBATTICA_INCLUDE_DIR}/attica/version.h LIBATTICA_VERSION_CONTENT) + STRING (REGEX MATCH "LIBATTICA_VERSION_STRING \".*\"\n" LIBATTICA_VERSION_MATCH "${LIBATTICA_VERSION_CONTENT}") + IF(LIBATTICA_VERSION_MATCH) + STRING(REGEX REPLACE "LIBATTICA_VERSION_STRING \"(.*)\"\n" "\\1" LIBATTICA_VERSION ${LIBATTICA_VERSION_MATCH}) + IF(LIBATTICA_VERSION STRLESS "${LIBATTICA_MIN_VERSION}") + SET(LIBATTICA_VERSION_OK FALSE) + IF(LibAttica_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "LibAttica version ${LIBATTICA_VERSION} is too old. Please install ${LIBATTICA_MIN_VERSION} or newer.") + ELSE(LibAttica_FIND_REQUIRED) + MESSAGE(STATUS "LibAttica version ${LIBATTICA_VERSION} is too old. Please install ${LIBATTICA_MIN_VERSION} or newer.") + ENDIF(LibAttica_FIND_REQUIRED) + ENDIF(LIBATTICA_VERSION STRLESS "${LIBATTICA_MIN_VERSION}") + ENDIF(LIBATTICA_VERSION_MATCH) +ENDIF(LIBATTICA_INCLUDE_DIR) + + FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica HINTS ${PC_LIBATTICA_LIBDIR} @@ -37,10 +59,9 @@ FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica ) INCLUDE(FindPackageHandleStandardArgs) - # handle the QUIETLY and REQUIRED arguments and set ATTICA_FOUND to TRUE if # all listed variables are TRUE -FIND_PACKAGE_HANDLE_STANDARD_ARGS(libattica DEFAULT_MSG LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(libattica DEFAULT_MSG LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR LIBATTICA_VERSION_OK) MARK_AS_ADVANCED(LIBATTICA_INCLUDE_DIR LIBATTICA_LIBRARIES) |