| 108 | } |
| 109 | |
| 110 | KJob* MakeBuilder::runMake( KDevelop::ProjectBaseItem* item, MakeJob::CommandType c, |
| 111 | const QStringList& overrideTargets, |
| 112 | const MakeVariables& variables ) |
| 113 | { |
| 114 | ///Running the same builder twice may result in serious problems, |
| 115 | ///so kill jobs already running on the same project |
| 116 | const auto makeJobs = m_activeMakeJobs.data(); |
| 117 | for (MakeJob* makeJob : makeJobs) { |
| 118 | if(item && makeJob->item() && makeJob->item()->project() == item->project() && makeJob->commandType() == c) { |
| 119 | qCDebug(KDEV_MAKEBUILDER) << "killing running make job, due to new started build on same project:" << makeJob; |
| 120 | makeJob->kill(); |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | auto* job = new MakeJob(this, item, c, overrideTargets, variables); |
| 125 | m_activeMakeJobs.append(job); |
| 126 | |
| 127 | connect(job, &MakeJob::finished, this, &MakeBuilder::jobFinished); |
| 128 | return job; |
| 129 | } |
| 130 | |
| 131 | int MakeBuilder::perProjectConfigPages() const |
| 132 | { |