Contract tests with dependencies

@ben.boeckel We have some external repositories (aeva/session) that need third-party libraries (ITK, ITKVtkGlue) beyond what SMTK provides. The superbuild which SMTK uses may optionally provide the third-party libraries, but…

  1. how do we get the contract test to find them reliably?
  2. If a platform could install these as packages provided by the platform instead of relying on a superbuild, would that change the way the contract test should be configured?

Contract tests are basically a set of ExternalProject_add calls. You can add more than one and have dependencies between them.

“platform”?

If the aeva session ends up building ITK as part of its build, we’ll want to forward sccache to them (if set). We’ll also likely need to increase test timeout limits there.

Another alternative may be to trigger an aeva session pipeline with an SMTK hash to test. Utkarsh has done this between ParaView and its superbuild.