|
|
Line 11: |
Line 11: |
| It is strongly recommended that you build ITK in a separate tree. This is described elsewhere (?). | | It is strongly recommended that you build ITK in a separate tree. This is described elsewhere (?). |
|
| |
|
| === CMake Configuration for Linux === | | === CMake === |
|
| |
|
| 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:
| | ITK is configured with the cross-platform configuration tool, [http://cmake.org/ 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. |
|
| |
|
| * libzlib
| | There are three executables used to perform a CMake: |
| * libjpg
| |
| * libtiff
| |
| * libpng
| |
|
| |
|
| | | # '''cmake''': A command line interface. |
| You can either paste this into a <tt>CMakeCache.txt</tt> or change the settings manually by running <tt>ccmake</tt>.
| | # '''ccmake''': An ncurses (terminal) GUI. (only available on Unix-like systems). |
| | | # '''cmake-gui''': A Qt-based GUI. |
| # 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 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
| |
|
| |
| | |
| | |
| ==== Ebuild for Gentoo Linux ====
| |
| | |
| For Gentoo Linux you can use the ebuild found in the following [http://github.com/thewtex/portage/tree/thewtex/sci-libs/itk/ gentoo/funtoo git repository].
| |
| | |
| ==== Build for Ubuntu Linux ====
| |
| | |
| Please see the detailed [[ITK Configuring and Building for Ubuntu Linux]] notes.
| |
| | |
| === 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 [http://fink.sourceforge.net/ Fink] has been installed, with the following libraries in the default location under <tt>/sw</tt>:
| |
| | |
| * 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 == | | == Using a predefined Configuration == |
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
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:
- cmake: A command line interface.
- ccmake: An ncurses (terminal) GUI. (only available on Unix-like systems).
- cmake-gui: A Qt-based GUI.
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.