summaryrefslogtreecommitdiffstats
path: root/src/input/CMakeLists.txt
blob: 44cf6b6863717ba92624d25aaba63afd2ad0df62 (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
include(${QT_USE_FILE})

set(pvsinput_SRCS
    inputEvent.cpp
    inputEventHandler.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
		pvsPrivInputSignalHandler.cpp
		rebootSystemHandler.cpp
		killX11Handler.cpp
		sayHelloHandler.cpp
	)
	
	set(pvsprivinputd_MOC_HDRS
		pvsPrivInputHandler.h
		pvsCheckPrivileges.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)
        endif()
    else()
        pkg_check_modules(POLKIT "polkit-gobject-1")
    endif()
    
    # now, arrange for policykit integration:
    if(POLKIT_FOUND OR ENABLE_POLKIT)
        set_property(SOURCE ${pvsprivinputd_SRCS}
            APPEND
            PROPERTY COMPILE_DEFINITIONS HAVE_POLKIT)
    endif()
endif()

add_library(
    pvsinput
    STATIC
    ${pvsinput_SRCS}
)