1 / 10

Slicer Building and Deployment

Slicer Building and Deployment. Steve Pieper, PhD. Overall Goals. Building: Support cross platform building of Slicer Base plus run-time loadable modules Use VTK/ITK CMake infrastructure, but avoid writing a lot of code in CMake script Deployment:

oona
Download Presentation

Slicer Building and Deployment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Slicer Building and Deployment Steve Pieper, PhD

  2. Overall Goals • Building: • Support cross platform building of Slicer Base plus run-time loadable modules • Use VTK/ITK CMake infrastructure, but avoid writing a lot of code in CMake script • Deployment: • Capture all dynamic libraries into redistributable platform specific archive • Run off a CD-ROM or download with no installation and minimal system dependencies

  3. Slicer Solution • slicer_variables.tcl • A few high-level configurations • genlib.tcl • Does cvs checkout of tagged CMake, VTK, ITK, Tcl/Tk to generate compatible libraries • cmaker.tcl • Detects modules, configures for libraries, and builds • launch.tcl • Sets platform-specific environment variables so loadable libraries are correctly detected • tarup.tcl • Makes a platform-specific archive including all shared libraries and tcl scripts

  4. Slicer_variables.tcl • Set high-level configuration • Custom locations of lib directories • Compiler choice • CMake Generator Type • E.g. Makefiles or Visual Studio • Build type (debug or release) • …

  5. Genlib.tcl • Create the needed libraries so you don’t have to! • Cmake, tcl, tk, itcl, iwidgets, BLT, VTK, ITK • Process • Check out tagged cvs versions • Configure / cmake • Make install to local directory

  6. Cmaker.tcl • Script to build slicer and it’s modules • Automatically detect build targets from the Modules directory • Specify Extra Modules from the SLICER_MODULES environment variable

  7. Launch.tcl • Uses slicer_variables.tcl to identify libraries • Sets up the execution environment to find all shared libraries and support tcl files • PATH and LD_LIBRARY_PATH (linux, solaris) • Path (windows) • DYLD_LIBRARY_PATH (mac) • TCLLIBPATH, TCL_LIBRARY, TK_LIBRARY (all) • Starts slicer in subshell

  8. Launchers • Rely on “Starkits” • Stand Alone Runtime Kits • Use tcl virtual file system technology to make single executable tcl/tk distribution that also includes custom scripts • Allows detection of SLICER_HOME automatically so that all other paths can be relative to the launcher executable • Why? • Cross-Platform • Launch logic localized to single script for easier maintenance (not a .bat and a .sh file) • See Scripts/launcher for more detail

  9. Tarup.tcl • Run from within Slicer • Builds Archive distribution for deployment • Platform specific launcher • Shared libraries, tcl code, data for • Lib • Base • Modules • Extra platform-specific support libs

  10. Result • Cross-platform build and deployment solution for VTK/ITK based interactive applications • Tested across the last 3 slicer releases

More Related