# Optimizing Build Time and Implements in SlicerCustomAppTemplate

**URL:** <https://discourse.slicer.org/t/optimizing-build-time-and-implements-in-slicercustomapptemplate/36690>\
**Category:** Development\
**Created:** [June 11, 2024, 2:52am UTC](https://discourse.slicer.org/t/optimizing-build-time-and-implements-in-slicercustomapptemplate/36690 "2024-06-11T02:52:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![park](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/park/32/5717_2.png) [@park](https://discourse.slicer.org/u/park)\
**Post date:** [June 11, 2024, 2:52am UTC](https://discourse.slicer.org/t/optimizing-build-time-and-implements-in-slicercustomapptemplate/36690/1 "2024-06-11T02:52:34Z")

</div>

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,

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [June 13, 2024, 9:35pm UTC](https://discourse.slicer.org/t/optimizing-build-time-and-implements-in-slicercustomapptemplate/36690/2 "2024-06-13T21:35:27Z")

</div>

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.
