diff options
| -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) | 
