Use ECMGenerateExportHeader to manage deprecated API better

Authored by kossebau on Oct 7 2019, 12:52 PM.

Description

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

Details

Committed
kossebauOct 14 2019, 6:28 PM
Reviewer
KWin
Differential Revision
D24465: Use ECMGenerateExportHeader to manage deprecated API better
Parents
R278:0e3299d944ac: GIT_SILENT Upgrade KF5 version to 5.64.0.
Branches
Unknown
Tags
Unknown