Review Request 109315: Automatically put the version number in the plugin's desktop files
Aleix Pol Gonzalez
aleixpol at gmail.com
Wed Mar 6 16:55:50 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109315/
-----------------------------------------------------------
Review request for KDevelop, Andreas Pakulat and Milian Wolff.
Description
-------
One of the worst things when developing plugins in kdev is that we need to target an ABI version number. It makes sense to have it but it is possible to have an API-compatible plugin that isn't compatible due to the ABI version.
Also, every time we change kdevplatform version, we have to go through all plugins an change the version number in all projects.
In this patch, I'm using cmake to configure all the desktop files in runtime. If you guys like the idea, I'll implement it for KDevelop.
There are other things we could do, since we're generating it, we could set the KDE-PluginInfo-Version to kdevplatform's, I think it would make sense.
In case somebody wonders, scripty already knows about .desktop.cmake files.
For reference, I used these bash commands for changing it to the new way:
find . -name kdev*.desktop | xargs -I @ git mv @ @.cmake
find . -name *.desktop.cmake | xargs sed -i -e 's/X-KDevelop-Version=16/X-KDevelop-Version=@KDEV_PLUGIN_VERSION@/g'
find . -name CMakeLists.txt | xargs sed -r -i -e "s/install\( *FILES kdev(.*).desktop/configure_file(kdev\1.desktop.cmake \${CMAKE_CURRENT_BINARY_DIR}\/kdev\1.desktop)\ninstall(FILES \${CMAKE_CURRENT_BINARY_DIR}\/kdev\1.desktop/g"
Diffs
-----
CMakeLists.txt d0bcfa7
interfaces/CMakeLists.txt 5e83497
interfaces/iplugin.h 3a30eda
interfaces/iplugincontroller.cpp d7e8764
plugins/appwizard/CMakeLists.txt 26b0f4c
plugins/appwizard/kdevappwizard.desktop.cmake 2ffcb12
plugins/classbrowser/CMakeLists.txt bfb1688
plugins/classbrowser/kdevclassbrowser.desktop.cmake 5983d4b
plugins/codeutils/CMakeLists.txt 3694060
plugins/codeutils/kdevcodeutils.desktop.cmake 70a6b88
plugins/contextbrowser/CMakeLists.txt abf573a
plugins/contextbrowser/kdevcontextbrowser.desktop.cmake b8a0386
plugins/cvs/CMakeLists.txt 150ff18
plugins/cvs/kdevcvs.desktop.cmake dd7939c
plugins/dashboard/CMakeLists.txt 3ed5574
plugins/dashboard/kdevprojectdashboard.desktop.cmake 28bf473
plugins/dashboard/plasmoids/projectfileplasmoid/CMakeLists.txt d3016d7
plugins/documentswitcher/CMakeLists.txt 9312337
plugins/documentswitcher/kdevdocumentswitcher.desktop.cmake e45a9ef
plugins/documentview/CMakeLists.txt 30fc272
plugins/documentview/kdevdocumentview.desktop.cmake 5187c81
plugins/execute/CMakeLists.txt 6c65936
plugins/execute/kdevexecute.desktop.cmake a71f502
plugins/executescript/CMakeLists.txt 2b90327
plugins/executescript/kdevexecutescript.desktop.cmake 83fd95d
plugins/externalscript/CMakeLists.txt c8f2f73
plugins/externalscript/kdevexternalscript.desktop.cmake cd97a2f
plugins/filemanager/CMakeLists.txt a6a6a9f
plugins/filemanager/kdevfilemanager.desktop.cmake 6b94c5d
plugins/filetemplates/CMakeLists.txt 77b3be7
plugins/filetemplates/kdevfiletemplates.desktop.cmake 7d1434f
plugins/genericprojectmanager/CMakeLists.txt b081a1b
plugins/genericprojectmanager/kdevgenericmanager.desktop.cmake 8712aab
plugins/git/CMakeLists.txt f2bf0f1
plugins/git/kdevgit.desktop.cmake e1aceff
plugins/grepview/CMakeLists.txt f9e87af
plugins/grepview/kdevgrepview.desktop.cmake ec085ef
plugins/konsole/CMakeLists.txt 034b4a2
plugins/konsole/kdevkonsoleview.desktop.cmake 1778364
plugins/openwith/CMakeLists.txt 3217702
plugins/openwith/kdevopenwith.desktop.cmake b484570
plugins/pastebin/CMakeLists.txt c9fe952
plugins/pastebin/kdevpastebin.desktop.cmake a25f638
plugins/patchreview/CMakeLists.txt 8bedb83
plugins/patchreview/kdevpatchreview.desktop.cmake 3380d21
plugins/problemreporter/CMakeLists.txt 89b197d
plugins/problemreporter/kdevproblemreporter.desktop.cmake c20f0d2
plugins/projectmanagerview/CMakeLists.txt aec8360
plugins/projectmanagerview/kdevprojectmanagerview.desktop.cmake 542e088
plugins/quickopen/CMakeLists.txt b2b3f30
plugins/quickopen/kdevquickopen.desktop.cmake 8a4be70
plugins/reviewboard/CMakeLists.txt 89892f7
plugins/reviewboard/kdevreviewboard.desktop.cmake 7a83544
plugins/snippet/CMakeLists.txt 04433b5
plugins/snippet/kdevsnippet.desktop.cmake 5d2002a
plugins/standardoutputview/CMakeLists.txt ba8d434
plugins/standardoutputview/kdevstandardoutputview.desktop.cmake 8331422
plugins/subversion/CMakeLists.txt f74a45f
plugins/subversion/kdevsubversion.desktop.cmake e63068f
plugins/switchtobuddy/CMakeLists.txt 795b5ed
plugins/switchtobuddy/kdevswitchtobuddy.desktop.cmake 7d5f59f
plugins/templatemanager/CMakeLists.txt cc3ea92
plugins/testview/CMakeLists.txt 5307d7f
plugins/testview/kdevtestview.desktop.cmake 5980536
plugins/vcschangesview/CMakeLists.txt a284b28
plugins/vcschangesview/kdevvcschangesview.desktop.cmake 41646c6
shell/kross/kdevkrossplugin.desktop.cmake ddb8e9c
shell/plugincontroller.cpp 009228b
Diff: http://git.reviewboard.kde.org/r/109315/diff/
Testing
-------
The installed desktop files look the same as they used to.
Thanks,
Aleix Pol Gonzalez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130306/a0823f44/attachment.html>
More information about the KDevelop-devel
mailing list