Elektra  0.8.26
CMake Plugins

Problem

Constraints

Assumptions

Considered Alternatives

Names for flag:

Decision

Introduce a cmake process where all plugins are processed three times. Following cmake variables are used for the phases:

  1. Collection phase (COLLECTION_PHASE is ON), add_plugin internally builds up:
    • ADDED_PLUGINS
    • REMOVED_PLUGINS
    • ADDED_DIRECTORIES
  2. assemble dependency phase (DEPENDENCY_PHASE is ON, only considering ADDED_DIRECTORIES), with:
    • find_libraries, actually search for libraries on the system (only relevant libraries of plugins that are considered for inclusion)
    • add_plugin, with actually adding the plugins
  3. assemble all unit tests (ADDTESTING_PHASE is ON), either
    • with ADD_TEST in add_plugin, or
    • with add_plugintest (for unittests that have dependencies to bindings)

Rationale

Solves all the issues without adding too much complexity for actually adding plugins.

Maintaining additional mappings is very time-consuming. Simply adding all plugins directories is problematic. It would:

Implications

Related decisions

Notes

Limitations