summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2019-06-20 14:03:40 +0200
committerTobias Hunger <tobias.hunger@qt.io>2019-06-20 14:41:04 +0000
commit5bcd59c94f75e1dfbc64827328e110d0071364c4 (patch)
treeaf3e16d6b8050b2b72a3c6427ba95a1b0f3c1b62 /src
parentadd60c014871bdae0a038398695425a347b44952 (diff)
downloadqt-creator-5bcd59c94f75e1dfbc64827328e110d0071364c4.tar.gz
CMake: Simplify buildkey generation
Just use the target name as buildkey. This is unique in cmake projects, so there is no need to mangle the source directory into the whole thing. This is a problem since different readers might report different source directories. That will then result in RunConfigurations getting duplicated after switching the reader types. Task-number: QTCREATORBUG-22129 Change-Id: I849ab68f221d732341e98faa9a4e757d3a495b2a Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp7
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectnodes.h2
-rw-r--r--src/plugins/cmakeprojectmanager/fileapidataextractor.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/projecttreehelper.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/servermodereader.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/tealeafreader.cpp2
8 files changed, 7 insertions, 14 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index f7cfa7f33f..20970036c3 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -206,7 +206,7 @@ const QList<BuildTargetInfo> CMakeBuildConfiguration::appTargets() const
bti.targetFilePath = ct.executable;
bti.projectFilePath = ct.sourceDirectory.stringAppended("/");
bti.workingDirectory = ct.workingDirectory;
- bti.buildKey = CMakeTargetNode::generateId(ct.sourceDirectory, ct.title);
+ bti.buildKey = ct.title;
appTargetList.append(bti);
}
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 08039b7229..2e7d160053 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -361,7 +361,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
setDisplayName(rootProjectNode()->displayName());
for (const CMakeBuildTarget &bt : bc->buildTargets()) {
- const QString buildKey = CMakeTargetNode::generateId(bt.sourceDirectory, bt.title);
+ const QString buildKey = bt.title;
if (ProjectNode *node = findNodeForBuildKey(buildKey)) {
if (auto targetNode = dynamic_cast<CMakeTargetNode *>(node))
targetNode->setConfig(patchedConfig);
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
index ea218c2257..aeee344aea 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
@@ -177,11 +177,6 @@ CMakeTargetNode::CMakeTargetNode(const Utils::FilePath &directory, const QString
setIsProduct();
}
-QString CMakeTargetNode::generateId(const Utils::FilePath &directory, const QString &target)
-{
- return directory.toString() + "///::///" + target;
-}
-
QString CMakeTargetNode::tooltip() const
{
return m_tooltip;
@@ -189,7 +184,7 @@ QString CMakeTargetNode::tooltip() const
QString CMakeTargetNode::buildKey() const
{
- return generateId(filePath(), m_target);
+ return m_target;
}
Utils::FilePath CMakeTargetNode::buildDirectory() const
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
index b924ec62a8..f4cea98db4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
@@ -63,8 +63,6 @@ class CMakeTargetNode : public ProjectExplorer::ProjectNode
public:
CMakeTargetNode(const Utils::FilePath &directory, const QString &target);
- static QString generateId(const Utils::FilePath &directory, const QString &target);
-
void setTargetInformation(const QList<Utils::FilePath> &artifacts, const QString &type);
QString tooltip() const final;
diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
index 0e5b0d25f6..2b38abbee7 100644
--- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
@@ -237,7 +237,7 @@ CppTools::RawProjectParts generateRawProjectParts(const PreprocessedData &input,
++counter;
CppTools::RawProjectPart rpp;
rpp.setProjectFileLocation(t.sourceDir.pathAppended("CMakeLists.txt").toString());
- rpp.setBuildSystemTarget(CMakeTargetNode::generateId(t.sourceDir, t.name));
+ rpp.setBuildSystemTarget(t.name);
rpp.setDisplayName(t.id);
rpp.setMacros(transform<QVector>(ci.defines, &DefineInfo::define));
rpp.setHeaderPaths(transform<QVector>(ci.includes, &IncludeInfo::path));
diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
index 58b2f744e8..ab9c49acdf 100644
--- a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
+++ b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
@@ -160,7 +160,7 @@ CMakeTargetNode *createTargetNode(const QHash<Utils::FilePath, ProjectNode *> &c
ProjectNode *cmln = cmakeListsNodes.value(dir);
QTC_ASSERT(cmln, return nullptr);
- QString targetId = CMakeTargetNode::generateId(dir, displayName);
+ QString targetId = displayName;
CMakeTargetNode *tn = static_cast<CMakeTargetNode *>(
cmln->findNode([&targetId](const Node *n) { return n->buildKey() == targetId; }));
diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp
index 6b993ecdbb..86f463b67b 100644
--- a/src/plugins/cmakeprojectmanager/servermodereader.cpp
+++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp
@@ -311,7 +311,7 @@ CppTools::RawProjectParts ServerModeReader::createRawProjectParts(QString &error
CppTools::RawProjectPart rpp;
rpp.setProjectFileLocation(fg->target->sourceDirectory.toString() + "/CMakeLists.txt");
- rpp.setBuildSystemTarget(CMakeTargetNode::generateId(fg->target->sourceDirectory, fg->target->name));
+ rpp.setBuildSystemTarget(fg->target->name);
rpp.setDisplayName(fg->target->name + QString::number(counter));
rpp.setMacros(fg->macros);
rpp.setIncludePaths(includes);
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
index 264f97dace..fb941604dd 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
@@ -349,7 +349,7 @@ CppTools::RawProjectParts TeaLeafReader::createRawProjectParts(QString &errorMes
includePaths += m_parameters.workDirectory.toString();
CppTools::RawProjectPart rpp;
rpp.setProjectFileLocation(cbt.sourceDirectory.toString() + "/CMakeLists.txt");
- rpp.setBuildSystemTarget(CMakeTargetNode::generateId(cbt.sourceDirectory, cbt.title));
+ rpp.setBuildSystemTarget(cbt.title);
rpp.setIncludePaths(includePaths);
CppTools::RawProjectPartFlags cProjectFlags;