From 9daa9b7b0849a121309b5522ef7eb6d34c6712b2 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 27 Jun 2013 10:43:13 -0500 Subject: Adding in a build system --- cmake/UseGdbusCodegen.cmake | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 cmake/UseGdbusCodegen.cmake (limited to 'cmake/UseGdbusCodegen.cmake') 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) -- cgit v1.2.3