diff --git a/projectmanagers/cmake/cmakeimportjsonjob.cpp b/projectmanagers/cmake/cmakeimportjsonjob.cpp --- a/projectmanagers/cmake/cmakeimportjsonjob.cpp +++ b/projectmanagers/cmake/cmakeimportjsonjob.cpp @@ -111,14 +111,18 @@ if (!targetsFile.open(QIODevice::ReadOnly)) { qCDebug(CMAKE) << "Couldn't find the Targets file in" << targetsFile.fileName(); } - const QRegularExpression rx(QStringLiteral("^(.*)/CMakeFiles/(.*).dir$")); + const QRegularExpression rx(QStringLiteral("^(.*)/CMakeFiles/(.*).dir")); for(; !targetsFile.atEnd(); ) { const QByteArray line = targetsFile.readLine(); auto match = rx.match(QString::fromUtf8(line)); if (!match.isValid()) qCDebug(CMAKE) << "invalid match for" << line; const QString sourcePath = match.captured(1).replace(buildPath, sourceDir); - targets[KDevelop::Path(sourcePath)].append(match.captured(2)); + const QString target = match.captured(2); + // filter out maintenance targets, which are generated for Windows + if (target == "edit_cache" || target == "rebuild_cache") + continue; + targets[KDevelop::Path(sourcePath)].append(target); } return targets; }