diff options
| -rw-r--r-- | automoc/kde4automoc.cpp | 12 | ||||
| -rw-r--r-- | modules/KDE4Macros.cmake | 4 | 
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) | 
