aboutsummaryrefslogtreecommitdiff
path: root/modules/FindPolkitQt-1.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindPolkitQt-1.cmake')
-rw-r--r--modules/FindPolkitQt-1.cmake55
1 files changed, 40 insertions, 15 deletions
diff --git a/modules/FindPolkitQt-1.cmake b/modules/FindPolkitQt-1.cmake
index b9b73cd7..15f6f59b 100644
--- a/modules/FindPolkitQt-1.cmake
+++ b/modules/FindPolkitQt-1.cmake
@@ -19,7 +19,7 @@ if (POLKITQT-1_INCLUDE_DIR AND POLKITQT-1_LIB)
endif (POLKITQT-1_INCLUDE_DIR AND POLKITQT-1_LIB)
if (NOT POLKITQT-1_MIN_VERSION)
- set(POLKITQT-1_MIN_VERSION "0.95.0")
+ set(POLKITQT-1_MIN_VERSION "0.95.1")
endif (NOT POLKITQT-1_MIN_VERSION)
if (NOT WIN32)
@@ -31,9 +31,41 @@ if (NOT WIN32)
endif (NOT WIN32)
find_path( POLKITQT-1_INCLUDE_DIR
- NAMES PolkitQt/authority.h
+ NAMES polkitqt1-authority.h
PATH_SUFFIXES polkit-qt-1
)
+
+find_path( POLKITQT-1_VERSION_FILE
+ NAMES polkitqt1-version.h
+ PATH_SUFFIXES polkit-qt-1
+)
+
+set(POLKITQT-1_VERSION_OK TRUE)
+if(POLKITQT-1_VERSION_FILE)
+ file(READ ${POLKITQT-1_INCLUDE_DIR}/polkitqt1-version.h POLKITQT-1_VERSION_CONTENT)
+ string (REGEX MATCH "POLKITQT1_VERSION_STRING \".*\"\n" POLKITQT-1_VERSION_MATCH "${POLKITQT-1_VERSION_CONTENT}")
+
+ if(POLKITQT-1_VERSION_MATCH)
+ string(REGEX REPLACE "POLKITQT1_VERSION_STRING \"(.*)\"\n" "\\1" POLKITQT-1_VERSION ${POLKITQT-1_VERSION_MATCH})
+ if(POLKITQT-1_VERSION STRLESS "${POLKITQT-1_MIN_VERSION}")
+ set(POLKITQT-1_VERSION_OK FALSE)
+ if(PolkitQt-1_FIND_REQUIRED)
+ message(FATAL_ERROR "PolkitQt-1 version ${POLKITQT-1_VERSION} was found, but it is too old. Please install ${POLKITQT-1_MIN_VERSION} or newer.")
+ else(PolkitQt-1_FIND_REQUIRED)
+ message(STATUS "PolkitQt-1 version ${POLKITQT-1_VERSION} is too old. Please install ${POLKITQT-1_MIN_VERSION} or newer.")
+ endif(PolkitQt-1_FIND_REQUIRED)
+ endif(POLKITQT-1_VERSION STRLESS "${POLKITQT-1_MIN_VERSION}")
+ endif(POLKITQT-1_VERSION_MATCH)
+elseif(POLKITQT-1_INCLUDE_DIR)
+ # The version is so old that it does not even have the file
+ set(POLKITQT-1_VERSION_OK FALSE)
+ if(PolkitQt_FIND_REQUIRED)
+ message(FATAL_ERROR "It looks like PolkitQt-1 is too old. Please install PolkitQt-1 version ${POLKITQT-1_MIN_VERSION} or newer.")
+ else(PolkitQt_FIND_REQUIRED)
+ message(STATUS "It looks like PolkitQt-1 is too old. Please install PolkitQt-1 version ${POLKITQT-1_MIN_VERSION} or newer.")
+ endif(PolkitQt_FIND_REQUIRED)
+endif(POLKITQT-1_VERSION_FILE)
+
find_library( POLKITQT-1_CORE_LIBRARY
NAMES polkit-qt-core-1
HINTS ${PC_POLKITQT-1_LIBDIR}
@@ -53,22 +85,15 @@ include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set POLKITQT-1_FOUND to TRUE if
# all listed variables are TRUE
-find_package_handle_standard_args(PolkitQt-1 DEFAULT_MSG POLKITQT-1_LIBRARIES POLKITQT-1_INCLUDE_DIR)
+find_package_handle_standard_args(PolkitQt-1 DEFAULT_MSG POLKITQT-1_LIBRARIES POLKITQT-1_INCLUDE_DIR POLKITQT-1_VERSION_OK)
-mark_as_advanced(POLKITQT-1_INCLUDE_DIR POLKITQT-1_CORE_LIBRARY POLKITQT-1_GUI_LIBRARY POLKITQT-1_LIBRARIES)
+mark_as_advanced(POLKITQT-1_INCLUDE_DIR POLKITQT-1_CORE_LIBRARY POLKITQT-1_GUI_LIBRARY POLKITQT-1_LIBRARIES POLKITQT-1_VERSION_OK)
if (POLKITQT-1_FOUND)
- if (PC_POLKITQT-1_VERSION VERSION_LESS POLKITQT-1_MIN_VERSION)
- message(STATUS "Found PolkitQt-1 release < ${POLKITQT-1_MIN_VERSION}")
- message(STATUS "You need PolkitQt-1 version ${POLKITQT-1_MIN_VERSION} or newer to compile this component")
- set(POLKITQT-1_FOUND FALSE)
- return()
- else (PC_POLKITQT-1_VERSION VERSION_LESS POLKITQT-1_MIN_VERSION)
- if ( NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX )
- message("WARNING: Installation prefix does not match PolicyKit install prefixes. You probably will need to move files installed "
- "in POLICY_FILES_INSTALL_DIR and by dbus_add_activation_system_service to the ${PC_POLKITQT-1_PREFIX} prefix")
- endif (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)
- endif (PC_POLKITQT-1_VERSION VERSION_LESS POLKITQT-1_MIN_VERSION)
+ if (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)
+ message("WARNING: Installation prefix does not match PolicyKit install prefixes. You probably will need to move files installed "
+ "in POLICY_FILES_INSTALL_DIR and by dbus_add_activation_system_service to the ${PC_POLKITQT-1_PREFIX} prefix")
+ endif (NOT PC_POLKITQT-1_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)
endif (POLKITQT-1_FOUND)
set(POLKITQT-1_POLICY_FILES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions)