summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2019-09-19 10:55:19 +0200
committerTobias Hunger <tobias.hunger@qt.io>2019-09-19 09:53:52 +0000
commita33cb335f7e513e2f3b610b3290ccb87d029fa8c (patch)
treea8805409a896fb2f839d21e7074e58ae46359952 /src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
parent454261aaa28155bab710d370429bca8ff95df9f8 (diff)
downloadqt-creator-a33cb335f7e513e2f3b610b3290ccb87d029fa8c.tar.gz
CMake: Fileapi: Make ids unique per compile group
Make sure to generate unique ids for each project part to unconfuse the code model. This was never triggered so far since before PCH support all my test projects ended up with exactly one compile group per target:-) Change-Id: Ida34f71f77cdf679fea7007f13ac19713175d916 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/fileapidataextractor.cpp')
-rw-r--r--src/plugins/cmakeprojectmanager/fileapidataextractor.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
index a9328d0c59..53d8a126be 100644
--- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
@@ -279,6 +279,8 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input,
for (const TargetDetails &t : input.targetDetails) {
QDir sourceDir(sourceDirectory.toString());
+ bool needPostfix = t.compileGroups.size() > 1;
+ int count = 1;
for (const CompileInfo &ci : t.compileGroups) {
if (ci.language != "C" && ci.language != "CXX" && ci.language != "CUDA")
continue; // No need to bother the C++ codemodel
@@ -306,7 +308,8 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input,
RawProjectPart rpp;
rpp.setProjectFileLocation(t.sourceDir.pathAppended("CMakeLists.txt").toString());
rpp.setBuildSystemTarget(t.name);
- rpp.setDisplayName(t.id);
+ const QString postfix = needPostfix ? "_cg" + QString::number(count) : QString();
+ rpp.setDisplayName(t.id + postfix);
rpp.setMacros(transform<QVector>(ci.defines, &DefineInfo::define));
rpp.setHeaderPaths(transform<QVector>(ci.includes, &IncludeInfo::path));
@@ -333,6 +336,7 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input,
rpp.setBuildTargetType(isExecutable ? ProjectExplorer::BuildTargetType::Executable
: ProjectExplorer::BuildTargetType::Library);
rpps.append(rpp);
+ ++count;
}
}