aboutsummaryrefslogtreecommitdiff
path: root/modules/FindPolkitQt-1.cmake
blob: 8ef5b3c950a2969a2f62e0089715c50194a22c82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# - Try to find PolkitQt-1
# Once done this will define
#
#  POLKITQT-1_FOUND - system has Polkit-qt
#  POLKITQT-1_INCLUDE_DIR - the Polkit-qt include directory
#  POLKITQT-1_LIBRARIES - Link these to use all Polkit-qt libs
#  POLKITQT-1_CORE_LIBRARY - Link this to use the polkit-qt-core library only
#  POLKITQT-1_GUI_LIBRARY - Link this to use GUI elements in polkit-qt (polkit-qt-gui)
#  POLKITQT-1_AGENT_LIBRARY - Link this to use the agent wrapper in polkit-qt
#  POLKITQT-1_DEFINITIONS - Compiler switches required for using Polkit-qt

# Copyright (c) 2009, Dario Freddi, <drf@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.

if (POLKITQT-1_INCLUDE_DIR AND POLKITQT-1_LIB)
    set(POLKITQT-1_FIND_QUIETLY TRUE)
endif (POLKITQT-1_INCLUDE_DIR AND POLKITQT-1_LIB)

if (NOT POLKITQT-1_MIN_VERSION)
  set(POLKITQT-1_MIN_VERSION "0.95.1")
endif (NOT POLKITQT-1_MIN_VERSION)

if (NOT WIN32)
   # use pkg-config to get the directories and then use these values
   # in the FIND_PATH() and FIND_LIBRARY() calls
   find_package(PkgConfig)
   pkg_check_modules(PC_POLKITQT-1 QUIET polkit-qt-1)
   set(POLKITQT-1_DEFINITIONS ${PC_POLKITQT-1_CFLAGS_OTHER})
endif (NOT WIN32)

find_path( POLKITQT-1_INCLUDE_DIR
     NAMES polkitqt1-authority.h
     PATH_SUFFIXES polkit-qt-1
)

find_file( POLKITQT-1_VERSION_FILE
     NAMES polkit-qt-1/polkitqt1-version.h
     PATHS ${POLKITQT-1_INCLUDE_DIR}
)

set(POLKITQT-1_VERSION_OK TRUE)
if(POLKITQT-1_VERSION_FILE)
  file(READ ${POLKITQT-1_VERSION_FILE} 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}
)
find_library( POLKITQT-1_GUI_LIBRARY 
    NAMES polkit-qt-gui-1
    HINTS ${PC_POLKITQT-1_LIBDIR}
)
find_library( POLKITQT-1_AGENT_LIBRARY 
    NAMES polkit-qt-agent-1
    HINTS ${PC_POLKITQT-1_LIBDIR}
)

set(POLKITQT-1_LIBRARIES ${POLKITQT-1_GUI_LIBRARY} ${POLKITQT-1_CORE_LIBRARY} ${POLKITQT-1_AGENT_LIBRARY})

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 POLKITQT-1_VERSION_OK)

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 (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)