D24465: Use ECMGenerateExportHeader to manage deprecated API better
This revision was automatically updated to reflect the committed changes. Closed by commit R278:7dc38306b5b6: Use ECMGenerateExportHeader to manage deprecated API better (authored by kossebau). CHANGED PRIOR TO COMMIT https://phabricator.kde.org/D24465?vs=67718&id=67921#toc REPOSITORY R278 KWindowSystem CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D24465?vs=67718&id=67921 REVISION DETAIL https://phabricator.kde.org/D24465 AFFECTED FILES CMakeLists.txt autotests/kstartupinfo_unittest.cpp autotests/kwindowsystemx11test.cpp autotests/kxmessages_unittest.cpp autotests/netwininfotestclient.cpp src/CMakeLists.txt src/kstartupinfo.cpp src/kstartupinfo.h src/kwindoweffects.cpp src/kwindoweffects.h src/kwindowsystem.cpp src/kwindowsystem.h src/kwindowsystem_dummy_p.h src/kwindowsystem_p.h src/netwm_def.h src/platforms/osx/kwindowsystem.cpp src/platforms/wayland/kwindowsystem.cpp src/platforms/wayland/kwindowsystem_p_wayland.h src/platforms/windows/kwindowsystem.cpp src/platforms/xcb/kkeyserver.cpp src/platforms/xcb/kkeyserver_x11.h src/platforms/xcb/kwindowsystem.cpp src/platforms/xcb/kwindowsystem_p_x11.h src/platforms/xcb/kxmessages.cpp src/platforms/xcb/kxmessages.h src/platforms/xcb/netwm.cpp src/platforms/xcb/netwm.h To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
zzag accepted this revision. This revision is now accepted and ready to land. REPOSITORY R278 KWindowSystem BRANCH useECMGenerateExportHeader REVISION DETAIL https://phabricator.kde.org/D24465 To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
dfaure added a comment. +1 from me REPOSITORY R278 KWindowSystem REVISION DETAIL https://phabricator.kde.org/D24465 To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
kossebau updated this revision to Diff 67718. kossebau added a comment. fix incompleteness of patch WRT to NET::Override While that flag is deprecated for clients, window managing code seems to still need to handle that flag if set by old clients, so tagging it as deprecated might result in premature removal of the support. That needs a separate plan how to make sure it#s no longer used out in the wild by clients. lxr.kde.org reports it still with some application code REPOSITORY R278 KWindowSystem CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D24465?vs=67428&id=67718 BRANCH useECMGenerateExportHeader REVISION DETAIL https://phabricator.kde.org/D24465 AFFECTED FILES CMakeLists.txt autotests/kstartupinfo_unittest.cpp autotests/kwindowsystemx11test.cpp autotests/kxmessages_unittest.cpp autotests/netwininfotestclient.cpp src/CMakeLists.txt src/kstartupinfo.cpp src/kstartupinfo.h src/kwindoweffects.cpp src/kwindoweffects.h src/kwindowsystem.cpp src/kwindowsystem.h src/kwindowsystem_dummy_p.h src/kwindowsystem_p.h src/netwm_def.h src/platforms/osx/kwindowsystem.cpp src/platforms/wayland/kwindowsystem.cpp src/platforms/wayland/kwindowsystem_p_wayland.h src/platforms/windows/kwindowsystem.cpp src/platforms/xcb/kkeyserver.cpp src/platforms/xcb/kkeyserver_x11.h src/platforms/xcb/kwindowsystem.cpp src/platforms/xcb/kwindowsystem_p_x11.h src/platforms/xcb/kxmessages.cpp src/platforms/xcb/kxmessages.h src/platforms/xcb/netwm.cpp src/platforms/xcb/netwm.h To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
kossebau added inline comments. INLINE COMMENTS > zzag wrote in netwm_def.h:336-339 > This one should be wrapped in `#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, > 0)`, right? Hmm... I should have checked the patch after uploading. IIRC I initially had this guarded here, same with the OverrideMask, but then found that too much code seems to rely on this, so I reverted things and added a TODO: Seemingly not the state here, and sadly nothing found in my stash. Sorry, I will have to recheck this. REPOSITORY R278 KWindowSystem REVISION DETAIL https://phabricator.kde.org/D24465 To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
zzag added inline comments. INLINE COMMENTS > netwm_def.h:336-339 > /** > @deprecated has unclear meaning and is KDE-only > **/ > Override = 6, // NON STANDARD This one should be wrapped in `#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)`, right? REPOSITORY R278 KWindowSystem REVISION DETAIL https://phabricator.kde.org/D24465 To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
kossebau added a comment. If no-one objects, would be pushing on Monday evening, Oct. 14th. REPOSITORY R278 KWindowSystem REVISION DETAIL https://phabricator.kde.org/D24465 To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
D24465: Use ECMGenerateExportHeader to manage deprecated API better
kossebau created this revision. kossebau added reviewers: Frameworks, KWin, dfaure, zzag. Herald added a project: Frameworks. Herald added a subscriber: kde-frameworks-devel. kossebau requested review of this revision. REVISION 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 REPOSITORY R278 KWindowSystem BRANCH useECMGenerateExportHeader REVISION DETAIL https://phabricator.kde.org/D24465 AFFECTED FILES CMakeLists.txt autotests/kstartupinfo_unittest.cpp autotests/kwindowinfox11test.cpp autotests/kwindowsystemx11test.cpp autotests/kxmessages_unittest.cpp autotests/netwininfotestclient.cpp src/CMakeLists.txt src/kstartupinfo.cpp src/kstartupinfo.h src/kwindoweffects.cpp src/kwindoweffects.h src/kwindowsystem.cpp src/kwindowsystem.h src/kwindowsystem_dummy_p.h src/kwindowsystem_p.h src/netwm_def.h src/platforms/osx/kwindowsystem.cpp src/platforms/wayland/kwindowsystem.cpp src/platforms/wayland/kwindowsystem_p_wayland.h src/platforms/windows/kwindowsystem.cpp src/platforms/xcb/kkeyserver.cpp src/platforms/xcb/kkeyserver_x11.h src/platforms/xcb/kwindowsystem.cpp src/platforms/xcb/kwindowsystem_p_x11.h src/platforms/xcb/kxmessages.cpp src/platforms/xcb/kxmessages.h src/platforms/xcb/netwm.cpp src/platforms/xcb/netwm.h To: kossebau, #frameworks, #kwin, dfaure, zzag Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns