aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltyperegistrar
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-03-27 16:00:18 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-03-30 13:46:42 +0200
commit3f0126ed86f56178fa707db629fabcc01eb31754 (patch)
tree486ee21b1c1cd37eee2eabdb43e8e125b0d10831 /src/qmltyperegistrar
parent0124f73dfb779924e46eb8b319358dbbd5af2577 (diff)
qmltyperegistrar: Accept more file extensions as headers
Also, even if the file does not appear to be a header, still try to include it. People use strange file names. Change-Id: I2db7bd6aa14007a8b458c3860ba0553bb3b384b7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmltyperegistrar')
-rw-r--r--src/qmltyperegistrar/qmltyperegistrar.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/qmltyperegistrar/qmltyperegistrar.cpp b/src/qmltyperegistrar/qmltyperegistrar.cpp
index 6154d87e99..282fa9251b 100644
--- a/src/qmltyperegistrar/qmltyperegistrar.cpp
+++ b/src/qmltyperegistrar/qmltyperegistrar.cpp
@@ -307,16 +307,19 @@ int main(int argc, char **argv)
case GadgetRegistration:
case ObjectRegistration: {
const QString include = metaObject[QLatin1String("inputFile")].toString();
- const bool declaredInHeader = include.endsWith(QLatin1String(".h"));
- if (declaredInHeader) {
- includes.append(include);
- classDef.insert(QLatin1String("registerable"), true);
- } else {
- fprintf(stderr, "Cannot generate QML type registration for class %s "
- "because it is not declared in a header.",
+ if (!include.endsWith(QLatin1String(".h"))
+ && !include.endsWith(QLatin1String(".hpp"))
+ && !include.endsWith(QLatin1String(".hxx"))
+ && include.contains(QLatin1Char('.'))) {
+ fprintf(stderr,
+ "Class %s is declared in %s, which appears not to be a header.\n"
+ "The compilation of its registration to QML may fail.\n",
qPrintable(classDef.value(QLatin1String("qualifiedClassName"))
- .toString()));
+ .toString()),
+ qPrintable(include));
}
+ includes.append(include);
+ classDef.insert(QLatin1String("registerable"), true);
types.append(classDef);
break;