diff options
| author | Volker Krause <vkrause@kde.org> | 2006-05-31 13:31:48 +0000 | 
|---|---|---|
| committer | Volker Krause <vkrause@kde.org> | 2006-05-31 13:31:48 +0000 | 
| commit | 1e805f6153cd53bee27b4017e19a90dc26e3f949 (patch) | |
| tree | dce96d634c0b83c16dc83fab5823cbad65e775c4 /modules/QtDBusMacros.cmake | |
| parent | 1affb970d8600325503f02bc332719cd249a5fef (diff) | |
| download | extra-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.cmake | 31 | 
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) | 
