Review Request 124168: [Cantor] Port plugin load mechanism to new KDE Frameworks 5 way

Sebastian Kügler sebas at kde.org
Sun Jul 12 20:37:23 UTC 2015



> On July 3, 2015, 8:45 p.m., Filipe Saraiva wrote:
> > src/lib/CMakeLists.txt, lines 57-63
> > <https://git.reviewboard.kde.org/r/124168/diff/2/?file=382975#file382975line57>
> >
> >     I would like to get some tips about how to port that _kcoreaddons_desktop_to_json_ to the new way.
> >     
> >     How I change that _add_library_ above? I get some error messages when I try to compile it.
> 
> Filipe Saraiva wrote:
>     My doubt here is: is there anyway to use shared libraries with JSON metadata or we need to use .desktop files yet?
>     
>     I master branch, src/lib/CMakeLists.txt has:
>     > install( FILES cantor_backend.desktop  DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
>     >
>     > install( FILES cantor_assistant.desktop  DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
>     >
>     > install( FILES cantor_panelplugin.desktop  DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
>     
>     Must I change it for JSON files or I must to use .desktop files yet?
> 
> Aleix Pol Gonzalez wrote:
>     What I've done in most occasions is just dropping the desktop files as the JSON gets embedded in the .so file.
> 
> Filipe Saraiva wrote:
>     Sune reply me in devel-mail list for not to use any metadata file. What do you think about it?

If you don't need it, then you can get away without it. (That would be the case if you just want to load all plugins, and don't need to know anything about them, other than the libraryName.

If you do need any metadata, Aleix suggestion to use JSON is just fine (I'd recommend that). 

If you really need KService and KSycoca (for backwards compatibility, for example), you'll have to use .desktop files (and convert them to json during build using kcoreaddons_desktop_to_json().


- Sebastian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124168/#review82056
-----------------------------------------------------------


On July 3, 2015, 8:33 p.m., Filipe Saraiva wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124168/
> -----------------------------------------------------------
> 
> (Updated July 3, 2015, 8:33 p.m.)
> 
> 
> Review request for KDE Edu, Aleix Pol Gonzalez, Alexander Rieder, and Sebastian Kügler.
> 
> 
> Repository: cantor
> 
> 
> Description
> -------
> 
> There is a new way to load plugins in KDE Frameworks 5 way. I ported Cantor plugins support to it. Now Cantor is using K_PLUGIN_FACTORY_WITH_JSON, the plugin path is the same of Qt5 ($QT_PLUGIN_PATH) and different types of Cantor plugins are installed in different subdirectories (backends in backends in ${KDE_INSTALL_PLUGINDIR}/cantor/backends, assistants in ${KDE_INSTALL_PLUGINDIR}/cantor/assistants, and panels in ${KDE_INSTALL_PLUGINDIR}/cantor/panels). KPluginInfo was changed to KPluginMetaData too.
> 
> To do it I followed the documentation and [this post](http://vizzzion.org/blog/2013/08/kde-frameworks-5-plugin-factory-guts/) about KDE Frameworks 5 plugins by sebas.
> 
> 
> Diffs
> -----
> 
>   src/CMakeLists.txt 50f26be 
>   src/assistants/CMakeLists.txt 4baf622 
>   src/assistants/advancedplot/CMakeLists.txt 53da352 
>   src/assistants/advancedplot/advancedplotassistant.cpp a1a21ae 
>   src/assistants/advancedplot/advancedplotassistant.desktop 72b8c9c 
>   src/assistants/advancedplot/advancedplotassistant.json PRE-CREATION 
>   src/assistants/differentiate/CMakeLists.txt 3c722a1 
>   src/assistants/differentiate/differentiateassistant.cpp c8bafb1 
>   src/assistants/differentiate/differentiateassistant.desktop 58e9fb9 
>   src/assistants/differentiate/differentiateassistant.json PRE-CREATION 
>   src/assistants/importpackage/CMakeLists.txt 3db01e2 
>   src/assistants/importpackage/importpackageassistant.cpp e0a9b50 
>   src/assistants/importpackage/importpackageassistant.desktop efa9eed 
>   src/assistants/importpackage/importpackageassistant.json PRE-CREATION 
>   src/assistants/integrate/CMakeLists.txt 23d97fc 
>   src/assistants/integrate/integrateassistant.cpp 601c6b2 
>   src/assistants/integrate/integrateassistant.desktop fc2bfb3 
>   src/assistants/integrate/integrateassistant.json PRE-CREATION 
>   src/assistants/linearalgebra/creatematrix/CMakeLists.txt 8829d06 
>   src/assistants/linearalgebra/creatematrix/creatematrixassistant.cpp 3336604 
>   src/assistants/linearalgebra/creatematrix/creatematrixassistant.desktop 7baf665 
>   src/assistants/linearalgebra/creatematrix/creatematrixassistant.json PRE-CREATION 
>   src/assistants/linearalgebra/eigenvalues/CMakeLists.txt b487099 
>   src/assistants/linearalgebra/eigenvalues/eigenvaluesassistant.cpp e4f0cd9 
>   src/assistants/linearalgebra/eigenvalues/eigenvaluesassistant.desktop e7523c2 
>   src/assistants/linearalgebra/eigenvalues/eigenvaluesassistant.json PRE-CREATION 
>   src/assistants/linearalgebra/eigenvectors/CMakeLists.txt 4c6d086 
>   src/assistants/linearalgebra/eigenvectors/eigenvectorsassistant.cpp d8e02b2 
>   src/assistants/linearalgebra/eigenvectors/eigenvectorsassistant.desktop f0b8a28 
>   src/assistants/linearalgebra/eigenvectors/eigenvectorsassistant.json PRE-CREATION 
>   src/assistants/linearalgebra/invertmatrix/CMakeLists.txt 7e19591 
>   src/assistants/linearalgebra/invertmatrix/invertmatrixassistant.cpp 9799c6d 
>   src/assistants/linearalgebra/invertmatrix/invertmatrixassistant.desktop eaf1f52 
>   src/assistants/linearalgebra/invertmatrix/invertmatrixassistant.json PRE-CREATION 
>   src/assistants/plot2d/CMakeLists.txt 2b02874 
>   src/assistants/plot2d/plot2dassistant.cpp 11d9db8 
>   src/assistants/plot2d/plot2dassistant.desktop 7a8c2da 
>   src/assistants/plot2d/plot2dassistant.json PRE-CREATION 
>   src/assistants/plot3d/CMakeLists.txt bbcac18 
>   src/assistants/plot3d/plot3dassistant.cpp 6b2e764 
>   src/assistants/plot3d/plot3dassistant.desktop c38e33c 
>   src/assistants/plot3d/plot3dassistant.json PRE-CREATION 
>   src/assistants/runscript/CMakeLists.txt 280a237 
>   src/assistants/runscript/runscriptassistant.cpp bb8147d 
>   src/assistants/runscript/runscriptassistant.desktop 0a89743 
>   src/assistants/runscript/runscriptassistant.json PRE-CREATION 
>   src/assistants/solve/CMakeLists.txt 2c25598 
>   src/assistants/solve/solveassistant.cpp 7ad1254 
>   src/assistants/solve/solveassistant.desktop 3b8de2e 
>   src/assistants/solve/solveassistant.json PRE-CREATION 
>   src/backends/CMakeLists.txt 2569d55 
>   src/backends/R/CMakeLists.txt 5e44b3c 
>   src/backends/R/rbackend.cpp a0d9e6a 
>   src/backends/R/rbackend.desktop a9ea1e1 
>   src/backends/R/rbackend.json PRE-CREATION 
>   src/backends/kalgebra/CMakeLists.txt 46a5440 
>   src/backends/kalgebra/kalgebrabackend.cpp 5d7fac9 
>   src/backends/kalgebra/kalgebrabackend.desktop f1a1b35 
>   src/backends/kalgebra/kalgebrabackend.json PRE-CREATION 
>   src/backends/lua/CMakeLists.txt 082f37b 
>   src/backends/lua/luabackend.cpp 30e258e 
>   src/backends/lua/luabackend.desktop 8ecd28e 
>   src/backends/lua/luabackend.json PRE-CREATION 
>   src/backends/maxima/CMakeLists.txt ca48d90 
>   src/backends/maxima/maximabackend.cpp 86843ef 
>   src/backends/maxima/maximabackend.desktop b1df2dd 
>   src/backends/maxima/maximabackend.json PRE-CREATION 
>   src/backends/null/CMakeLists.txt 69ffff3 
>   src/backends/null/nullbackend.cpp 602fd49 
>   src/backends/null/nullbackend.desktop 7f4be60 
>   src/backends/null/nullbackend.json PRE-CREATION 
>   src/backends/octave/CMakeLists.txt ee3ea92 
>   src/backends/octave/octavebackend.cpp 9842364 
>   src/backends/octave/octavebackend.desktop 3ef6332 
>   src/backends/octave/octavebackend.json PRE-CREATION 
>   src/backends/python2/CMakeLists.txt 02115ee 
>   src/backends/python2/python2backend.cpp 61662ff 
>   src/backends/python2/python2backend.desktop 4a60ea4 
>   src/backends/python2/python2backend.json PRE-CREATION 
>   src/backends/python3/CMakeLists.txt 6937480 
>   src/backends/python3/python3backend.cpp c83f631 
>   src/backends/python3/python3backend.desktop 05bce9d 
>   src/backends/python3/python3backend.json PRE-CREATION 
>   src/backends/qalculate/CMakeLists.txt e0f1c3a 
>   src/backends/qalculate/plotassistant/CMakeLists.txt efdd2d2 
>   src/backends/qalculate/plotassistant/qalculateplotassistant.cpp 1d0ae83 
>   src/backends/qalculate/plotassistant/qalculateplotassistant.desktop ce9901a 
>   src/backends/qalculate/plotassistant/qalculateplotassistant.json PRE-CREATION 
>   src/backends/qalculate/qalculatebackend.cpp da866ab 
>   src/backends/qalculate/qalculatebackend.desktop 14ecb8f 
>   src/backends/qalculate/qalculatebackend.json PRE-CREATION 
>   src/backends/sage/CMakeLists.txt 131ad07 
>   src/backends/sage/sagebackend.cpp b1a1ef5 
>   src/backends/sage/sagebackend.desktop 69d4f23 
>   src/backends/sage/sagebackend.json PRE-CREATION 
>   src/backends/scilab/CMakeLists.txt 4ce8200 
>   src/backends/scilab/scilabbackend.cpp 0d47595 
>   src/backends/scilab/scilabbackend.desktop 30f6edd 
>   src/backends/scilab/scilabbackend.json PRE-CREATION 
>   src/cantor_part.cpp 2e3d36d 
>   src/cantor_part.desktop 4619694 
>   src/cantor_part.json PRE-CREATION 
>   src/lib/CMakeLists.txt 9e33924 
>   src/lib/assistant.h f337591 
>   src/lib/assistant.cpp 60c521f 
>   src/lib/backend.cpp 5e64fe7 
>   src/lib/cantor_assistant.json PRE-CREATION 
>   src/lib/cantor_backend.json PRE-CREATION 
>   src/lib/cantor_panelplugin.json PRE-CREATION 
>   src/lib/panelplugin.h ebb02fe 
>   src/lib/panelplugin.cpp 1fa61d0 
>   src/lib/panelpluginhandler.cpp 8c73405 
>   src/panelplugins/CMakeLists.txt 6af7a48 
>   src/panelplugins/helppanel/CMakeLists.txt d8f785f 
>   src/panelplugins/helppanel/helppanelplugin.cpp 4611576 
>   src/panelplugins/helppanel/helppanelplugin.desktop fea19b6 
>   src/panelplugins/helppanel/helppanelplugin.json PRE-CREATION 
>   src/panelplugins/variablemgr/CMakeLists.txt 88f66d1 
>   src/panelplugins/variablemgr/variablemanagerplugin.cpp 6a7b448 
>   src/panelplugins/variablemgr/variablemanagerplugin.desktop e32f014 
>   src/panelplugins/variablemgr/variablemanagerplugin.json PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/124168/diff/
> 
> 
> Testing
> -------
> 
> * Build ok;
> * The plugins are loaded correctly;
> * Select some backend and see the Cantor loading assistants and panels;
> * Utilized some assistants, panels and backends, looks like correct.
> 
> 
> Thanks,
> 
> Filipe Saraiva
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20150712/50b6e5e7/attachment-0001.html>


More information about the kde-edu mailing list