don't have David's mail here for replying to it... but attached is a patch to create the .moc file from the .cpp file if the .cpp file matches ^\s*Q_OBJECT. For moc_foo.cpp files it always creates it from the .h file. That way you can include both #include "moc_foo.cpp" #include "foo.moc"
and with that include the moc generated code from the .cpp and the .h files. (If I understood correctly that's compatible with qmake.) -- ________________________________________________________ Matthias Kretz (Germany) <>< http://Vir.homelinux.org/ [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]
Index: kde4automoc.cmake
===================================================================
--- kde4automoc.cmake (revision 680441)
+++ kde4automoc.cmake (working copy)
@@ -24,14 +24,24 @@
string(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
if(_current_MOC)
get_filename_component(_basename ${_current_MOC} NAME_WE)
+
+ # if the .cpp file contains the Q_OBJECT macro we create the .moc file from the .cpp file
+ string(REGEX MATCH "^[ \t]*Q_OBJECT" _matches_q_object "${_contents}")
+ if (_matches_q_object)
+ set(_header ${_abs_PATH}/${_basename}.h)
+ else (_matches_q_object)
+ set(_header ${_filename})
+ endif (_matches_q_object)
else(_current_MOC)
string(REGEX MATCH "moc_[^ <\"]+\\.cpp" _current_MOC "${_current_MOC_INC}")
get_filename_component(_basename ${_current_MOC} NAME_WE)
string(REPLACE "moc_" "" _basename "${_basename}")
+
+ # always create moc_foo.cpp from the .h
+ set(_header ${_abs_PATH}/${_basename}.h)
endif(_current_MOC)
- set(_header ${_abs_PATH}/${_basename}.h)
- set(_moc ${KDE4_CURRENT_BINARY_DIR}/${_current_MOC})
+ set(_moc ${KDE4_CURRENT_BINARY_DIR}/${_current_MOC})
if (NOT EXISTS ${_header})
message(FATAL_ERROR "In the file \"${_filename}\" the moc file \"${_current_MOC}\" is included, but \"${_header}\" doesn't exist.")
pgp7SGHRlPg5u.pgp
Description: PGP signature
_______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
