aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2010-09-26 12:00:08 +0000
committerAlexander Neundorf <neundorf@kde.org>2010-09-26 12:00:08 +0000
commit0dce2cd2eb81be663d5f97d4d0bc11b4e4abc42d (patch)
tree6603bdf3bb6f00365a22c72080310ff6724a7ec5
parent4b3081f583baeff8a8329e20149028a7fc602f27 (diff)
downloadextra-cmake-modules-0dce2cd2eb81be663d5f97d4d0bc11b4e4abc42d.tar.gz
extra-cmake-modules-0dce2cd2eb81be663d5f97d4d0bc11b4e4abc42d.tar.bz2
-improved version checking using the new syntax of Find_package_handle_standard_args()
Alex svn path=/trunk/KDE/kdelibs/; revision=1179891
-rw-r--r--modules/FindPolkitQt.cmake65
1 files changed, 26 insertions, 39 deletions
diff --git a/modules/FindPolkitQt.cmake b/modules/FindPolkitQt.cmake
index e46f286d..3f9db5a0 100644
--- a/modules/FindPolkitQt.cmake
+++ b/modules/FindPolkitQt.cmake
@@ -9,8 +9,9 @@
# POLKITQT_DEFINITIONS - Compiler switches required for using Polkit-qt
# POLKITQT_POLICY_FILES_INSTALL_DIR - The directory where policy files should be installed to.
#
-# The minimum required version PolkitQt can be specified by setting the
-# POLKITQT_MIN_VERSION variable.
+# The minimum required version of PolkitQt can be specified using the
+# standard syntax, e.g. find_package(PolkitQt 1.0)
+# For compatiblity, this can also be done by setting the POLKITQT_MIN_VERSION variable.
# Copyright (c) 2009, Daniel Nicoletti, <dantti85-pk@yahoo.com.br>
# Copyright (c) 2009, Dario Freddi, <drf54321@gmail.com>
@@ -20,13 +21,16 @@
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-if (POLKITQT_INCLUDE_DIR AND POLKITQT_GUI_LIBRARY AND POLKITQT_CORE_LIBRARY)
- set(PolkitQt_FIND_QUIETLY TRUE)
-endif (POLKITQT_INCLUDE_DIR AND POLKITQT_GUI_LIBRARY AND POLKITQT_CORE_LIBRARY)
-if (NOT POLKITQT_MIN_VERSION)
- set(POLKITQT_MIN_VERSION "0.9.3")
-endif (NOT POLKITQT_MIN_VERSION)
+# Support POLKITQT_MIN_VERSION for compatibility:
+if(NOT PolkitQt_FIND_VERSION)
+ set(PolkitQt_FIND_VERSION "${POLKITQT_MIN_VERSION}")
+endif(NOT PolkitQt_FIND_VERSION)
+
+# the minimum version of PolkitQt we require
+if(NOT PolkitQt_FIND_VERSION)
+ set(PolkitQt_FIND_VERSION "0.9.3")
+endif(NOT PolkitQt_FIND_VERSION)
if (NOT WIN32)
# use pkg-config to get the directories and then use these values
@@ -43,52 +47,35 @@ find_path( POLKITQT_INCLUDE_DIR
find_file( POLKITQT_VERSION_FILE
polkit-qt/polkitqtversion.h
- PATHS ${POLKITQT_INCLUDE_DIR}
+ HINTS ${POLKITQT_INCLUDE_DIR}
)
-set(POLKITQT_VERSION_OK TRUE)
-if(POLKITQT_VERSION_FILE)
+if(POLKITQT_VERSION_FILE AND NOT POLKITQT_VERSION)
file(READ ${POLKITQT_VERSION_FILE} POLKITQT_VERSION_CONTENT)
string (REGEX MATCH "POLKITQT_VERSION_STRING \".*\"\n" POLKITQT_VERSION_MATCH "${POLKITQT_VERSION_CONTENT}")
-
+
if(POLKITQT_VERSION_MATCH)
- string(REGEX REPLACE "POLKITQT_VERSION_STRING \"(.*)\"\n" "\\1" POLKITQT_VERSION ${POLKITQT_VERSION_MATCH})
- if(POLKITQT_VERSION STRLESS "${POLKITQT_MIN_VERSION}")
- set(POLKITQT_VERSION_OK FALSE)
- if(PolkitQt_FIND_REQUIRED)
- message(FATAL_ERROR "PolkitQt version ${POLKITQT_VERSION} was found, but it is too old. Please install ${POLKITQT_MIN_VERSION} or newer.")
- else(PolkitQt_FIND_REQUIRED)
- message(STATUS "PolkitQt version ${POLKITQT_VERSION} is too old. Please install ${POLKITQT_MIN_VERSION} or newer.")
- endif(PolkitQt_FIND_REQUIRED)
- endif(POLKITQT_VERSION STRLESS "${POLKITQT_MIN_VERSION}")
+ string(REGEX REPLACE "POLKITQT_VERSION_STRING \"(.*)\"\n" "\\1" _POLKITQT_VERSION ${POLKITQT_VERSION_MATCH})
endif(POLKITQT_VERSION_MATCH)
-elseif(POLKITQT_INCLUDE_DIR)
- # The version is so old that it does not even have the file
- set(POLKITQT_VERSION_OK FALSE)
- if(PolkitQt_FIND_REQUIRED)
- message(FATAL_ERROR "It looks like PolkitQt is too old. Please install PolkitQt version ${POLKITQT_MIN_VERSION} or newer.")
- else(PolkitQt_FIND_REQUIRED)
- message(STATUS "It looks like PolkitQt is too old. Please install PolkitQt version ${POLKITQT_MIN_VERSION} or newer.")
- endif(PolkitQt_FIND_REQUIRED)
-endif(POLKITQT_VERSION_FILE)
+ set(POLKITQT_VERSION "${_POLKITQT_VERSION}" CACHE STRING "Version number of PolkitQt" FORCE)
+endif(POLKITQT_VERSION_FILE AND NOT POLKITQT_VERSION)
-find_library( POLKITQT_CORE_LIBRARY
- NAMES polkit-qt-core
+find_library( POLKITQT_CORE_LIBRARY
+ NAMES polkit-qt-core
HINTS ${PC_POLKITQT_LIBDIR}
)
-find_library( POLKITQT_GUI_LIBRARY
- NAMES polkit-qt-gui
+find_library( POLKITQT_GUI_LIBRARY
+ NAMES polkit-qt-gui
HINTS ${PC_POLKITQT_LIBDIR}
)
set(POLKITQT_LIBRARIES ${POLKITQT_GUI_LIBRARY} ${POLKITQT_CORE_LIBRARY})
include(FindPackageHandleStandardArgs)
+# Use the extended (new) syntax for FPHSA():
+find_package_handle_standard_args(PolkitQt REQUIRED_VARS POLKITQT_GUI_LIBRARY POLKITQT_CORE_LIBRARY POLKITQT_INCLUDE_DIR
+ VERSION_VAR POLKITQT_VERSION)
-# handle the QUIETLY and REQUIRED arguments and set POLKITQT_FOUND to TRUE if
-# all listed variables are TRUE
-find_package_handle_standard_args(PolkitQt DEFAULT_MSG POLKITQT_INCLUDE_DIR POLKITQT_GUI_LIBRARY POLKITQT_CORE_LIBRARY POLKITQT_VERSION_OK)
-
-mark_as_advanced(POLKITQT_INCLUDE_DIR
+mark_as_advanced(POLKITQT_INCLUDE_DIR
POLKITQT_CORE_LIBRARY
POLKITQT_GUI_LIBRARY
POLKITQT_VERSION_FILE