diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/FindLibAttica.cmake | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/modules/FindLibAttica.cmake b/modules/FindLibAttica.cmake index f7652fba..bb919da7 100644 --- a/modules/FindLibAttica.cmake +++ b/modules/FindLibAttica.cmake @@ -6,13 +6,23 @@ # LIBATTICA_LIBRARY_DIRS Paths needed for linking against Attica # LIBATTICA_INCLUDE_DIR Path needed for finding Attica include files # +# The minimum required version of LibAttica can be specified using the +# standard syntax, e.g. find_package(LibAttica 0.20) + # Copyright (c) 2009 Frederik Gladhorn <gladhorn@kde.org> # # 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) +# Support LIBATTICA_MIN_VERSION for compatibility: +IF(NOT LibAttica_FIND_VERSION) + SET(LibAttica_FIND_VERSION "${LIBATTICA_MIN_VERSION}") +ENDIF(NOT LibAttica_FIND_VERSION) + +# the minimum version of LibAttica we require +IF(NOT LibAttica_FIND_VERSION) + SET(LibAttica_FIND_VERSION "0.1.0") +ENDIF(NOT LibAttica_FIND_VERSION) + IF (NOT WIN32) # use pkg-config to get the directories and then use these values @@ -29,22 +39,15 @@ FIND_PATH(LIBATTICA_INCLUDE_DIR attica/provider.h PATH_SUFFIXES attica ) -SET(LIBATTICA_VERSION_OK TRUE) -IF(LIBATTICA_INCLUDE_DIR) +# Store the version number in the cache, so we don't have to search everytime: +IF(LIBATTICA_INCLUDE_DIR AND NOT LIBATTICA_VERSION) 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}") + STRING(REGEX REPLACE "LIBATTICA_VERSION_STRING \"(.*)\"\n" "\\1" _LIBATTICA_VERSION ${LIBATTICA_VERSION_MATCH}) ENDIF(LIBATTICA_VERSION_MATCH) -ENDIF(LIBATTICA_INCLUDE_DIR) + SET(LIBATTICA_VERSION "${_LIBATTICA_VERSION}" CACHE STRING "Version number of LibAttica" FORCE) +ENDIF(LIBATTICA_INCLUDE_DIR AND NOT LIBATTICA_VERSION) FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica @@ -54,9 +57,7 @@ FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica ) INCLUDE(FindPackageHandleStandardArgs) -# handle the QUIETLY and REQUIRED arguments and set LIBATTICA_FOUND to TRUE if -# all listed variables are TRUE -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibAttica DEFAULT_MSG LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR LIBATTICA_VERSION_OK) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibAttica REQUIRED_VARS LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR + VERSION_VAR LIBATTICA_VERSION) MARK_AS_ADVANCED(LIBATTICA_INCLUDE_DIR LIBATTICA_LIBRARIES) - |