Failures due to build order of Slicer CAT with superbuild remote modules

Following 2022.02.08 Weekly Meeting discussion, we considered the following options:

  1. Add a “virtual” project called Slicer Dependencies that would depend on all Slicer external project and ensure external projects from bundled SuperBuild extensions systematically depend on it.

  2. Update ExternalProjectDependency.cmake to support customizing dependency of any external project.

We will move forward with approach (2)

ExternalProject_Add_Dependencies

The good news is that the ExternalProjectDependency API already provide a function to do so:

ExternalProject_Add_Dependencies

This means that custom application integrator should be able to address the integration of the issue specfic to SlicerOpenCV by adding:

ExternalProject_Add_Dependencies(ITKVideoBridgeOpenCV
  DEPENDS
    ITK
  )

Path forward

This means that for now we have the flexibility of either updating extension or customizing the external project dependency graph when bundling extension in custom application.