Integration of 3rd party libraries into FESA

To integrate 3rd party libraries into FESA the following should be considered:

The FESA3 installation @GSI is using RPMs. This allows to define versioned dependencies to other RPM packages for other libraries. During updates and (de-)installation 3rd party packages may be updated / uninstalled automatically by the RPM system. Therefore providing 3rd party libraries as RPM packages is the preferred way once the library is considered stable. As long as the library is not considered stable and still under development it may be located in a different location, e.g. /common/usr/fesa/saftlib-20.07.2017 .

All 3rd party libraries should follow a similiar structure
Structure Content
<installation location>/3rd-party-library/<version>/lib/x86_64 static binary
<installation location>/3rd-party-library/<version>/include header files

Versioning

To distinct between different versions of a library visible versioning is an advantage. This way libraries in different versions can be used simultaneously.

Integration into the FESA FWK

If 3rd party libraries are supposed to be included in the core part of FESA3 they should be static. This way no further action has to be taken to ship this library to a FEC along with FESA3 deploy-units.

3rd party libraries will be included in fesa-core-gsi's Makefile.dep (see DEPENDENT_COMPILER_OPTIONS etc. ).

Initialization routines from the 3rd party library should be added to the appropriate part of fesa-core-gsi if required, e.g. for adding the 3rd library to a deploy-unit's Makefile.dep or the specificInit initialization routine .

Integration into the FESA Code Generation

If routines from 3rd party libraries should be called from every deploy-unit such calls should be added to the code generation part of the FESA framework.

-- SolveighMatthies - 11 Oct 2017
Topic revision: r3 - 22 May 2018, SolveighMatthies
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback