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.
Attachments
For Gerrit Dashboard: QTBUG-74752 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
257428,3 | Switch export macros to standard form | 5.13 | qt/qtwebengine | Status: MERGED | +2 | 0 |
257674,3 | Switch export macros to standard form | 5.13 | qt/qt3d | Status: MERGED | +2 | 0 |