aboutsummaryrefslogtreecommitdiff
path: root/modules/QtDBusMacros.cmake
diff options
context:
space:
mode:
authorVolker Krause <vkrause@kde.org>2006-05-31 13:31:48 +0000
committerVolker Krause <vkrause@kde.org>2006-05-31 13:31:48 +0000
commit1e805f6153cd53bee27b4017e19a90dc26e3f949 (patch)
treedce96d634c0b83c16dc83fab5823cbad65e775c4 /modules/QtDBusMacros.cmake
parent1affb970d8600325503f02bc332719cd249a5fef (diff)
downloadextra-cmake-modules-1e805f6153cd53bee27b4017e19a90dc26e3f949.tar.gz
extra-cmake-modules-1e805f6153cd53bee27b4017e19a90dc26e3f949.tar.bz2
Add macros to generate adaptor code from XML and XML from a header file.
svn path=/trunk/KDE/kdelibs/; revision=546939
Diffstat (limited to 'modules/QtDBusMacros.cmake')
-rw-r--r--modules/QtDBusMacros.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/QtDBusMacros.cmake b/modules/QtDBusMacros.cmake
index 5ee785db..a6e4221f 100644
--- a/modules/QtDBusMacros.cmake
+++ b/modules/QtDBusMacros.cmake
@@ -20,3 +20,34 @@ macro(qdbus_add_interfaces _sources)
set(${_sources} ${${_sources}} ${_target_base}.cpp)
endforeach (_i ${ARGN})
endmacro(qdbus_add_interfaces)
+
+macro(qdbus_generate_interface _header)
+ get_filename_component(_in_file ${_header} ABSOLUTE)
+ get_filename_component(_basename ${_header} NAME_WE)
+ set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml)
+
+ add_custom_command(OUTPUT ${_target}
+ COMMAND ${QDBUS_CPP2XML_EXECUTABLE}
+ ARGS ${_in_file} > ${_target}
+ DEPENDS ${_in_file}
+ )
+endmacro(qdbus_generate_interface)
+
+macro(qdbus_add_adaptor _sources)
+ foreach (_i ${ARGN})
+ get_filename_component(_xml_file ${_i} ABSOLUTE)
+ get_filename_component(_basename ${_i} NAME_WE)
+ set(_target_base ${CMAKE_CURRENT_BINARY_DIR}/${_basename}adaptor)
+
+ add_custom_command(OUTPUT ${_target_base}.cpp ${_target_base}.h
+ COMMAND ${QDBUS_IDL2CPP_EXECUTABLE}
+ ARGS -m -a ${_basename}adaptor ${_xml_file}
+ DEPENDS ${_xml_file}
+ )
+
+ qt4_generate_moc(${_target_base}.h ${_target_base}.moc)
+ macro_add_file_dependencies(${_target_base}.h ${_target_base}.moc)
+
+ set(${_sources} ${${_sources}} ${_target_base}.cpp)
+ endforeach (_i ${ARGN})
+endmacro(qdbus_add_adaptor)