diff options
author | Ted Gould <ted@gould.cx> | 2013-06-27 10:43:13 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2013-06-27 10:43:13 -0500 |
commit | 9daa9b7b0849a121309b5522ef7eb6d34c6712b2 (patch) | |
tree | bfbda0045e277cef9420d2b4fb6b2d04986ca541 /cmake/UseGdbusCodegen.cmake | |
parent | 14b46999b69f8dac446e204604adf0981395449c (diff) | |
download | ayatana-greeter-session-broadcast-9daa9b7b0849a121309b5522ef7eb6d34c6712b2.tar.gz ayatana-greeter-session-broadcast-9daa9b7b0849a121309b5522ef7eb6d34c6712b2.tar.bz2 ayatana-greeter-session-broadcast-9daa9b7b0849a121309b5522ef7eb6d34c6712b2.zip |
Adding in a build system
Diffstat (limited to 'cmake/UseGdbusCodegen.cmake')
-rw-r--r-- | cmake/UseGdbusCodegen.cmake | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cmake/UseGdbusCodegen.cmake b/cmake/UseGdbusCodegen.cmake new file mode 100644 index 0000000..aa23ca3 --- /dev/null +++ b/cmake/UseGdbusCodegen.cmake @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 2.6) +if(POLICY CMP0011) + cmake_policy(SET CMP0011 NEW) +endif(POLICY CMP0011) + +find_program(GDBUS_CODEGEN NAMES gdbus-codegen DOC "gdbus-codegen executable") +if(NOT GDBUS_CODEGEN) + message(FATAL_ERROR "Excutable gdbus-codegen not found") +endif() + +function(add_gdbus_codegen) + set(_one_value OUTFILES NAME PREFIX NAMESPACE SERVICE_XML) + set(_multi_value DEPENDS) + cmake_parse_arguments (arg "" "${_one_value}" "${_multi_value}" ${ARGN}) + + if(arg_PREFIX) + set(PREFIX --interface-prefix ${arg_PREFIX}) + endif() + + if(arg_NAMESPACE) + set(NAMESPACE --c-namespace ${arg_NAMESPACE}) + endif() + + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${arg_NAME}.h" "${CMAKE_CURRENT_BINARY_DIR}/${arg_NAME}.c" + COMMAND "${GDBUS_CODEGEN}" + --generate-c-code "${arg_NAME}" + ${PREFIX} + ${NAMESPACE} + "${arg_SERVICE_XML}" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${arg_DEPENDS} "${arg_SERVICE_XML}" + ) + set(${arg_OUTFILES} ${${arg_OUTFILES}} "${CMAKE_CURRENT_BINARY_DIR}/${arg_NAME}.c" PARENT_SCOPE) +endfunction(add_gdbus_codegen) |