Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 1.65 KB

PACKAGING.md

File metadata and controls

34 lines (27 loc) · 1.65 KB

Packaging Suil

This library is designed to allow parallel installation of different major versions. To facilitate this, the shared library name, include directory, and pkg-config file are suffixed with the major version number of the library.

Dependencies check for the pkg-config package suil-0 and will build against a compatible version 0, regardless any other installed major versions.

Packages should follow the same conventions as above, that is, include the major version (and only the major version) in the name of the package so that it can be installed in parallel with future major versions.

Dependencies

The purpose of Suil is to abstract plugin UI toolkits away from host code. To achieve this, Suil dynamically loads modules for the toolkits in use. The main Suil library does NOT depend on any toolkit libraries, and its package shouldn't either (otherwise, for example, every LV2 host in the distribution would depend directly on Gtk and Qt). Individual modules (like libsuil_x11_in_gtk3.so) should be packaged separately and themselves depend on the involved libraries or toolkits. These packages should also be versioned as described above to support parallel installation.

Please do not make the main Suil package strongly depend on any toolkit package, this defeats the purpose of Suil and will cause problems for users who need to avoid a particular toolkit dependency for whatever reason. "Weak" or "recommended" dependencies are fine, the important thing is that users are able to avoid particular toolkits if they choose.