ITK/Release 4/Modularization/Use Cases

From KitwarePublic
Jump to navigationJump to search

This page lists typical use cases of the ITK modularization

BioFormats

  • Goal: Distribute a binary build of the BioFormats ITK binding
  • Requirement: Include on it only the pieces of ITK that are used.
  • In practice:
    • Enable only the "kernel" and "io-base" modules
    • make
    • make package


RITK

The R-Package that contains SimpleITK should only carry with it the source code of ITK that is needed for the build.

  • Goal: Distribute a source package that CRAN can build for many platforms
  • Requirement: It must be self-contained. It must be as small as possible
  • In practice:
    • Enable only the modules used by SimpleITK

Medical Device

In order to facilitate the FDA approval process for a medical device whose software uses ITK, it is desirable and convenient to extract from ITK only the source code used by the medical device software.

  • Goal: Package the source code of ITK that is used by a medical device
  • Requirement: It must be minimal, and self-sufficient.
  • In practice:
    • During the development process of the medical device the ITK modules will be identified, and enabled
    • A customized package of ITK source code will be generated, tagged and tested for regulatory compliance.

Linux Packaging

When packaging ITK for Linux, some of the typical tasks that the packager must do are

  • Remove all the third party libraries (png, jpeg, tiff, vxl, zlib...)
  • Remove the "Review" directory

Once ITK is modularized, these two tasks should become a lot simpler.

A Linux packager will be able to

  • Start from a full ITK source tree,
  • Configure it with CMake and
    • enable / disable the proper set of modules
  • Build it for testing
  • Package it with CPack

The resulting binary and source packages will contain only the modules that were enabled at configuration time.