# Where to put libraries needed for installation/import?

**URL:** <https://discourse.slicer.org/t/where-to-put-libraries-needed-for-installation-import/44092>\
**Category:** Development\
**Tags:** build, python\
**Created:** [August 15, 2025, 8:08am UTC](https://discourse.slicer.org/t/where-to-put-libraries-needed-for-installation-import/44092 "2025-08-15T08:08:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Canada101](https://avatars.discourse-cdn.com/v4/letter/c/8edcca/32.png) [@Canada101](https://discourse.slicer.org/u/Canada101)\
**Post date:** [August 15, 2025, 8:08am UTC](https://discourse.slicer.org/t/where-to-put-libraries-needed-for-installation-import/44092/1 "2025-08-15T08:08:13Z")

</div>

I am developing an extension and am in the very early phases. I see in the 3d slicer documentation that there is a superbuild extension template, does that whole template replace the CmakeLists file the extension creation template gives you?

---

<div class="post-metadata">

**Author:** ![Thibault\_Pelletier](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/thibault_pelletier/32/4767_2.png) [@Thibault\_Pelletier](https://discourse.slicer.org/u/Thibault_Pelletier)\
**Post date:** [August 19, 2025, 6:17am UTC](https://discourse.slicer.org/t/where-to-put-libraries-needed-for-installation-import/44092/2 "2025-08-19T06:17:18Z")

</div>

Hi @Canada101,

The SuperBuild template is meant for extensions that have external C++ dependencies they need to build prior to C++ CLI or Loadable extensions.

In the CMakeLists.txt, a few variables will indicate that you are working in a SuperBuild:

```auto
set(EXTENSION_BUILD_SUBDIRECTORY inner-build)
set(SUPERBUILD_TOPLEVEL_PROJECT inner)
mark_as_superbuild(Slicer_DIR)

#-----------------------------------------------------------------------------
# SuperBuild setup
option(${EXTENSION_NAME}_SUPERBUILD "Build ${EXTENSION_NAME} and the projects it depends on." ON)
mark_as_advanced(${EXTENSION_NAME}_SUPERBUILD)
if(${EXTENSION_NAME}_SUPERBUILD)
  include("${CMAKE_CURRENT_SOURCE_DIR}/SuperBuildPrerequisites.cmake")
  include("${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild.cmake")
  return()
endif()

```

If you are only using Python for your extension or only depend on Slicer’s libraries (VTK / ITK / CTK / Qt …) for your C++ extension, you can leave aside the SuperBuild.

Best,  
Thibault
