How to Build IGSTK(old)

From IGSTK
Jump to: navigation, search

Introduction

This page describes the process to be followed in order to build IGSTK. First, you must download, configure and build three toolkits that are required in order to build IGSTK. These three toolkits are VTK, ITK and FLTK.

  • VTK provides visualization functionalities
  • ITK provides image processing, segmentation and registration
  • FLTK provides Graphical User Interface (GUI) functionalities

It is very important to make sure that you use the appropriate versions of those toolkits since that will ensure that your generated code is coherent with the current version of IGSTK.

Versions of Toolkits

IGSTK relies on other toolkits. This page specifies the versions of those other toolkits that must be used in order to build the current version of IGSTK.


Note 1: FLTK 1.1 already has a CMakeLists.txt file, therefore it can be configured with CMake.

Note 2: WARNING This version of FLTK 1.1 has been known to produce problems when compiled for Release in Visual Studio 7.1. A more stable snapshot should be selected for a future release of IGSTK.

Note 3: How to obtain ITK 3.0 through CVS:

 cvs -d :pserver:anonymous@www.itk.org:/cvsroot/Insight login
 answer with password : insight
 cvs -d :pserver:anonymous@www.itk.org:/cvsroot/Insight co -r ITK-3-0 Insight
 

Note 3 : How to obtain VTK 5.0

Downloadable versions of VTK 5.0 are available

http://www.vtk.org/get-software.php#latest

Building IGSTK version 2.0

Patched version of 2.0

  • Improved tracker code (NDI Aurora & Polaris) performance, increased update rate.
  • Support for multi-channel tools on Aurora using splitter.

for Linux/Unix

IGSTK-2.0.1.tgz

for Windows

IGSTK-2.0.1.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-2.0.1.tgz

for Window

IGSTK-Sandbox-2.0.1.zip


Downloading the Source Code

Downloading a Stable Release

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-2.0.tgz

for Windows

IGSTK-2.0.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-2.0.tgz

for Window

IGSTK-Sandbox-2.0.zip


The Sandbox is an experimental area where we let the code mature until it is ready for being moved to the base IGSTK library.

Downloading from CVS

For instruction on how to use CVS please look at the page

Common CVS commands.

For downloading this particular release you must use the tag "IGSTK-2-0".

Configuring the code

The configuration process starts by running CMake on the IGSTK library.

  1. You must first create a directory that will be used for receiving the binary files resulting from the build process. This directory is called the "Binary" directory hereafter.
  1. When you run CMake
    1. in Windows you run CMakeSetup.exe and provide the Source and Binary directories for IGSTK
    2. in Linux/Unix you cd into the Binary directory and from there you type ccmake "Source-Directory".

Once the source and binary directories for IGSTK have been identified, you can select the option "configure", at this point CMake will ask you for the location of the binary directory for ITK, the binary directory for VTK and the components of FLTK.

For the case of ITK and VTK, you simply need to indicate the directories where you built those toolkit.


FLTK on the other hand requires you to indicate the location of the following components

Caveat: How to build FLTK under Visual Studio 2005 There is some missing definition for some constant when using CMake to config the FLTK project files. You need to make the following changes to have FLTK compiled under this compiler

  1. Go to the CMake configured binary directory, go to vc2005 sub-directory
  2. Open the config.h file
  3. Change the following line
#define HAVE_GL
to
#define HAVE_GL 1
  1. Around line 124, change the lines to
#define U16 unsigned short
#define U32 unsigned
#undef  U64


FLTK Elements to be provided to CMake
CMake Variable Windows Linux
FLTK_INCLUDE_DIR fltk-1.1.6 fltk-1.1.6
FLTK_FLUID_EXECUTABLE fluid.exe fluid
FLTK_BASE_LIBRARY fltk.lib fltk.a
FLTK_FORMS_LIBRARY fltkforms.lib fltk_forms.a
FLTK_IMAGES_LIBRARY fltkimages.lib fltk_images.a
FLTK_GL_LIBRARY fltkgl.lib fltk_gl.a

The following image illustrates a screenshot of CMakeSetup when configuring IGSTK. Note the entries on the Source and Binary directories, the selection of the compiler on the top-right corner.

Screenshot of CMake on Windows when configuring IGSTK.

Building the library

Once you have finished the configuration process, you can proceed to build the library. This is done by using the native compiler on each platform. For example Visual Studio 7.1 in MS-Window, or GCC 3.3 on Linux.

MS-Windows

IGSTK can be build on Windows with the following compilers

  • Visual Studio 6.0
  • Visual Studio 7.0
  • Visual Studio 7.1
  • Cygwin GCC 3.4

You must make sure that when you run CMake you selected the compiler that you are intending to use. CMake will generate for your a file IGSTK.dsw if you are using VC++ 6.0, or a file IGSTK.sln if you are using VC++ 7.0 or 7.1.

Simply load this file in the Visual Studio editor. Go to the menu where you can select the configuration to be built. Typical options are

  • Debug
  • Release
  • RelWithDebugInfo

You MUST use the same configuration option that you used for building ITK, VTK and FLTK.

