Open PhilippvK opened 3 months ago
Rebased on master
After the latest commit, building etiss plugins can be done without making any changes to the cmakefiles of the plugin:
Just cmake -DETISS_DIR=/path/to/etiss/installation/lib/CMake/ETISS ..
and you should be good to go. Now i will need not look into how to load the plugin dynamicallyt at runtime (using list.txt
)
CC @mkiessling-ifx @mkiessling89
@wysiwyng lets try to get #149 merged to trigger the ci here...
CI passed, any comments @wysiwyng ?
Looks good from a code standpoint, please add documentation. Currently it is not obvious how the plugins can be used in ETISS after they were built.
Overall, additional work needs to be put in to make ETISS actually relocatable.
@wysiwyng I am working on the docs now. Should it be part of the (quite outdated) Docygen documentation or can I just write a markdown file for explaining how to integrate out-of-tree plugins?
@wysiwyng I have just pushed three more commits that are related to Plugins and would like to hear your feedback:
nullptr
is passed to addPlugin
which can easily be overlooked)etiss_wd
does not work if the path specified in the INI does not end with a slash aka. etiss_wd=/tmp/etiss/
would work, while etiss_wd=/tmp/etiss
would not.etiss_wd
to .
would allow ETISS to lookup for the PluginImpl
directory in the path where ETISS is executed (no need to update the INI). Do you think this is desirable or could be prone to errors?I realized that there are quite some inconsistencies regarding default values of INI settings. Can I look into fixing these in a followup PR? Also there are a lot of places where file paths are build manually using string concatenation. IMHO it would be good to use boost FS everwhere instead, what do you think @wysiwyng?
@wysiwyng Here is the documentation I came up with: https://github.com/tum-ei-eda/etiss-accelerator-plugins/blob/main/README.md
It's currently specific for the etiss-accelerator-plugins
repository but the instructions for other types if plugins would be very similar.
@wysiwyng I am working on the docs now. Should it be part of the (quite outdated) Docygen documentation or can I just write a markdown file for explaining how to integrate out-of-tree plugins?
The latter should be good enough for now.
Docs for how to build plugins out-of-tree will follow.
(QVanillaAccelerator
depends on https://github.com/tum-ei-eda/etiss/commits/patch_sysplugs_vanilla/ which was never merged to main).