Deprecation Defines

David Faure faure at kde.org
Mon Jul 7 21:39:38 UTC 2014


On Monday 05 May 2014 13:14:07 Alex Merry wrote:
> On 05/05/14 07:27, Matthew Dawson wrote:
> > Hi all,
> > 
> > I was looking into my frameworks, to prepare them for the 5.0.  One thing
> > was looking into was the deprecation defines.  In KConfig, there are a
> > couple of> 
> > defines to disable deprecated functions:
> >  - KDE_NO_DEPRECATED
> 
> As you mention, this is a leftover, and not correct.

In case anyone's bored, there are still 99 files in KF5 using 
KDE_NO_DEPRECATED (without counting kdelibs4support).

The affected frameworks are kcompletion, kconfig, kdewebkit, kemoticons, 
kglobalaccel, khtml, kiconthemes, kio, kitemviews, kparts, kwidgetaddons and 
kxmlgui....

I'll take care of kio and kparts, since I maintain these.

> >  - KCONFIGCORE_NO_DEPRECATED
> >  - KCONFIGGUI_NO_DEPRECATED
> 
> Both of these are correct, for their respective libraries.
> 
> > Where KDE_NO_DEPRECATED seems to be from kdelibs, and
> > KCONFIG*_NO_DEPRECATED are from cmake's generate_export_header function. 
> > Going forward, which is considered to be the correct way to have
> > deprecated pieces of code excluded from the build?
> > 
> > And: If generate_export_header is used, should all frameworks be extended
> > with a switch to easily enable/disable its deprecation exclusion defines?
>
> I suggested this a couple of months ago - you can pass an argument to
> generate_export_header to do it (which you would make dependent on an
> option). I think the general view was that it wasn't worth it
> (especially for frameworks where deprecated code is minimal or mostly
> header-only). Applications can always put the *_NO_DEPRECATED defines in
> their build scripts if they want, I guess.

Not sure I even understand the question; but looking at *_export.h, it seems 
that apps can remove all deprecated APIs by setting DEFINE_NO_DEPRECATED?
Strange name (not namespaced in any way), and is it documented anywhere?

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5



More information about the Kde-frameworks-devel mailing list