aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2013-11-14 11:50:35 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2013-11-14 13:11:08 +0100
commit8bb54bf216b4a2c32dceadd65ed5c7310156ecfb (patch)
treea830768032ede7a3a37ce2400f54f24a4bbf0e36
parent42c835bd8716a8f0a986eed47088998e0c297b18 (diff)
fix FileTagger application for other patterns than *.foo
fileTagsForFileName must be called with a file *name*, not the full file path. Task-number: QBS-459 Change-Id: I68c2910c78c4a7cc1ac53100e1fec57faaa46272 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r--src/lib/language/projectresolver.cpp5
-rw-r--r--src/lib/language/testdata/Banana1
-rw-r--r--src/lib/language/testdata/filetags.qbs9
-rw-r--r--src/lib/language/tst_language.cpp1
4 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/language/projectresolver.cpp b/src/lib/language/projectresolver.cpp
index 9e89016f9..b5ac63c5d 100644
--- a/src/lib/language/projectresolver.cpp
+++ b/src/lib/language/projectresolver.cpp
@@ -826,13 +826,14 @@ void ProjectResolver::applyFileTaggers(const SourceArtifactPtr &artifact,
const ResolvedProductConstPtr &product) const
{
if (!artifact->overrideFileTags || artifact->fileTags.isEmpty()) {
- const FileTags fileTags = product->fileTagsForFileName(artifact->absoluteFilePath);
+ const QString fileName = FileInfo::fileName(artifact->absoluteFilePath);
+ const FileTags fileTags = product->fileTagsForFileName(fileName);
artifact->fileTags.unite(fileTags);
if (artifact->fileTags.isEmpty())
artifact->fileTags.insert(unknownFileTag());
if (m_logger.traceEnabled())
m_logger.qbsTrace() << "[PR] adding file tags " << artifact->fileTags
- << " to " << FileInfo::fileName(artifact->absoluteFilePath);
+ << " to " << fileName;
}
}
diff --git a/src/lib/language/testdata/Banana b/src/lib/language/testdata/Banana
new file mode 100644
index 000000000..53164be8a
--- /dev/null
+++ b/src/lib/language/testdata/Banana
@@ -0,0 +1 @@
+Peanut butter jelly time!
diff --git a/src/lib/language/testdata/filetags.qbs b/src/lib/language/testdata/filetags.qbs
index 894fe9298..ddddd68c1 100644
--- a/src/lib/language/testdata/filetags.qbs
+++ b/src/lib/language/testdata/filetags.qbs
@@ -21,6 +21,15 @@ Project {
}
Product {
+ name: "filetagger_static_pattern"
+ files: "Banana"
+ FileTagger {
+ patterns: ["Banana"]
+ fileTags: ["yellow"]
+ }
+ }
+
+ Product {
name: "unknown_file_tag"
files: "narf.zort"
}
diff --git a/src/lib/language/tst_language.cpp b/src/lib/language/tst_language.cpp
index 75089f2a7..2eb5b1ead 100644
--- a/src/lib/language/tst_language.cpp
+++ b/src/lib/language/tst_language.cpp
@@ -1110,6 +1110,7 @@ void TestLanguage::fileTags_data()
QTest::newRow("init") << 0 << QStringList();
QTest::newRow("filetagger_project_scope") << 1 << (QStringList() << "cpp");
QTest::newRow("filetagger_product_scope") << 1 << (QStringList() << "asm");
+ QTest::newRow("filetagger_static_pattern") << 1 << (QStringList() << "yellow");
QTest::newRow("unknown_file_tag") << 1 << (QStringList() << "unknown-file-tag");
QTest::newRow("set_file_tag_via_group") << 2 << (QStringList() << "c++");
QTest::newRow("override_file_tag_via_group") << 2 << (QStringList() << "c++");