Use ECMGenerateExportHeader to manage deprecated API better
Summary:
Allows
- projects linking to KWindowSystem to hide deprecated API up to a given version or silence deprecation warnings after a given version, using
- -DKWINDOWSYSTEM_DISABLE_DEPRECATED_BEFORE_AND_AT
- -DKWINDOWSYSTEM_NO_DEPRECATED
- -DKWINDOWSYSTEM_DEPRECATED_WARNINGS_SINCE
- -DKWINDOWSYSTEM_NO_DEPRECATED_WARNINGS
or - -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT
- -DKF_NO_DEPRECATED
- -DKF_DEPRECATED_WARNINGS_SINCE
- -DKF_NO_DEPRECATED_WARNINGS
- to build KWindowSystem optionally with deprecated API excluded from the build, using "EXCLUDE_DEPRECATED_BEFORE_AND_AT" cmake argument.
Setting KWINDOWSYSTEM_NO_WIDGETS ensures EXCLUDE_DEPRECATED_BEFORE_AND_AT
is at least at the version where QWidgets API was deprecated.
Test Plan:
Builds with EXCLUDE_DEPRECATED_BEFORE_AND_AT set to 0, 5.0.0, 5.18.0,
5.38.0, 5.62.0, CURRENT as well as KWINDOWSYSTEM_NO_WIDGETS ON/OFF
Reviewers: Frameworks, KWin, dfaure, zzag
Reviewed By: KWin, zzag
Subscribers: kde-frameworks-devel
Tags: Frameworks
Differential Revision: https://phabricator.kde.org/D24465