Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.12.2
-
None
Description
findclasslist.pl has the following regular expression for export macros:
/^(?:struct|class|namespace) (?:Q_.*_EXPORT)? (\w+)(?!;)/
However some Qt modules use macro names that do not begin with Q_:
- Qt Charts uses QT_CHARTS_PRIVATE_EXPORT;
- Qt 3D uses QT3DCORE_PRIVATE_EXPORT, QT3DRENDERSHARED_PRIVATE_EXPORT, etc.;
- Qt WebEngine uses QWEBENGINECORE_PRIVATE_EXPORT.
Such macros are not recognized, so the corresponding symbols do not get the Qt_5_PRIVATE_API version tag, they get normal Qt_5 tags as if they were public APIs.
E.g. I noticed that recently Qt Charts changed signatures for some “supposedly public” methods like QtCharts::ChartAxisElement::createValueLabels, however on further investigation they turned out to be private.