diff options
| -rw-r--r-- | modules/FindPolkitQt-1.cmake | 55 | ||||
| -rw-r--r-- | modules/FindPolkitQt.cmake | 50 | 
2 files changed, 75 insertions, 30 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) diff --git a/modules/FindPolkitQt.cmake b/modules/FindPolkitQt.cmake index 922968a3..b6f883f9 100644 --- a/modules/FindPolkitQt.cmake +++ b/modules/FindPolkitQt.cmake @@ -25,7 +25,7 @@ if (POLKITQT_INCLUDE_DIR AND POLKITQT_GUI_LIBRARY AND POLKITQT_CORE_LIBRARY)  endif (POLKITQT_INCLUDE_DIR AND POLKITQT_GUI_LIBRARY AND POLKITQT_CORE_LIBRARY)  if (NOT POLKITQT_MIN_VERSION) -  set(POLKITQT_MIN_VERSION "0.9.0") +  set(POLKITQT_MIN_VERSION "0.9.3")  endif (NOT POLKITQT_MIN_VERSION)  if (NOT WIN32) @@ -40,6 +40,38 @@ find_path( POLKITQT_INCLUDE_DIR       NAMES polkit-qt/auth.h       PATH_SUFFIXES PolicyKit  ) + +find_path( POLKITQT_VERSION_FILE +     NAMES polkit-qt/polkitqtversion.h +     PATH_SUFFIXES PolicyKit +) + +set(POLKITQT_VERSION_OK TRUE) +if(POLKITQT_VERSION_FILE) +  file(READ ${POLKITQT_INCLUDE_DIR}/polkit-qt/polkitqtversion.h 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}") +  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) +  find_library( POLKITQT_CORE_LIBRARY       NAMES polkit-qt-core       HINTS ${PC_POLKITQT_LIBDIR} @@ -54,21 +86,9 @@ include(FindPackageHandleStandardArgs)  # 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) - -mark_as_advanced(POLKITQT_INCLUDE_DIR POLKITQT_CORE_LIBRARY POLKITQT_GUI_LIBRARY POLKITQT_LIBRARIES) - -if (POLKITQT_FOUND) -    if (PC_POLKITQT_VERSION VERSION_LESS POLKITQT_MIN_VERSION) -        if(PolkitQt_FIND_REQUIRED) -            message(FATAL_ERROR "Found Polkit-Qt release ${PC_POLKITQT_VERSION}, but at least ${POLKITQT_MIN_VERSION} is required.") -        else(PolkitQt_FIND_REQUIRED) -            message(STATUS "Found Polkit-Qt release ${PC_POLKITQT_VERSION}, but at least ${POLKITQT_MIN_VERSION} is required.") -        endif(PolkitQt_FIND_REQUIRED) -        set(POLKITQT_FOUND FALSE) -    endif (PC_POLKITQT_VERSION VERSION_LESS POLKITQT_MIN_VERSION) -endif (POLKITQT_FOUND) +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 POLKITQT_CORE_LIBRARY POLKITQT_GUI_LIBRARY POLKITQT_LIBRARIES POLKITQT_VERSION_OK)  if(POLKITQT_FOUND)      get_filename_component(_POLKITQT_INSTALL_PREFIX "${POLKITQT_CORE_LIBRARY}"  PATH) | 
