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 pvsSyslog.cpp pvsPrivInputSignalHandler.cpp rebootSystemHandler.cpp killX11Handler.cpp sayHelloHandler.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} )