From 783cde1f0c62d68d25c6e6627f7e53108da1c6f9 Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Mon, 24 Sep 2007 12:15:38 +0000 Subject: also create moc files for _p.h files that contain a Q_OBJECT macro svn path=/trunk/KDE/kdelibs/; revision=716270 --- automoc/kde4automoc.cpp | 12 ++++++++++++ modules/KDE4Macros.cmake | 4 ++++ 2 files changed, 16 insertions(+) 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) -- cgit v1.2.1