Difference between revisions of "Documentation/Nightly/Developers/Build ExtensionsIndex"

From Slicer Wiki
Jump to: navigation, search
(moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__TOC__
+
<noinclude>{{documentation/versioncheck}}</noinclude>
  
== Overview ==
+
{{documentation/banner
 
+
| text  = [https://slicer.readthedocs.io/en/latest/developer_guide/extensions.html#extensions-build-system This page has been moved to read-the-docs.]
This page explain how to build an ExtensionsIndex.
+
| background-color = 8FBC8F }}
 
 
Think of the ExtensionsIndex as a repository containing a list of [[Documentation/{{documentation/version}}/Developers/Extensions/DescriptionFile|extension description files]] (*.s4ext) used by the Slicer extensions build system to build, test, package and upload extensions on an [[Documentation/{{documentation/version}}/Developers/Extensions/Server|extensions server]].
 
 
 
Once uploaded on an extensions server, within Slicer, extensions can be installed using the [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager|extensions manager]].
 
 
 
There are two possible approaches to build it:
 
* [[#Manual_build|Manual build]]
 
* [[#Dashboard_driven_build|Dashboard driven build]]
 
 
 
== Manual build ==
 
 
 
Locally building an extension index provides a convenient way to:
 
 
 
* check [[Documentation/{{documentation/version}}/Developers/Extensions/DescriptionFile|extension description files]] are valid
 
* upload one or more extensions at ones to check that Slicer can [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager|download and install]] them
 
 
 
 
 
Given a directory containing one or more extension description files, it is possible to manually
 
configure and build the associated extensions specifying the following CMake options:
 
 
 
<table class="alternate">
 
  <tr>
 
    <td><code>Slicer_DIR</code></td>
 
    <td>Path to Slicer build tree</td>
 
  </tr>
 
  <tr>
 
    <td><code>Slicer_EXTENSION_DESCRIPTION_DIR</code></td>
 
    <td>Path to folder containing extension description files</td>
 
  </tr>
 
</table>
 
 
 
Optionally, it is also possible to specify:
 
 
 
<table class="alternate">
 
  <tr>
 
    <td><code>[http://www.cmake.org/cmake/help/v2.8.8/cmake.html#variable:CMAKE_BUILD_TYPE CMAKE_BUILD_TYPE]</code></td>
 
    <td>On unix-like platform, should match the build type of the associated Slicer build directory</td>
 
  </tr>
 
  <tr>
 
    <td><code>Slicer_UPLOAD_EXTENSIONS</code></td>
 
    <td>By default set to <code>OFF</code>.<br>If enabled, extension builds will be submitted to Slicer dashboard and associated packages will be uploaded to extensions server</td>
 
  </tr>
 
  <tr>
 
    <td><code>MIDAS_PACKAGE_URL</code></td>
 
    <td>MIDAS extensions server URL speciManualfying where the extension should be uploaded. For example http://slicer.kitware.com/midas3</td>
 
  </tr>
 
  <tr>
 
    <td><code>MIDAS_PACKAGE_EMAIL</code></td>
 
    <td>Email allowing to authenticate to the extensions server.</td>
 
  </tr>
 
  <tr>
 
    <td><code>MIDAS_PACKAGE_API_KEY</code></td>
 
    <td>Token allowing to authenticate to the extensions server.</td>
 
  </tr>
 
</table>
 
 
 
 
 
 
 
 
 
== Dashboard driven build ==
 
 
 
Continuous and nightly extension dashboards are setup on the slicer factory machine maintained by [http://www.kitware.com Kitware] folks.
 
 
 
Assuming you install your own [[Documentation/{{documentation/version}}/Developers/Extensions/Server|extensions server]], you could also distribute  your own set of extensions.
 
 
 
Remarks:
 
 
 
* Setting both nightly and continuous builds of the extensions is a key component of the Slicer continuous integration process.
 
 
 
* By customizing the [https://github.com/Slicer/Slicer/blob/master/Extensions/CMake/SlicerExtensionsDashboardScript.TEMPLATE.cmake extension template dashboard script], it is possible to easily setup dashboard client submitting to [http://slicer.cdash.org/index.php?project=Slicer4 CDash].
 
 
 
* The images reported below illustrate the dashboard submissions associated with the continuous and nightly builds of Slicer extensions associated to both Slicer trunk and Slicer 4.1.1.
 
 
 
<gallery widths=600px perrow=2>
 
File:Slicer-411-Extensions-build-system-nightly.png|Extensions-Nightly Slicer 4.1.1
 
File:Slicer-411-Extensions-build-system-continuous.png|Extensions-Continuous Slicer 4.1.1
 
File:Slicer-Extensions-build-system-nightly.png|Extensions-Nightly Slicer trunk
 
File:Slicer-Extensions-build-system-continuous.png|Extensions-Continuous Slicer trunk
 
</gallery>
 

Latest revision as of 20:18, 28 September 2021

Home < Documentation < Nightly < Developers < Build ExtensionsIndex