From 70e36df077f2685f6feda284cb02c27162d43344 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Mon, 23 Jan 2006 19:21:32 +0000 Subject: make it dcop skel/stub rules work in directories where stubs/skels are generated multiple times for the same headers Alex svn path=/trunk/KDE/kdesdk/cmake/; revision=501726 --- modules/KDE4Macros.cmake | 60 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 20 deletions(-) (limited to 'modules') diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index e3503b33..376e6a38 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -44,17 +44,28 @@ MACRO(KDE4_ADD_DCOP_SKELS _sources) SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp) SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) - ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} - COMMAND ${KDE4_DCOPIDL_EXECUTABLE} - ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} - DEPENDS ${_tmp_FILE} - ) + IF (NOT HAVE_${_basename}_KIDL_RULE) + SET(HAVE_${_basename}_KIDL_RULE ON) - ADD_CUSTOM_COMMAND(OUTPUT ${_skel} - COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} - ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} - DEPENDS ${_kidl} - ) + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE4_DCOPIDL_EXECUTABLE} + ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} + DEPENDS ${_tmp_FILE} + ) + ENDIF (NOT HAVE_${_basename}_KIDL_RULE) + + + + IF (NOT HAVE_${_basename}_SKEL_RULE) + SET(HAVE_${_basename}_SKEL_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_skel} + COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} + DEPENDS ${_kidl} + ) + + ENDIF (NOT HAVE_${_basename}_SKEL_RULE) SET(${_sources} ${${_sources}} ${_skel}) @@ -73,17 +84,26 @@ MACRO(KDE4_ADD_DCOP_STUBS _sources) # SET(_stub_H ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.h) SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl) - ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} - COMMAND ${KDE4_DCOPIDL_EXECUTABLE} - ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} - DEPENDS ${_tmp_FILE} - ) - ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} - COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} - ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} - DEPENDS ${_kidl} - ) + IF (NOT HAVE_${_basename}_KIDL_RULE) + SET(HAVE_${_basename}_KIDL_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE4_DCOPIDL_EXECUTABLE} + ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl} + DEPENDS ${_tmp_FILE} + ) + ENDIF (NOT HAVE_${_basename}_KIDL_RULE) + + IF (NOT HAVE_${_basename}_STUB_RULE) + SET(HAVE_${_basename}_STUB_RULE ON) + + ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} + COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} + DEPENDS ${_kidl} + ) + ENDIF (NOT HAVE_${_basename}_STUB_RULE) SET(${_sources} ${${_sources}} ${_stub_CPP}) -- cgit v1.2.1