From 8b23b6efbe6db3fdffcc2eabccb232f0f644f433 Mon Sep 17 00:00:00 2001 From: Alexis Jeandet Date: Sun, 25 Oct 2020 21:45:35 +0100 Subject: [PATCH] Meson: List files from extra_files target field in project tree Fixes: QTCREATORBUG-24824 Change-Id: Id37bdaea08fb527398195ac16f99fe3c00d36566 Reviewed-by: hjk Reviewed-by: Christian Kandeler --- .../mesoninfoparser/parsers/targetparser.h | 1 + src/plugins/mesonprojectmanager/mesoninfoparser/target.h | 3 +++ .../mesonprojectmanager/project/projecttree/projecttree.cpp | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/targetparser.h b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/targetparser.h index 41e1c83629a..f016cff936a 100644 --- a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/targetparser.h +++ b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/targetparser.h @@ -66,6 +66,7 @@ class TargetParser targetObj["id"].toString(), targetObj["defined_in"].toString(), targetObj["filename"].toVariant().toStringList(), + targetObj["extra_files"].toVariant().toStringList(), targetObj["subproject"].toString(), extract_sources(targetObj["target_sources"].toArray())}; return t; diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/target.h b/src/plugins/mesonprojectmanager/mesoninfoparser/target.h index 8e8d5853133..55d5938e494 100644 --- a/src/plugins/mesonprojectmanager/mesoninfoparser/target.h +++ b/src/plugins/mesonprojectmanager/mesoninfoparser/target.h @@ -75,6 +75,7 @@ struct Target const QString id; const QString definedIn; const QStringList fileName; + const QStringList extraFiles; const Utils::optional subproject; const SourceGroupList sources; @@ -114,6 +115,7 @@ struct Target QString &&id, QString &&definedIn, QStringList &&fileName, + QStringList &&extraFiles, QString &&subproject, SourceGroupList &&sources) : type{toType(type)} @@ -121,6 +123,7 @@ struct Target , id{std::move(id)} , definedIn{QDir::cleanPath(definedIn)} , fileName{cleanPath(std::move(fileName))} + , extraFiles{cleanPath(std::move(extraFiles))} , subproject{subproject.isNull() ? Utils::nullopt : Utils::optional{std::move(subproject)}} , sources{std::move(sources)} diff --git a/src/plugins/mesonprojectmanager/project/projecttree/projecttree.cpp b/src/plugins/mesonprojectmanager/project/projecttree/projecttree.cpp index bb572c00093..3e9f5b2cd68 100644 --- a/src/plugins/mesonprojectmanager/project/projecttree/projecttree.cpp +++ b/src/plugins/mesonprojectmanager/project/projecttree/projecttree.cpp @@ -38,6 +38,11 @@ void buildTargetTree(std::unique_ptr &root, const Target &targ ProjectExplorer::FileType::Source)); } } + for (const auto &extraFile : target.extraFiles) { + root->addNestedNode( + std::make_unique(Utils::FilePath::fromString(extraFile), + ProjectExplorer::FileType::Unknown)); + } } void addTargetNode(std::unique_ptr &root, const Target &target)