ITK/Configuring and Building

From KitwarePublic
Revision as of 18:20, 21 April 2012 by Matt.mccormick (talk | contribs)
Jump to navigationJump to search

Configuring And Building

This page describes the various ways of configuring and building ITK in common configurations. Recommended configurations are incldued for:

  • Linux
  • Mac OS X
  • Solaris
  • AIX
  • Windows

It is strongly recommended that you build ITK in a separate tree. This is described elsewhere (?).


ITK is configured with the cross-platform configuration tool, CMake. CMake will create project files for your build system of choice, e.g. Makefile's, Visual Studio project files, KDevelop project files, etc. The content of these project files is based on a domain specific language kept in CMakeLists.txt files distributed with the source code, the results of introspecting of the software and hardware features available on a system, and the preferences of the user building the system.

There are three executables used to perform a CMake:

  1. cmake: A command line interface.
  2. ccmake: An ncurses (terminal) GUI. (only available on Unix-like systems).
  3. cmake-gui: A Qt-based GUI.

To perform a CMake configuration, we need three things:

  1. The source code directory.
  2. A different to perform the build (make this directory manually).
  3. One of the three CMake executables.

Persistent configuration variables are stored in a file called CMakeCache.txt that lives at the top level of the build directory.

Using a predefined Configuration

CMake can be run interactively to configure a build, in which case all settings begin with system defaults (as determined by CMakeLists.txt) and the user customises them.

Alternatively, a predefined configuration (such as those shown above) can be provided, which will provide initial settings for the build (also known as priming). By creating a file called CMakeCache.txt in the top level of the build directory, the settings defined therein will be used to override the default settings for the build.

Wrapping ITK

ITK can be wrapped for several different languages such as Python, Tcl and Java.

ITK: [Welcome | Site Map]