ITK/Configuring and Building

From KitwarePublic
< ITK
Revision as of 14:41, 11 July 2004 by Gavinb (talk | contribs) (Created (from antonym))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 (?).

CMake Configuration for Linux

This configuration is the one used to build the packages for Debian GNU/Linux, but should work for any distribution just fine. It assumes that you already have certain libraries installed (which will almost always be the case), specifically:

  • libzlib
  • libjpg
  • libtiff
  • libpng

The rpath option is disabled, as it is only really needed if you install the libraries into someplace other than a standard directory that is on your LD_LIBRARY_PATH.

You can either paste this into a CMakeCache.txt or change the settings manually by running ccmake.

# This is the Kickstart CMakeCache file for the Debian build of ITK.
# Only those settings that are changed from the default are specified.
 
// For some reason it defaults to c++
CMAKE_CXX_COMPILER:STRING=g++
 
// Don't build examples now (let the user later)
BUILD_EXAMPLES:BOOL=OFF
 
// Build ITK with shared libraries
BUILD_SHARED_LIBS:BOOL=ON
 
// Don't bother building the testing tree
BUILD_TESTING:BOOL=OFF
 
// Give us an optimised release build
CMAKE_BUILD_TYPE:STRING=RELWITHDEBINFO
 
// Install path prefix, prepended onto install directories
CMAKE_INSTALL_PREFIX:PATH=/usr
 
// The code still uses the older #include <iostream.h> style
CMAKE_CXX_FLAGS:STRING=-Wno-deprecated 
 
// We do not want rpath enabled
CMAKE_SKIP_RPATH:BOOL=ON
 
// We haven't packaged this (yet)
ITK_DATA_ROOT:PATH=ITK_DATA_ROOT_NOTFOUND
 
// Use the system libraries for these
ITK_USE_SYSTEM_JPEG:BOOL=ON
ITK_USE_SYSTEM_PNG:BOOL=ON
ITK_USE_SYSTEM_TIFF:BOOL=ON
ITK_USE_SYSTEM_ZLIB:BOOL=ON
 
//Build cswig Python wrapper support
ITK_CSWIG_PYTHON:BOOL=ON
 
//Build cswig Tcl wrapper support
ITK_CSWIG_TCL:BOOL=ON

CMake Configuration for Mac OS X

This configuration has been tested on Mac OS X Panther 10.3, with XCode 1.1 and 1.2. It presumes that Fink has been installed, with the following libraries in the default location under /sw:

  • libjpeg
  • libtiff
  • libpng
  • libzilb
//Name of build on the dashboard
BUILDNAME:STRING=Darwin-g++

//Build source documentation using doxygen
BUILD_DOXYGEN:BOOL=OFF

//Build the Examples directory.
BUILD_EXAMPLES:BOOL=OFF

//Build ITK with shared libraries.
BUILD_SHARED_LIBS:BOOL=ON

//Build the testing tree.
BUILD_TESTING:BOOL=OFF

//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
//
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo

//C++ compiler
CMAKE_CXX_COMPILER:STRING=g++

//Use the system's jpeg library.
ITK_USE_SYSTEM_JPEG:BOOL=ON

//Use the system's png library.
ITK_USE_SYSTEM_PNG:BOOL=ON

//Use the system's tiff library.
ITK_USE_SYSTEM_TIFF:BOOL=ON

//Use an outside build of VXL.
ITK_USE_SYSTEM_VXL:BOOL=OFF

//Use the system's zlib library.
ITK_USE_SYSTEM_ZLIB:BOOL=ON

//What is the path where the file jpeglib.h can be found
JPEG_INCLUDE_DIR:PATH=/sw/include

//Where can the jpeg library be found
JPEG_LIBRARY:FILEPATH=/sw/lib/libjpeg.dylib

//Where can the png library be found
PNG_LIBRARY:FILEPATH=/sw/lib/libpng.dylib

//What is the path where the file png.h can be found
PNG_PNG_INCLUDE_DIR:PATH=/sw/include

//What is the path where the file tiff.h can be found
TIFF_INCLUDE_DIR:PATH=/sw/include

//Where can the tiff library be found
TIFF_LIBRARY:FILEPATH=/sw/lib/libtiff.dylib

//What is the path where the file zlib.h can be found
ZLIB_INCLUDE_DIR:PATH=/usr/include

//Where can the z library be found
ZLIB_LIBRARY:FILEPATH=/usr/lib/libz.dylib

CMake Configuration for Solaris

CMake Configuration for AIX

CMake Configuration for Windows

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.