itom-project / itom

itom core repository
https://itom-project.github.io/
Other
13 stars 5 forks source link

plugin loading mechs #150

Open photoniker opened 1 year ago

photoniker commented 1 year ago

This addresses the “install” step in plugins but also applies to designerplugins

The issue is that on a clean step, post-build-copied elements stick around in the itom subfolders and must be cleaned away manually.

Proposal: Instead of post-build-copying files to the itom/plugin folder,

a possibility to specify folders(plural) to additionally load from would be nice(prefilled at best from CMAKE, but configurable via this itom-settings dialogue)

For installer creation a cmake --install may be issued to deploy plugins in itom folders,

or installers for plugins are distributed separately.

magro11 commented 1 year ago

I also would like to implement the CMAKE install step to properly provide the itom core application as well as plugins and designer plugins for an easier setup deployment. Probably this project might be a separate issue. Due to my limited amount of time, I didn’t start anything in this direction yet.

Now about the plugins and designerplugins:

I guess we have to carefully check what exactly we would like to achieve. Here are some points, that should be considered:

Under Windows, further plugin locations probably require different locations under Debug and Release conditions, since Visual Studio usually builds the binaries into different directories.
The optional translation files for plugins must also be published into a correct subdirectory.
The entire semi-automatic plugin documentation process (python scripts) as well as the deployment of the plugin documentation into itom’s major documentation is also
based on the hard-coded subdirectories. This has to be managed, too.
The QtDesigner has some restrictions for directories, where designerplugins can be detected. This is the reason why the itom designerplugins are currently located in the folder with the name designer, since this is a requirement of the QtDesigner.
Some plugins and designerplugins require further 3rdParty libraries. They are post-build-copied to the special lib folder of itom. This folder is added to itoms path variable before starting to load the plugins.

All in all, an improved approach should consider these points and try to simplify the debugging as well as depolyment of plugins. We also have to take standard users into account, who have no idea about the proper build toolchain and just want to use the all-in-one-development-environment and compile and run itom in a few clicks.