I have been trying to compile GPlates from source on openSUSE Tumbleweed, which has resulted in the following compilation errors:
gplates_2.5.0_src/src/qt-widgets/KinematicGraphsDialog.h:52:7: error: definition of type 'QwtPointSeriesData' conflicts with typedef of the same name
52 | class QwtPointSeriesData;
| ^
/usr/include/qt6/qwt6/qwt_series_data.h:226:39: note: 'QwtPointSeriesData' declared here
226 | typedef QwtArraySeriesData< QPointF > QwtPointSeriesData;
| ^
In file included from gplates_2.5.0_src/src/qt-widgets/KinematicGraphPicker.cc:62:
gplates_2.5.0_src/src/qt-widgets/KinematicGraphPicker.h:34:7: error: definition of type 'QwtPointSeriesData' conflicts with typedef of the same name
34 | class QwtPointSeriesData;
| ^
/usr/include/qt6/qwt6/qwt_series_data.h:226:39: note: 'QwtPointSeriesData' declared here
226 | typedef QwtArraySeriesData< QPointF > QwtPointSeriesData;
| ^
After some further investigation, it seems that the recent release of Qwt (6.3.0) is no longer declaring QwtPointSeriesData
as a stand-alone class, and is instead declaring it as a typedef alias for QwtArraySeriesData
, which is conflicting with GPlates forward-declaration of QwtPointSeriesData
.
I was able to resolve it by directly including qwt_series_data.h
instead of using a forward-declaration in KinematicGraphPicker.h
and KinematicGraphsDialog.h
.