aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/FindLibAttica.cmake39
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)
-