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
  • GIT

CMake

Install the latest stable release.

GIT

Install the latest stable release.

sudo apt-get install git

Optionally Install Recommendations

  • Slicer
  • Boost

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/TubeTK/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

Microsoft Visual Studio

  • 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.