blob: f05bc8b4f95e0cbe9bcc2bb544bc9e4d4d279b39 (
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
|
execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data --locate kauth/dbus_service.stub OUTPUT_VARIABLE KDE4_KAUTH_DBUS_SERVICE_STUB ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "KAuth: DBus service stub file found at ${KDE4_KAUTH_DBUS_SERVICE_STUB}")
execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path data --locate kauth/dbus_policy.stub OUTPUT_VARIABLE KDE4_KAUTH_DBUS_POLICY_STUB ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "KAuth: DBus policy stub file found at ${KDE4_KAUTH_DBUS_POLICY_STUB}")
execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path libexec --locate kauth-policy-gen OUTPUT_VARIABLE KDE4_KAUTH_POLICY_GEN ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
set( KDE4_KAUTH_DBUS_POLICY_STUB ${DATA_INSTALL_DIR}/kauth/dbus_policy.stub)
set( KDE4_KAUTH_DBUS_SERVICE_STUB ${DATA_INSTALL_DIR}/kauth/dbus_service.stub)
set( KDE4_KAUTH_POLICY_GEN ${LIBEXEC_INSTALL_DIR}/kauth-policy-gen)
if(NOT KDE4_KAUTH_DBUS_SERVICE_STUB)
message(FATAL_ERROR "DBus service stub file couldn't be found (required by kde4_auth_add_helper macro)")
endif(NOT KDE4_KAUTH_DBUS_SERVICE_STUB)
if(NOT KDE4_KAUTH_DBUS_POLICY_STUB)
message(FATAL_ERROR "DBus policy stub file couldn't be found (required by kde4_auth_add_helper macro)")
endif(NOT KDE4_KAUTH_DBUS_POLICY_STUB)
if(NOT KDE4_KAUTH_POLICY_GEN)
message(FATAL_ERROR "KAuth policy generator tool couldn't be found (required by kde4_auth_register_actions macro)")
endif(NOT KDE4_KAUTH_POLICY_GEN)
macro(kde4_auth_add_helper _HELPER_TARGET _HELPER_ID _HELPER_USER)
set(HELPER_ID ${_HELPER_ID})
set(HELPER_TARGET ${_HELPER_TARGET})
set(HELPER_USER ${_HELPER_USER})
kde4_add_executable(${HELPER_TARGET} ${ARGN})
target_link_libraries(${HELPER_TARGET} ${KDE4_KDECORE_LIBS})
install(TARGETS ${HELPER_TARGET} DESTINATION ${LIBEXEC_INSTALL_DIR})
configure_file(${KDE4_KAUTH_DBUS_POLICY_STUB} ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.conf)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.conf DESTINATION ${SYSCONF_INSTALL_DIR}/dbus-1/system.d/)
configure_file(${KDE4_KAUTH_DBUS_SERVICE_STUB} ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.service)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.service DESTINATION ${DBUS_SYSTEM_SERVICES_INSTALL_DIR})
endmacro(kde4_auth_add_helper)
macro(kde4_auth_register_actions HELPER_ID ACTIONS_FILE)
if(APPLE)
install(CODE "execute_process(COMMAND ${KDE4_KAUTH_POLICY_GEN} ${ACTIONS_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})")
elseif(UNIX)
set(_output ${CMAKE_CURRENT_BINARY_DIR}/${HELPER_ID}.policy)
get_filename_component(_input ${ACTIONS_FILE} ABSOLUTE)
add_custom_command(OUTPUT ${_output}
COMMAND ${KDE4_KAUTH_POLICY_GEN} ${_input} > ${_output}
MAIN_DEPENDENCY ${_input}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating ${HELPER_ID}.policy")
add_custom_target("actions for ${HELPER_ID}" ALL DEPENDS ${_output})
if (POLKITQT_FOUND)
install(FILES ${_output} DESTINATION ${POLICY_FILES_INSTALL_DIR})
endif (POLKITQT_FOUND)
endif()
endmacro(kde4_auth_register_actions)
|