Difference between revisions of "TubeTK/Build Instructions"

From KitwarePublic
Jump to navigationJump to search
Line 1: Line 1:
= Stand-Alone or Slicer-Dependent Builds =
+
= Stand-Alone =
  
There are two ways in which TubeTK can be used:
+
In this build format, TubeTK produces a set of libraries and command-line programs that can be used to process images from the command line and to build other applications.
# "Stand-Alone"
 
#* TubeTK can be built to produce a set of libraries and command-line programs that can be used to build other applications.
 
# "Slicer-Dependent"
 
#* TubeTK is built using an existing Slicer build, so that TubeTK's methods can be used from within Slicer.
 
  
Both build types are tested nightly on Windows, OS X, and Linux machines.
+
This build format is tested nightly on Windows, OS X, and Linux machines.
  
Both build process consists of the following steps
+
This build format has the following steps:
 
* Install requirements and options
 
* Install requirements and options
 
* Download source
 
* Download source
Line 42: Line 38:
 
*** http://download.qt.io/archive/qt/4.8/
 
*** http://download.qt.io/archive/qt/4.8/
  
=== Boost ===
+
=== Boost (optional) ===
  
 
Download and build Boost:
 
Download and build Boost:
Line 53: Line 49:
 
** <code> ./bjam cxxflags=-fPIC cflags=-fPIC -a link=static -j14 </code>
 
** <code> ./bjam cxxflags=-fPIC cflags=-fPIC -a link=static -j14 </code>
  
 +
=== Python (optional) ===
  
=== Slicer (Required for Slicer-Dependent Build) ===
+
Versions 2.7.x is supported at this time.
  
* If you are building the Stand-Alone version of TubeTK, you do not need to build Slicer.
+
Download and install per system instructions at:
 
+
* https://www.python.org/downloads/
* If you are building the Slicer-Dependent version of TubeTK, you must build Slicer from source:
+
** Note that python is already installed in most Linux and Mac variants.
** Source: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Build_Instructions
 
 
 
Oddities
 
* There is a bug in Slicer v4.4.0 that prevents it from compiling on OSX 10.9.  The simple fix is pending integration into Master.  You can apply it manually.  See https://github.com/Slicer/Slicer/pull/189/files
 
  
 
== Download Source ==
 
== Download Source ==
Line 77: Line 70:
 
Within that compilation directory, run cmake and point it to where the source is located
 
Within that compilation directory, run cmake and point it to where the source is located
 
  cmake ../TubeTK
 
  cmake ../TubeTK
 
If you want to create the Slicer-Dependent version of TubeTK, set the following CMake variables
 
* Build_TYPE = <same build type as Slicer installation: Debug or Release>
 
* TubeTK_USE_SLICER = On
 
* Slicer_DIR = <Path to your Slicer build directory>
 
  
 
== Build ==
 
== Build ==
Line 100: Line 88:
 
  cd $HOME/TubeTK-Release/TubeTK-build
 
  cd $HOME/TubeTK-Release/TubeTK-build
 
  make
 
  make
 +
 +
= Slicer-dependent build =
 +
 +
This is the recommended build process.
 +
 +
It uses a compiled version of Slicer to provide its dependencies. 
 +
 +
In this build format,
 +
# TubeTK produces a set of libraries and command-line programs that can be used to process images from the command line and to build other applications.
 +
# TubeTK methods are available from within the Slicer application against which it is built.
 +
 +
This build format is tested nightly on Windows, OS X, and Linux machines.
 +
 +
This build format has the following steps:
 +
* Install requirements and options
 +
* Download source
 +
* Configure using CMake
 +
* Build
 +
 +
== Install Requirements and Options ==
 +
 +
=== Slicer (Required for Slicer-Dependent Build) ===
 +
 +
* If you are building the Stand-Alone version of TubeTK, you do not need to build Slicer.
 +
 +
* If you are building the Slicer-Dependent version of TubeTK, you must build Slicer from source:
 +
** Source: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Build_Instructions
 +
 +
Oddities
 +
* There is a bug in Slicer v4.4.0 that prevents it from compiling on OSX 10.9.  The simple fix is pending integration into Master.  You can apply it manually.  See https://github.com/Slicer/Slicer/pull/189/files
 +
 +
=== Boost ===
 +
 +
Download and build Boost:
 +
* http://www.boost.org/
 +
 +
Oddities
 +
