diff options
Diffstat (limited to 'modules/FindPolkitQt-1.cmake')
-rw-r--r-- | modules/FindPolkitQt-1.cmake | 55 |
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) |