diff options
| -rw-r--r-- | automoc/kde4automoc.cpp | 29 | 
1 files changed, 16 insertions, 13 deletions
| diff --git a/automoc/kde4automoc.cpp b/automoc/kde4automoc.cpp index bc92d9f7..b3d8053b 100644 --- a/automoc/kde4automoc.cpp +++ b/automoc/kde4automoc.cpp @@ -242,6 +242,7 @@ bool AutoMoc::run()      if (failed) {          // if any moc process failed we don't want to touch the _automoc.cpp file so that          // kde4automoc is rerun until the issue is fixed +        cerr << "returning failed.."<< endl;          return false;      }      outStream.flush(); @@ -258,21 +259,17 @@ void AutoMoc::waitForProcesses()  {      while (!processes.isEmpty()) {          Process proc = processes.dequeue(); -         +          bool result = proc.qproc->waitForFinished();          //ignore errors from the cmake echo process          if (!proc.mocFilePath.isEmpty()) { -            if (!result) { -                cerr << "kde4automoc: process failed: " << proc.qproc->errorString() << endl; -                failed = true; -                if (!proc.mocFilePath.isEmpty()) { -                    QFile::remove(proc.mocFilePath); -                } -            } else if (proc.qproc->exitCode() != 0) { +            if (!result || proc.qproc->exitCode()) { +                cerr << "kde4automoc: process for " << proc.mocFilePath +                     << " failed: " << proc.qproc->errorString() << endl; +                cerr << "pid to wait for: " << proc.qproc->pid() << endl; +                system("/bin/ps ux");                  failed = true; -                if (!proc.mocFilePath.isEmpty()) { -                    QFile::remove(proc.mocFilePath); -                } +                QFile::remove(proc.mocFilePath);              }          }          delete proc.qproc; @@ -301,7 +298,13 @@ void AutoMoc::generateMoc(const QString &sourceFile, const QString &mocFileName)          args << "-o" << mocFilePath << sourceFile;          //qDebug() << "executing: " << mocExe << args;          mocProc->start(mocExe, args, QIODevice::NotOpen); -        mocProc->waitForStarted(); -        processes.enqueue(Process(mocProc, mocFilePath)); +        if (mocProc->waitForStarted()) +            processes.enqueue(Process(mocProc, mocFilePath)); +        else { +            cerr << "kde4automoc: process for " << mocFilePath << "failed to start: "  +                 << mocProc->errorString() << endl; +            failed = true; +            delete mocProc; +        }      }  } | 
