2012 Summer Project Week Breakout Session:SlicerExtensions
From NAMIC Wiki
Home < 2012 Summer Project Week Breakout Session:SlicerExtensions
An extension could be seen as a delivery package bundling together one or more Slicer modules.
After installing an extension, the associated modules will be presented to the user just like the built-in ones
- Tour of the updated documentation
- Step-by-step: Extension bundling one CLI module
- Q&A
Contents
Step-by-step: Extension bundling one CLI module
Prerequisites
- Up-to-date Slicer build - This step by step tutorial has been done using Slicer r20398
Step-by-step
(These instructions are for linux/mac environments - see windows notes in the remarks section below).
- 1. Create base structure using ModuleWizard
./Utilities/Scripts/ModuleWizard.py --template ./Extensions/Testing/CLIExtensionTemplate --target ../MyFooExtension MyFooExtension
- 2. Check that expected files have been created
cd .. cd MyFooExtension/ ls cd .. cd MyFooExtension-build
- 3. Configure
cmake -DSlicer_DIR:PATH=/home/jchris/Projects/Slicer4-Superbuild-Debug/Slicer-build/ ../MyFooExtension
- 4. Build
make -j4
- 5. Hack, hack, hack and rebuild
make -j4
- 6. Read "How to obtain an API key"
- 7. Re-configure passing
MIDAS_PACKAGE_EMAIL
andMIDAS_PACKAGE_API_KEY
cd MyFooExtension-build cmake -DMIDAS_PACKAGE_EMAIL:STRING=jchris.fillionr@kitware.com -DMIDAS_PACKAGE_API_KEY:STRING=<YOUR_API_KEY> .
- 8. Publish
make ExperimentalUpload
Remarks
- People seems to like the concept :)
- Add institution to register box
- No facebook / Linkedin instead
- Search box
- "I use it" button ?
- Associated publications / Google scholar ?
- Label the newly installed modules .. or show a popup ?
- Remember Jim about the doc stuff: Migrate 1 module to extension to N ones
- Add .gitignore to extension ... ?
- Make is clear that API key is sensitive
- Category for work in progress extension ?
- Add stats/notes/indication to indicate active/inactive support of extension (e.g. 'last commit date', 'Dashboard link', '30-day development activity' (similar to GitHub's tracking))
Windows
If you do not have another python installation on your machine, you can use the python that is build with slicer to run the module creation script. The invocation from cmd prompt looks something like this:
d:\pieper\s4\Slicer>..\super\python-build\PCbuild\amd64\python.exe .\Utilities\Scripts\ModuleWizard.py --template ./Extensions/Testing/LoadableExtensionTemplate --target ./myloadable myloadable
From there you can use the regular windows procedures like cmake-gui and visual studio to build the extension.