aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-01-23 19:21:32 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-01-23 19:21:32 +0000
commit70e36df077f2685f6feda284cb02c27162d43344 (patch)
tree5f05866bc9877939fd5b0aa9e3be587025ce6429 /modules
parentf966ce265b1c469713f7c2543bb81e5cf8b70d13 (diff)
downloadextra-cmake-modules-70e36df077f2685f6feda284cb02c27162d43344.tar.gz
extra-cmake-modules-70e36df077f2685f6feda284cb02c27162d43344.tar.bz2
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
Diffstat (limited to 'modules')
-rw-r--r--modules/KDE4Macros.cmake60
1 files changed, 40 insertions, 20 deletions
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})