KF 5 & C++14?
Friedrich W. H. Kossebau
kossebau at kde.org
Mon Apr 27 13:53:32 BST 2020
Am Montag, 27. April 2020, 00:45:41 CEST schrieb David Faure:
> On Sunday, April 26, 2020 5:30:37 PM CEST Friedrich W. H. Kossebau wrote:
> > Hi,
> >
> > I just saw that at least kimageformats, knewstuff & kquickcharts all set
> > this: set(CMAKE_CXX_STANDARD 14)
> >
> > set(CMAKE_CXX_STANDARD_REQUIRED ON)
> >
> > Which ignores a bit that so far C++11 has been the minimum standard
> > officially supported in/by KDE Frameworks (by mainly following what Qt 5
> > supports).
> >
> > Compare also the current text of the policy
> > "Frameworks compiler requirements and C++11":
> > --- 8< ---
> > The following minimal compiler versions are supported by KDE Frameworks:
> > * GCC 4.8
> > * Clang 3.3
> > * VS2013 (MSVC12)
> >
> > This means all of the C++11 standards can be used.
> > --- 8< ---
> > * https://community.kde.org/Frameworks/
> > Policies#Frameworks_compiler_requirements_and_C.2B.2B11
> >
> > What to make of this? Might it be the time to raise the bars a bit, and
> > how
> > much? Surely the lower limit is what the oldest Qt version currently
> > supported by KDE Frameworks claims to support:
> > https://doc.qt.io/qt-5.12/supported-platforms.html
> >
> > Should we go above this?
> > Or should kimageformats, knewstuff & kquickcharts be fixed to use C++11
> > only again?
> >
> > No own opinion, so far only stumbled over what seems a policy breakage.
>
> The goal was to align with the requirements of the Qt version we require.
>
> But it's hard to know if anyone is actually using gcc 4.8 to build the
> current version of KF5. One way to find out is to... do nothing. Leave the
> above as is and see if anyone actually complains that it doesn't match our
> promise.
For reference, the CMAKE_CXX_STANDARD 14 is present in those modules...
KQuickCharts: since KF 5.65 (== addition of module)
KNewStuff: since KF 5.69
KImageFormats: since KF 5.70
So relatively new, meaning the field observation phase only just began :)
> This isn't however a green light for doing this everywhere, not until we
> wait multiple months for feedback. Otherwise the porting effort (down to
> C++11) will be huge.
One personal motivation to ask was the hope that we could go C++14 across all
KF modules now. Not needing to support C++11 anymore, but relying on C++14
deprecation tagging features would simplify ECMGenerateExportHeader code and,
what triggered me here, make it simple to extend version-based deprecation
tagging also for enumerators.
Guess I am out of luck then for now, or have to post-pone the feature :)
Cheers
Friedrich
More information about the Kde-frameworks-devel
mailing list