blob: 20fd531c62cad3599279195e233e0010be066c12 (
plain) (
blame)
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
include(${QT_USE_FILE})
set(pvsinput_SRCS
inputEvent.cpp
)
if(UNIX)
find_file(XINPUT2_HDR X11/extensions/XInput2.h)
if(XINPUT2_HDR)
set_property(SOURCE x11FakeKeyboardHandler.cpp
APPEND
PROPERTY COMPILE_DEFINITIONS HAVE_XINPUT2_H
)
endif()
set(pvsprivinputd_SRCS
pvsprivinputd.cpp
pvsPrivInputHandler.cpp
pvsCheckPrivileges.cpp
pvsSyslog.cpp
pvsPrivInputSignalHandler.cpp
rebootSystemHandler.cpp
killX11Handler.cpp
magicSysRqHandler.cpp
sayHelloHandler.cpp
inputEventHandler.cpp
)
set(pvsprivinputd_MOC_HDRS
pvsPrivInputHandler.h
pvsCheckPrivileges.h
pvsSyslog.h
pvsPrivInputSignalHandler.h
)
qt4_wrap_cpp(pvsprivinputd_MOC_SRCS
${pvsprivinputd_MOC_HDRS}
)
add_executable(pvsprivinputd
${pvsprivinputd_SRCS}
${pvsprivinputd_MOC_SRCS}
)
set_property(SOURCE ${pvsprivinputd_SRCS} ${pvsprivinputd_MOC_SRCS}
APPEND
PROPERTY COMPILE_FLAGS " -I${QT_QTCORE_INCLUDE_DIR} -I${QT_QTDBUS_INCLUDE_DIR} -I${QT_QTNETWORK_INCLUDE_DIR}")
target_link_libraries(pvsprivinputd
pvsinput
${QT_QTCORE_LIBRARY}
${QT_QTDBUS_LIBRARY}
${QT_QTNETWORK_LIBRARY}
)
list(APPEND pvsinput_SRCS
pvsPrivInputSocket.cpp
x11InputUtils.cpp
x11FakeKeyboardHandler.cpp
x11FakeMouseHandler.cpp
privilegedHandlerForwarder.cpp
)
# we need pkg-config to find out where to install the action file:
find_package(PkgConfig)
if(NOT PKG_CONFIG_FOUND)
# we will try to make a best effort and put our policy file into
# ${PREFIX}/share/polkit-1, but only if we can find
# the pkexec executable.
find_program(PKEXEC_LOCATION pkexec)
if(PKEXEC_LOCATION OR ENABLE_POLKIT)
set(POLKIT_FOUND ON)
set(POLKIT_PREFIX ${CMAKE_INSTALL_PREFIX})
set(POLKIT_POLICY_DIR ${POLKIT_PREFIX}/share/polkit-1/actions)
endif()
else()
pkg_check_modules(POLKIT "polkit-gobject-1")
if(POLKIT_FOUND)
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} polkit-gobject-1 --variable=policydir
OUTPUT_VARIABLE POLKIT_POLICY_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT POLKIT_POLICY_DIR)
set(POLKIT_FOUND OFF)
endif()
endif()
endif()
# now, arrange for policykit integration:
if(POLKIT_FOUND OR ENABLE_POLKIT)
if(NOT POLKIT_POLICY_DIR)
message(SEND_ERROR "PolicyKit integration is enabled, but cannot find PolicyKit's actions directory. Please set POLKIT_POLICY_DIR to the right value")
endif()
install(FILES org.openslx.pvs.input.policy
DESTINATION ${POLKIT_POLICY_DIR})
set_property(SOURCE ${pvsprivinputd_SRCS}
APPEND
PROPERTY COMPILE_DEFINITIONS HAVE_POLKIT)
message(STATUS "PolicyKit integration: enabled")
else()
message(STATUS "PolicyKit integration: disabled")
endif()
# Install a pvsprivinputd.conf template
install(FILES pvsprivinputd.conf
DESTINATION /etc
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
endif()
add_library(
pvsinput
STATIC
${pvsinput_SRCS}
)
|