You MUST NEVER mix libraries that have been built for different configuration types. For example, you should not try to mix an ITK built for Release with a VTK built for Debug.

After loading the project and selecting the configuration, you can proceed to build the IGSTK library. The process should take about 5 minutes in a modern convertional computer.

Linux

Once you finished configuring IGSTK with ccmake, a number of Makefiles should have been created by CMake in the IGSTK Binary directory. Since you ran ccmake from the top level of the binary directory, you are already placed on the correct location. Therefore you are ready for simply typing

  make

the build process should take about 5 minutes in a modern conventional computer.

Building the Sandbox

The Sandbox behaves like an application based on IGSTK.

The process for building it is very similar to what you just did for building the base IGSTK library.

Configuring with CMake

When configuring the Sandbox with CMake you will be prompted first for the IGSTK Binary directory. This is the directory where you just built IGSTK.

Then you will be prompted for the same components that you provided when configuring IGSTK. Namely

  • ITK
  • VTK
  • FLTK

You can simply follow the same procedure that you used for configuring IGSTK.

Building

Once you have configured the Sandbox binary directory using CMake (CMakeSetup on Windows, ccmake on Linux) you will be ready for building the Sandbox and the application examples that it contains.

  • Windows: Load the Sandbox.dsw or the Sandbox.sln file in to the environment of Visual Studio, select the compilation mode and proceed to build the code.
  • Linux/Unix: From the binary directory where you just ran ccmake, simply type "make".


The Sandbox build process should also take about 5 minutes.


If you encounter any problems please report them to the IGSTK developers list:

http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers

Building the Release Iteration-8

The release identified with the tag "Release-Iteration-8"

Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-8.tar.gz

for Windows

IGSTK-Release-Iteration-8.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-8.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-8.zip

Building the Release Iteration-7

The release identified with the tag "Release-Iteration-7"

Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-7.tar.gz

for Windows

IGSTK-Release-Iteration-7.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-7.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-7.zip


Configuring & Building the Code

Follow the same procedure used for Iteration 8

BUT use the following versions of toolkits:

  • ITK CVS snapshot of January 27, 2006 ( 01/27/06 )
  • VTK 5.0 of CVS
  • FLTK 1.1
  • CMake 2.2

Building the Release Iteration-6

The release identified with the tag "Release-Iteration-5" included new IGSTK components such as

  • ImageSpatialObject
  • ImageSpatialObjectRepresentation

Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-6.tar.gz

for Windows

IGSTK-Release-Iteration-6.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-6.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-6.zip


Configuring & Building the Code

Follow the same procedure used for Iteration 7

BUT use the following versions of toolkits:


Note 1: ITK 2.4 was released on November 30th 2005.

Note 2: FLTK 1.1 already has a CMakeLists.txt file, therefore it can be configured with CMake.


Building the Release Iteration-5

The release identified with the tag "Release-Iteration-5" included new IGSTK components such as

  • Polaris Tracker
  • Aurora Tracker
  • Communications
  • Logging (added to ITK)

Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-5.tar.gz

for Windows

IGSTK-Release-Iteration-5.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-5.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-5.zip


Configuring & Building the Code

Follow the same procedure used for Iteration 6

BUT use the following versions of toolkits:


  • ITK 2.0
  • VTK 4.4
  • FLTK 1.1.6
  • CMake 2.0.5


Building the Release Iteration-2

The release identified with the tag "Release-Iteration-2" was the end result of a first development iteration for which the goal was to create a minimal application involving

  • a Tracker,
  • a Viewing element
  • a Data Representation structure

The tracker was implemented in the form of a MouseTracker, the Viewer element was a minimal 3D window and the Data Representation Structure was a couple of ITK Spatial Objects wrapped as IGSTK representation objects. For details on the rationale behind this prototype application please look at the link Mouse tracking Sphere.

Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-2.tar.gz

for Windows

IGSTK-Release-Iteration-2.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-2.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-2.zip


The Sandbox is an experimental area where we let the code mature until it is ready for being moved to the base IGSTK library. Note that as code matures in the Sandbox it gets promoted to the main IGSTK module. Therefore, classes that you may have seen in the Sandbox on release 1, may now be present in the main IGSTK in release 2. Some other classes from the Sandbox may have been dropped if they were not considered fit for being promoted in to the main IGSTK module.

The source code can also be downloaded by using CVS. For instruction on how to use CVS please look at the page Common CVS commands. For downloading this particular release you must use the tag "Release-Iteration-2".

Configuring & Building the Code

Follow the same procedure used for Iteration 5

Building the Release Iteration-1

The release identified with the tag "Release-Iteration-1" was the end result of a first development cycle.


Downloading the Source Code

1. Download the tar-zipped file with the source code for the base IGSTK library

for Linux/Unix

IGSTK-Release-Iteration-1.tar.gz

for Windows

IGSTK-Release-Iteration-1.zip


2. Download the tar-zipped file with the source code for the base Sandbox library

for Linux/Unix

IGSTK-Sandbox-Release-Iteration-1.tar.gz

for Window

IGSTK-Sandbox-Release-Iteration-1.zip


Configuring & Building the Code

Follow the same procedure used for Iteration 5