Skip to content
  • Artur Grunau's avatar
    Implement a dependency system for CAMPVis modules · e1551c26
    Artur Grunau authored
    There used to be no way to specify what other modules each module
    required in order to work. This led to either compilation or linker
    errors that were often not easy to understand.
    
    Introduce a new module-level CMake variable, ThisModDependencies, that a
    module can set in its CMake file to indicate what other modules need to
    be enabled for it to compile and work properly. If defined,
    ThisModDependencies should be a list of strings — the names of required
    modules.
    
    Once all available modules have been analysed, the collected dependency
    information is used to activate (if necessary) the dependencies of every
    enabled module. Transitive and circular dependencies are already
    supported in this initial version of our module dependency system.
    
    Unfortunately, when a module gets enabled in the CMake GUI, its
    dependencies are only resolved once the Configure button is clicked and
    CMake runs again. This is a limitation of CMake in that all
    configuration happens offline and it's not possible to react to value
    changes immediately.
    
    References #144
    e1551c26