DevHeads.net

RFC: Apps using KF5 & deprecated API - preferred flags to disable/enable warnings and/or API?

Hi,

developer using KDE Frameworks libraries in your projects, how would you like
to be able to control warnings about deprecated API in those libraries? Or
control the visibility of deprecated API to your code when building?

There is a prototype to enhance KDE Frameworks API, so developers building
against KDE Frameworks libraries could use flags like

-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0xXYZ
-DKF_DEPRECATED_WARNINGS_SINCE=0xXYZ
-DKF_NO_DEPRECATED_WARNINGS
-DKF_NO_DEPRECATED
as well as individual specializations per library, e.g.
-DKCOREADDONS_DISABLE_DEPRECATED_BEFORE_AND_AT=0xXYZ
-DKCOREADDONS_DEPRECATED_WARNINGS_SINCE=0xXYZ
-DKCOREADDONS_NO_DEPRECATED_WARNINGS
-DKCOREADDONS_NO_DEPRECATED

following the similar macros introduced with Qt 5.13.

Additionally this feature also would allow to do custom builds of the KF
libraries without code for the deprecated API:
-DEXCLUDE_DEPRECATED_BEFORE_AND_AT=0xXYZ
So apps bundling the libraries (AppImage, APK, DMG, etc) could save a bit on
size, if they do not need the deprecated API.

This prototype is ECMGenerateExportHeader, up at <a href="https://phabricator.kde.org/" title="https://phabricator.kde.org/">https://phabricator.kde.org/</a>
D23789

So, would those macros be useful to you in your KF5-using projects?
Where would you like things differently?

Cheers
Friedrich