aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/FindKDE4Internal.cmake4
-rw-r--r--modules/KDE4Macros.cmake26
2 files changed, 30 insertions, 0 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake
index 0458bf98..a2f957a3 100644
--- a/modules/FindKDE4Internal.cmake
+++ b/modules/FindKDE4Internal.cmake
@@ -110,6 +110,10 @@
# KDE4_ADD_KCFG_FILES (SRCS_VAR file1.kcfgc ... fileN.kcfgc)
# Use this to add KDE config compiler files to your application/library.
#
+# KDE4_ADD_WIDGET_FILES (SRCS_VAR file1.widgets ... fileN.widgets)
+# Use this to add widget description files for the makekdewidgets code generator
+# for Qt Designer plugins.
+#
# KDE4_AUTOMOC(file1 ... fileN)
# Call this if you want to have automatic moc file handling.
# This means if you include "foo.moc" in the source file foo.cpp
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index 716d6379..96c64b9d 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -11,6 +11,7 @@
# KDE4_CREATE_FINAL_FILES
# KDE4_ADD_KDEINIT_EXECUTABLE
# KDE4_ADD_EXECUTABLE
+# KDE4_ADD_WIDGET_FILES
#neundorf@kde.org
@@ -554,3 +555,28 @@ ENDMACRO (KDE4_ADD_LIBRARY _target_NAME _lib_TYPE)
MACRO (KDE4_CREATE_DOXYGEN_DOCS)
ENDMACRO (KDE4_CREATE_DOXYGEN_DOCS)
+
+MACRO (KDE4_ADD_WIDGET_FILES _sources)
+ FOREACH (_current_FILE ${ARGN})
+
+ GET_FILENAME_COMPONENT(_input ${_current_FILE} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_basename ${_input} NAME_WE)
+ SET(_source ${CMAKE_CURRENT_BINARY_DIR}/${_basename}widgets.cpp)
+ SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}widgets.moc)
+
+ # create source file from the .widgets file
+ ADD_CUSTOM_COMMAND(OUTPUT ${_source}
+ COMMAND ${KDE4_MAKEKDEWIDGETS_EXECUTABLE}
+ ARGS -o ${_source} ${_input}
+ MAIN_DEPENDENCY ${_input})
+
+ # create moc file
+ QT4_GENERATE_MOC(${_source} ${_moc} )
+ MACRO_ADD_FILE_DEPENDENCIES(${_source} ${_moc})
+
+ SET(${_sources} ${${_sources}} ${_source})
+
+ ENDFOREACH (_current_FILE)
+
+ENDMACRO (KDE4_ADD_WIDGET_FILES)
+