TubeTK/Build Instructions

From KitwarePublic
Jump to navigationJump to search

Process

TubeTK has been tested on Windows, OS X, and Linux.

The process consists of the following steps

  • Install requirements
  • Optionally install recommendations
  • Download source
  • Configure using CMake
  • Build

Install Requirements

CMake

Install the latest stable release.

GIT

Install the latest stable release.

sudo apt-get install git

Optionally Install Recommendations

Slicer

Download and install the latest stable release of Slicer. You can use either binaries or compile from source.

Oddities

Boost

Download and build Boost:

Oddities

  • We do not recommend the pre-built versions of Boost on most modern platforms. Most binary distributions don't support 64bit builds. You should build with appropriate options, such as:
./bootstrap.sh --prefix=/usr/local/boost-1_57
sudo ./b2 address-model=64 cflags=-fPIC cxxflags="-fPIC -std=c++11" link=static install

Download Source

Download the source via git

git clone https://github.com/KitwareMedical/TubeTK TubeTK

Configure

Create a directory, outside of the source directory, to hold the compilation

mkdir TubeTK-Release
cd TubeTK-Release

Within that compilation directory, run ccmake and point it to where the source is located

ccmake ../TubeTK

Build

Windows

Load the TubeTK solution file

  • Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln

Perform the initial build using your compiler at the top-level of TubeTK-Release. This will update and build the libraries that TubeTK depends on (ex. VTK, ITK), and then build TubeTK.

  • Right click on the "ALL_BUILD" project and select "Build".

Subsequent builds should be initiated in the subdir TubeTK-Release/TubeTK-build to save time. This will build TubeTK only. You may have to periodically build from the top-level of TubeTK-Release to get updates to the libraries that TubeTK depends on.

  • Right click on the "TubeTK" project and select "Build".

Linux and OS X

Perform the initial build using your compiler at the top-level of TubeTK-Release. This will update and build the libraries that TubeTK depends on (ex. VTK, ITK), and then build TubeTK.

cd $HOME/TubeTK-Release
make

Subsequent builds should be initiated in the subdir TubeTK-Release/TubeTK-build to save time. This will build TubeTK only. You may have to periodically build from the top-level of TubeTK-Release to get updates to the libraries that TubeTK depends on.

cd $HOME/TubeTK-Release/TubeTK-build
make

Advanced

Using KWStyle

For introductory information, see: http://public.kitware.com/KWStyle/.

 git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle
 mkdir $HOME/KWStyle-Release
 cd $HOME/KWStyle-Release
 cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle
 make
 sudo make install
 cd $HOME/TubeTK-Release
 cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .
 make
 make StyleCheck

Using a pre-existing ITK, JsonCpp, or VTK installation

You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.

cd $HOME/TubeTK-Release
cmake -DUSE_SYSTEM_JSONCPP .

You can also configure CMake variables to use an existing ITK or VTK installation instead of an embedded versions. This is not recommended, because of inter-dependencies that require specific version of these libraries, and built using specific options, to be used.

  • USE_SYSTEM_ITK: OFF
    • If "ON", then you can tell TubeTK to use an ITK build that is already present on your system (using the CMake variable ITK_DIR).
  • USE_SYSTEM_VTK: OFF
    • If "ON", then you can tell TubeTK to use a VTK build that is already present on your system (using the CMake variable VTK_DIR). See the warning below.
  • Dependency on VTK version and build options
    • Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)
    • The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.