aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Kretz <kretz@kde.org>2007-09-24 12:15:38 +0000
committerMatthias Kretz <kretz@kde.org>2007-09-24 12:15:38 +0000
commit783cde1f0c62d68d25c6e6627f7e53108da1c6f9 (patch)
treeaf783c850e9940ef567a5bf2ff17c1d42bc9bed4
parente470ff64e894fbe7c8ce1c0ce3333eb0d92d1b80 (diff)
downloadextra-cmake-modules-783cde1f0c62d68d25c6e6627f7e53108da1c6f9.tar.gz
extra-cmake-modules-783cde1f0c62d68d25c6e6627f7e53108da1c6f9.tar.bz2
also create moc files for _p.h files that contain a Q_OBJECT macro
svn path=/trunk/KDE/kdelibs/; revision=716270
-rw-r--r--automoc/kde4automoc.cpp12
-rw-r--r--modules/KDE4Macros.cmake4
2 files changed, 16 insertions, 0 deletions
diff --git a/automoc/kde4automoc.cpp b/automoc/kde4automoc.cpp
index b5368b1a..bb356037 100644
--- a/automoc/kde4automoc.cpp
+++ b/automoc/kde4automoc.cpp
@@ -168,6 +168,18 @@ bool AutoMoc::run()
notIncludedMocs.insert(headername, currentMoc);
}
}
+ const QString privateHeaderName = absPath + basename + "_p.h";
+ if (QFile::exists(privateHeaderName) && !includedMocs.contains(privateHeaderName) &&
+ !notIncludedMocs.contains(privateHeaderName)) {
+ const QString currentMoc = "moc_" + basename + "_p.cpp";
+ QFile header(privateHeaderName);
+ header.open(QIODevice::ReadOnly);
+ const QByteArray contents = header.readAll();
+ if (qObjectRegExp.indexIn(QString::fromUtf8(contents)) >= 0) {
+ //qDebug() << "header contains Q_OBJECT macro";
+ notIncludedMocs.insert(privateHeaderName, currentMoc);
+ }
+ }
} else {
do { // call this for every moc include in the file
const QString currentMoc = mocIncludeRegExp.cap(1);
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index c4bc773f..078577b2 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -207,6 +207,10 @@ macro(KDE4_HANDLE_AUTOMOC _target_NAME _SRCS)
if(EXISTS "${_header}")
list(APPEND _moc_headers ${_header})
endif(EXISTS "${_header}")
+ set(_pheader "${_abs_path}/${_basename}_p.h")
+ if(EXISTS "${_pheader}")
+ list(APPEND _moc_headers ${_pheader})
+ endif(EXISTS "${_pheader}")
list(APPEND _moc_files ${_abs_current_FILE})
endif(_suffix STREQUAL ".cpp" OR _suffix STREQUAL ".cc" OR _suffix STREQUAL ".cxx" OR _suffix STREQUAL ".C")
endif(NOT _generated AND NOT _skip)