Optimizing Build Time and Implements in SlicerCustomAppTemplate

Hello all,

I’m looking to create a working environment using SlicerCustomAppTemplate. There are three main things I want to do:

  1. Modify and add code such as .cxx files within the CustomApp/Application folder.
  2. Modify and add loadable or scriptable modules in CustomApp/Modules folder.
  3. Make slight modifications to the Slicer source code.

However, every time I make small modifications and try to build the SlicerCustomAppTemplate project, the entire Slicer is rebuilt, which takes a long time. Is there a way to resolve this?

Alternatively, should I implement at the module level and only use SlicerCustomAppTemplate when packaging? In this case, how should modified implementations of Slicer’s source be applied?

Best,

Yes, changes to C++ code require rebuilding and that can take a while. But at least in the main Slicer app it’s possible to only rebuild the specific shared libraries involved in the change (as long as the change is in the implementation C++ code and not in the header). You should be able to do the same with the custom app.

In general it’s good to think of the C++ code as core functionality with a robust interface to implement the performance-critical parts of the code, and these can be developed and tested in isolation. Then the Python modules assemble these features into an application-level interface that can be iteratively refined more efficiently.