aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-11-19 11:22:35 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-01-29 10:14:21 +0000
commit5c84373d8d60a8b13df1fcdcd77480736952c095 (patch)
tree1bc6648f64a8b31b9407d359ca715164f30718e6 /src
parent1cf4e24eb45498570b4302d25be90c0aa2923450 (diff)
Qt: Allow users to explicitly tag files as mocable
This is helpful for declaring a QObject-derived class via a macro, in which case the moc scanner will not help. Fixes: QBS-1410 Change-Id: I19ee30eac670228686b5528888159220cf39abd3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/lib/corelib/buildgraph/qtmocscanner.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/corelib/buildgraph/qtmocscanner.cpp b/src/lib/corelib/buildgraph/qtmocscanner.cpp
index 121184648..dcdbd82a8 100644
--- a/src/lib/corelib/buildgraph/qtmocscanner.cpp
+++ b/src/lib/corelib/buildgraph/qtmocscanner.cpp
@@ -230,7 +230,17 @@ QScriptValue QtMocScanner::apply(QScriptEngine *engine, const Artifact *artifact
bool hasPluginMetaDataMacro = false;
const bool isHeaderFile = artifact->fileTags().contains(m_tags.hpp);
- const RawScanResult scanResult = runScanner(m_cppScanner, artifact);
+ RawScanResult scanResult = runScanner(m_cppScanner, artifact);
+ if (scanResult.additionalFileTags.empty() && artifact->fileTags().contains("mocable")) {
+ if (isHeaderFile) {
+ scanResult.additionalFileTags.insert(m_tags.moc_hpp);
+ } else if (artifact->fileTags().contains(m_tags.cpp)
+ || artifact->fileTags().contains(m_tags.cppCombine)
+ || artifact->fileTags().contains(m_tags.objcpp)
+ || artifact->fileTags().contains(m_tags.objcppCombine)) {
+ scanResult.additionalFileTags.insert(m_tags.moc_cpp);
+ }
+ }
if (!scanResult.additionalFileTags.empty()) {
if (isHeaderFile) {
if (scanResult.additionalFileTags.contains(m_tags.moc_hpp))