TubeTK/Build Instructions: Difference between revisions
Line 71: | Line 71: | ||
* <code> cd TubeTK-Release </code> | * <code> cd TubeTK-Release </code> | ||
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. We recommend using a cmake with a GUI configuration editor. This is the default on Windows and Mac. On Linux (or from Mac command-line) type: | ||
* <code> cmake ../TubeTK </code> | * <code> cmake-gui ../TubeTK </code> | ||
Set the following CMake variables | Set the following CMake variables | ||
* TubeTK_USE_SLICER = On | * TubeTK_USE_SLICER = On | ||
* Slicer_DIR = <Path to your Slicer build directory> | * Slicer_DIR = <Path to your Slicer build directory> | ||
* Linux and Mac only, also set: | |||
** CMAKE_BUILD_TYPE = <same build type as Slicer installation: Debug or Release> | |||
== Build == | == Build == |
Revision as of 15:01, 30 March 2016
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
CMake
- CMake 3.0 or greater is required.
- The Mac/Windows binaries can be downloaded from http://cmake.org
- The linux installation from source is easiest. Assuming an older version of cmake is already installed, and you want to install v3.4.1, do the following:
sudo apt-get build-dep cmake sudo apt-get install libgtkmm-2.4-dev glade-gtk2 libglademm-2.4-dev git clone http://github.com:/Kitware/CMake.git cd CMake git checkout v3.4.1 cd .. mkdir CMake-Release cd CMake-Release cmake ../CMake -DCMAKE_BUILD_TYPE=Release make -j8
Slicer
- 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:
Notes:
- To address the multiple dependencies required (and optional) for VTK, we recommend installing the build dependencies of ParaView prior to building Slicer:
sudo apt-get build-dep paraview
- 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 (optional)
Download and build Boost:
Notes:
- 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
- Mac: if compiling for compatibility with older versions of MacOS, you may need to build boost using the following command:
./b2 toolset=clang cxxflags="-stdlib=libstdc++" linkflags="-stdlib=libstdc++" link=static install -a
- Slicer and TubeTK matches its build environment with the environment used to build qmake. This means that all code build using Slicer and TubeTK must also build using that environment. So, on some systems you will need to specify stdlib=libstdc++ (for 10.8) or stdlib-libc++ (for 10.9 and beyond). See the comments starting in line 103 of https://github.com/Slicer/Slicer/blob/master/CMake/SlicerBlockSetCMakeOSXVariables.cmake
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. We recommend using a cmake with a GUI configuration editor. This is the default on Windows and Mac. On Linux (or from Mac command-line) type:
cmake-gui ../TubeTK
Set the following CMake variables
- TubeTK_USE_SLICER = On
- Slicer_DIR = <Path to your Slicer build directory>
- Linux and Mac only, also set:
- CMAKE_BUILD_TYPE = <same build type as Slicer installation: Debug or Release>
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".
- 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.
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
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.
- Windows
- Linux
sudo apt-get install git
Qt
Install version 4.8.6
- Windows
- You will want the 64-bit version of Qt, which must be compiled from source.
- http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Build_Instructions/Prerequisites/Qt#Windows_3
- Linux
- Qt is included with most versions of Linux
- Mac
- Download the installer from
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:
- https://www.python.org/downloads/
- Note that python is already installed in most Linux and Mac variants.
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".
- 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.
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