* Linux: TubeTK creates dynamic libraries that have static links to Boost libraries.  Since Boost static libraries on Linux are not compiled with fPIC, you must compile Boost from source to use it with TubeTK.
 +
** <code> ./bootstrap.sh <br> </code>
 +
** <code> ./bjam -j14 </code>
 +
** <code> ./bjam cxxflags=-fPIC cflags=-fPIC -a link=static -j14 </code>
 +
 +
== Download Source ==
 +
 +
Download the source via git
 +
* <code> git clone https://github.com/KitwareMedical/TubeTK TubeTK </code>
 +
 +
== Configure ==
 +
 +
Create a directory, outside of the source directory, to hold the compilation
 +
* <code> mkdir TubeTK-Release </code>
 +
* <code> cd TubeTK-Release </code>
 +
 +
Within that compilation directory, run cmake and point it to where the source is located
 +
* <code> cmake ../TubeTK </code>
 +
 +
Set the following CMake variables
 +
* Build_TYPE = <same build type as Slicer installation: Debug or Release>
 +
* TubeTK_USE_SLICER = On
 +
* Slicer_DIR = <Path to your Slicer build directory>
 +
 +
== Build ==
 +
 +
=== Windows ===
 +
Load the TubeTK solution file in Visual Studio
 +
* <code> Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln </code>
 +
** 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.
 +
* <code> Right click on the "ALL_BUILD" project and select "Build". </code>
 +
** 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.
 +
*** <code> Right click on the "TubeTK" project and select "Build". </code>
 +
 +
==== 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.
 +
* <code> cd $HOME/TubeTK-Release </code>
 +
* <code> make </code>
 +
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.
 +
* <code> cd $HOME/TubeTK-Release/TubeTK-build </code>
 +
* <code> make </code>
  
 
= Build Using Slicer =
 
= Build Using Slicer =

Revision as of 10:10, 13 March 2015

Stand-Alone

In this build format, TubeTK produces a set of libraries and command-line programs that can be used to process images from the command line and to build other applications.

This build format is tested nightly on Windows, OS X, and Linux machines.

This build format has the following steps:

  • Install requirements and options
  • Download source
  • Configure using CMake
  • Build

Install Requirements and Options

CMake (Requirement)

Install the latest stable release.

GIT (Requirement)

Install the latest stable release.

Qt

Install version 4.8.6

Boost (optional)

Download and build Boost:

Oddities

  • Linux: TubeTK creates dynamic libraries that have static links to Boost libraries. Since Boost static libraries on Linux are not compiled with fPIC, you must compile Boost from source to use it with TubeTK.
    • ./bootstrap.sh
    • ./bjam -j14
    • ./bjam cxxflags=-fPIC cflags=-fPIC -a link=static -j14

Python (optional)

Versions 2.7.x is supported at this time.

Download and install per system instructions at:

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 cmake and point it to where the source is located

cmake ../TubeTK

Build

Windows

Load the TubeTK solution file in Visual Studio

  • 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

Slicer-dependent build

This is the recommended build process.

It uses a compiled version of Slicer to provide its dependencies.

In this build format,

  1. TubeTK produces a set of libraries and command-line programs that can be used to process images from the command line and to build other applications.
  2. TubeTK methods are available from within the Slicer application against which it is built.

This build format is tested nightly on Windows, OS X, and Linux machines.

This build format has the following steps:

  • Install requirements and options
  • Download source
  • Configure using CMake
  • Build

Install Requirements and Options

Slicer (Required for Slicer-Dependent Build)

  • If you are building the Stand-Alone version of TubeTK, you do not need to build Slicer.

Oddities

Boost

Download and build Boost:

Oddities

  • Linux: TubeTK creates dynamic libraries that have static links to Boost libraries. Since Boost static libraries on Linux are not compiled with fPIC, you must compile Boost from source to use it with TubeTK.
    • ./bootstrap.sh
    • ./bjam -j14
    • ./bjam cxxflags=-fPIC cflags=-fPIC -a link=static -j14

Download Source

Download the source via git

Configure

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

  • mkdir TubeTK-Release
  • cd TubeTK-Release

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

  • cmake ../TubeTK

Set the following CMake variables

  • Build_TYPE = <same build type as Slicer installation: Debug or Release>
  • TubeTK_USE_SLICER = On
  • Slicer_DIR = <Path to your Slicer build directory>

Build

Windows

Load the TubeTK solution file in Visual Studio

  • 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

Build Using Slicer