https://public.kitware.com/Wiki/api.php?action=feedcontributions&user=Jamie.snape&feedformat=atomKitwarePublic - User contributions [en]2024-03-29T14:03:50ZUser contributionsMediaWiki 1.38.6https://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54079TubeTK/Build Instructions2013-09-03T20:48:55Z<p>Jamie.snape: /* 1. Have CTest do all of the remaining work */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libgl1-mesa-dev libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
:Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
:OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
:Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:Fedora and Ubuntu:<br />
:<code>ctest -S TubeTK_InitialBuild_Linux.cmake</code><br />
:Red Hat Enterprise Linux:<br />
:<code>ctest28 -S TubeTK_InitialBuild_Linux.cmake</code><br />
:OS X:<br />
:<code>ctest -S TubeTK_InitialBuild_Mac.cmake</code><br />
:Windows:<br />
:<code>ctest -S TubeTK_InitialBuild_Windows.cmake</code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard].<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
* Fedora, Ubuntu, and OS X:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
* Red Hat Enterprise Linux:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake28 -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54078TubeTK/Build Instructions2013-09-03T20:39:44Z<p>Jamie.snape: /* Dependencies */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libgl1-mesa-dev libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
* Fedora, Ubuntu, and OS X:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
* Red Hat Enterprise Linux:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake28 -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54077TubeTK/Build Instructions2013-09-03T20:37:15Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
* Fedora, Ubuntu, and OS X:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
* Red Hat Enterprise Linux:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake28 -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54076TubeTK/Build Instructions2013-09-03T20:37:03Z<p>Jamie.snape: /* 2. Download, configure, and build manually */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
* Fedora, Ubuntu, and OS X:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
* Red Hat Enterprise Linux:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake28 -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54075TubeTK/Build Instructions2013-09-03T20:36:14Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
* Fedora, Ubuntu, and OS X:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
* Red Hat Enterprise Linux:<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake28 -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=54074TubeTK/Build Instructions2013-09-03T20:31:30Z<p>Jamie.snape: /* Using Binary Packages */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make mesa-libGL-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake28 devtoolset-1.1-gcc-c++ git make mesa-libGL-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libjsoncpp-dev make subversion<br />
<br />
Note: For Red Hat Enterprise Linux, first enable [https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F Extra Packages for Enterprise Linux (EPEL)].<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53941TubeTK/Build Instructions2013-08-27T18:36:46Z<p>Jamie.snape: /* Using Binary Packages */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git make subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git g++ libjsoncpp-dev make subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53940TubeTK/Build Instructions2013-08-27T18:36:25Z<p>Jamie.snape: /* Dependencies */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel make subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git make subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53938TubeTK/Build Instructions2013-08-27T18:27:02Z<p>Jamie.snape: </p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Clone the Git repository ===<br />
==== Windows ====<br />
git clone https://github.com/TubeTK/TubeTK %HOMEPATH%/TubeTK<br />
<br />
==== Linux and OS X ====<br />
git clone https://github.com/TubeTK/TubeTK $HOME/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53937TubeTK/Build Instructions2013-08-27T18:24:43Z<p>Jamie.snape: /* Windows */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53936TubeTK/Build Instructions2013-08-27T18:24:27Z<p>Jamie.snape: /* Using KWStyle */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git $HOME/KWStyle<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53935TubeTK/Build Instructions2013-08-27T18:23:11Z<p>Jamie.snape: </p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir $HOME/TubeTK-Release<br />
cd $HOME/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd $HOME/TubeTK-Release<br />
make<br />
* 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.<br />
cd $HOME/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir $HOME/KWStyle-Release<br />
cd $HOME/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd $HOME/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK, JsonCpp, or VTK installation ==<br />
<br />
You can also configure CMake variables to use an existing JsonCpp installation instead of an embedded version.<br />
cd $HOME/TubeTK-Release<br />
cmake -DUSE_SYSTEM_JSONCPP .<br />
<br />
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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53934TubeTK/Build Instructions2013-08-27T18:16:29Z<p>Jamie.snape: /* Windows */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir ~/TubeTK-Release<br />
cd ~/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/TubeTK-Release<br />
make<br />
* 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.<br />
cd ~/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir ~/KWStyle-Release<br />
cd ~/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd ~/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53933TubeTK/Build Instructions2013-08-27T18:16:13Z<p>Jamie.snape: /* 2b. Configure */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
mkdir %HOMEPATH%/TubeTK-Release<br />
cd %HOMEPATH%/TubeTK-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir ~/TubeTK-Release<br />
cd ~/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/TubeTK-Release<br />
make<br />
* 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.<br />
cd ~/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir ~/KWStyle-Release<br />
cd ~/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd ~/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53932TubeTK/Build Instructions2013-08-27T18:12:29Z<p>Jamie.snape: /* Dependencies */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install devtoolset-1.1-gcc-c++ git subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir ~/TubeTK-Release<br />
cd ~/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/TubeTK-Release<br />
make<br />
* 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.<br />
cd ~/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir ~/KWStyle-Release<br />
cd ~/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd ~/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53930TubeTK/Build Instructions2013-08-27T17:48:04Z<p>Jamie.snape: /* Dependencies */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
=== Minimum Requirements ===<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
=== Using Binary Packages ===<br />
<br />
* Fedora:<br />
sudo yum install cmake git gcc-c++ jsoncpp-devel subversion<br />
* Red Hat Enterprise Linux:<br />
sudo yum install cmake devtoolset-1.1-gcc-c++ git jsoncpp-devel subversion<br />
* Ubuntu:<br />
sudo apt-get install cmake git make g++ libjsoncpp-dev subversion<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir ~/TubeTK-Release<br />
cd ~/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/TubeTK-Release<br />
make<br />
* 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.<br />
cd ~/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir ~/KWStyle-Release<br />
cd ~/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd ~/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53912TubeTK/Build Instructions2013-08-27T16:59:58Z<p>Jamie.snape: </p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
mkdir ~/TubeTK-Release<br />
cd ~/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/TubeTK-Release<br />
make<br />
* 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.<br />
cd ~/TubeTK-Release/TubeTK-build<br />
make<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir ~/KWStyle-Release<br />
cd ~/KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd ~/TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53911TubeTK/Build Instructions2013-08-27T16:55:44Z<p>Jamie.snape: /* 2a. Download and manage your Git repository */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
git clone https://github.com/TubeTK/TubeTK<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53910TubeTK/Build Instructions2013-08-27T16:51:58Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53908TubeTK/Build Instructions2013-08-27T16:46:24Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
cmake -G"Unix Makefiles" ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53907TubeTK/Build Instructions2013-08-27T16:45:47Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
cmake -G"Unix Makefiles" ../TubeTK<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53906TubeTK/Build Instructions2013-08-27T16:44:59Z<p>Jamie.snape: /* 1. Have CTest do all of the remaining work */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Linux: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Linux.cmake TubeTK_InitialBuild_Linux.cmake]<br />
** OS X:[https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Mac.cmake TubeTK_InitialBuild_Mac.cmake]<br />
** Windows: [https://github.com/TubeTK/TubeTK/blob/master/CMake/TubeTK_InitialBuild_Windows.cmake TubeTK_InitialBuild_Windows.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53905TubeTK/Build Instructions2013-08-27T16:42:28Z<p>Jamie.snape: /* Linux and OS X */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53904TubeTK/Build Instructions2013-08-27T16:41:57Z<p>Jamie.snape: /* Using KWStyle */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/].<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
cmake -DCMAKE_BUILD_TYPE=Release ../KWStyle<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
cmake -DTubeTK_USE_KWSTYLE=ON -DKWSTYLE_EXECUTABLE=/usr/local/bin/KWStyle .<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53903TubeTK/Build Instructions2013-08-27T16:37:58Z<p>Jamie.snape: /* Windows */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/]<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
ccmake ../KWStyle<br />
# Set BUILD_TYPE to Release<br />
# Configure<br />
# Generate<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
ccmake .<br />
# Turn on advanced options<br />
# Turn on TubeTK_USE_KWSTYLE<br />
# Configure<br />
# Set KWSTYLE_EXECUTABLE to /usr/local/bin/KWStyle<br />
# Configure<br />
# Generate<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53902TubeTK/Build Instructions2013-08-27T16:37:08Z<p>Jamie.snape: </p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/]<br />
git clone http://public.kitware.com/KWStyle.git<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
ccmake ../KWStyle<br />
# Set BUILD_TYPE to Release<br />
# Configure<br />
# Generate<br />
make<br />
sudo make install<br />
<br />
cd TubeTK-Release<br />
ccmake .<br />
# Turn on advanced options<br />
# Turn on TubeTK_USE_KWSTYLE<br />
# Configure<br />
# Set KWSTYLE_EXECUTABLE to /usr/local/bin/KWStyle<br />
# Configure<br />
# Generate<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53901TubeTK/Build Instructions2013-08-27T16:33:53Z<p>Jamie.snape: /* Using a pre-existing ITK or VTK installation */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/]<br />
cvs -d :pserver:anoncvs@public.kitware.com:/cvsroot/KWStyle co KWStyle<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
ccmake ../KWStyle<br />
# Set BUILD_TYPE to Release<br />
# Configure<br />
# Generate<br />
make<br />
sudo make install<br />
<br />
cd tubetk-Release<br />
ccmake .<br />
# Turn on advanced options<br />
# Turn on TubeTK_USE_KWSTYLE<br />
# Configure<br />
# Set KWSTYLE_EXECUTABLE to /usr/local/bin/KWStyle<br />
# Configure<br />
# Generate<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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).<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependency on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
= Inside TubeTK =<br />
<br />
* As noted above, TubeTK uses CMake's Superbuild include other libraries, as needed for the options selected.<br />
* Libraries that may be automatically downloaded and included by TubeTK include:<br />
** ITK<br />
** VTK<br />
** CTK<br />
** Select tools from the NA-MIC Kit:<br />
*** TCLAP, GenerateCLP, ModuleDescriptionParser, RegisterImages<br />
* Libraries that must be externally installed if you want to use them with TubeTK<br />
** CMake (2.8.2 or greater - REQUIRED)<br />
** Qt (4.6.2 or greater - OPTIONAL)<br />
* You can manually install the above toolkits and then configure TubeTK to use those installations instead of building its own copies of those toolkits, BUT we don't recommend heading down that road.<br />
** Requires CMake expertise<br />
** Requires making sure each of the toolkits is correctly configured (via their own cmake configuration processes) for use with TubeTK.<br />
** If you still want to try this complex, manual, unsupported approach, then the following steps will help somewhat:<br />
**# Read tubetk/SuperBuild.cmake to find out the current set of cmake options required for each library.<br />
**# For example, at one point in tubetk history, you were required to build ITK v3.20.0, as mirrored and customized on the Slicer github account, using the following cmake vars<br />
**#* BUILD_SHARED_LIBS = OFF (or ON, but libs are VERY small in ITK because of templates)<br />
**#* ITK_USE_LIBXML2 = ON<br />
**#* ITK_USE_REVIEW = ON<br />
**#* ITK_USE_OPTIMIZED_REGISTRATION_METHODS = ON<br />
**#* ITK_USE_TRANSFORM_IO_FACTORIES = ON<br />
**#* CMAKE_CXX_FLAGS = -fPIC<br />
**#* CMAKE_C_FLAGS = -fPIC<br />
**#** adding -fPIC to both c and cxx flags can be ignored if you build with shared libs ON.<br />
**# You must also build non-cmake libraries, such as Qt 4.6.2 or greater<br />
**#* Tips for installing Open Source Qt to run with Visual Studio<br />
**#*# Open a visual studio command shell.<br />
**#*# Go to the Qt source directory and run "configure -platform win32-msvc2005". This will tell Qt to prepare itself for being compiled by the Visual Studio compiler. If you use another version of VS than 2005, replace win32-msvc-2005 with the appropriate one.<br />
**#*# Type "nmake" and take a break when it compiles.<br />
**#*# Add QMAKESPEC=win32-msvc2005 as a system environment variable and add QTDIR=your_dir into the system path. It is done.<br />
**#* Tips for installing Qt on Linux<br />
**#*# apt-get qt4<br />
**# After Qt, you must also build the Slicer customized version of VTK v5.6, from the Slicer github account, using the appropriate cmake vars, such as<br />
**#* BUILD_SHARED_LIBS = ON<br />
**#* VTK_USE_GUISupport = ON<br />
**#* VTK_USE_QVTK<br />
**# Again, many details are missing in the above list. We really recommend using Superbuild instead.<br />
<br />
= References =<br />
<br />
* Superbuild and EXTERNAL_PROJECTS<br />
** Dave Cole's article in the October Kitware Source [http://www.kitware.com/products/archive/kitware_quarterly1009.pdf]<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53900TubeTK/Build Instructions2013-08-27T16:33:07Z<p>Jamie.snape: /* Using a pre-existing ITK or VTK installation */</p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/]<br />
cvs -d :pserver:anoncvs@public.kitware.com:/cvsroot/KWStyle co KWStyle<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
ccmake ../KWStyle<br />
# Set BUILD_TYPE to Release<br />
# Configure<br />
# Generate<br />
make<br />
sudo make install<br />
<br />
cd tubetk-Release<br />
ccmake .<br />
# Turn on advanced options<br />
# Turn on TubeTK_USE_KWSTYLE<br />
# Configure<br />
# Set KWSTYLE_EXECUTABLE to /usr/local/bin/KWStyle<br />
# Configure<br />
# Generate<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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). See the warning below.<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependencies on VTK version and build options<br />
** Note that TubeTK relies on VTK from 3D Slicer (https://github.com/Slicer/VTK)<br />
** The 3D Slicer fork of VTK contains enhancements that have not yet made it into the VTK repository itself.<br />
<br />
* Got problems? Please refer to the [[TubeTK/Development/Developers FAQ]]<br />
<br />
= Inside TubeTK =<br />
<br />
* As noted above, TubeTK uses CMake's Superbuild include other libraries, as needed for the options selected.<br />
* Libraries that may be automatically downloaded and included by TubeTK include:<br />
** ITK<br />
** VTK<br />
** CTK<br />
** Select tools from the NA-MIC Kit:<br />
*** TCLAP, GenerateCLP, ModuleDescriptionParser, RegisterImages<br />
* Libraries that must be externally installed if you want to use them with TubeTK<br />
** CMake (2.8.2 or greater - REQUIRED)<br />
** Qt (4.6.2 or greater - OPTIONAL)<br />
* You can manually install the above toolkits and then configure TubeTK to use those installations instead of building its own copies of those toolkits, BUT we don't recommend heading down that road.<br />
** Requires CMake expertise<br />
** Requires making sure each of the toolkits is correctly configured (via their own cmake configuration processes) for use with TubeTK.<br />
** If you still want to try this complex, manual, unsupported approach, then the following steps will help somewhat:<br />
**# Read tubetk/SuperBuild.cmake to find out the current set of cmake options required for each library.<br />
**# For example, at one point in tubetk history, you were required to build ITK v3.20.0, as mirrored and customized on the Slicer github account, using the following cmake vars<br />
**#* BUILD_SHARED_LIBS = OFF (or ON, but libs are VERY small in ITK because of templates)<br />
**#* ITK_USE_LIBXML2 = ON<br />
**#* ITK_USE_REVIEW = ON<br />
**#* ITK_USE_OPTIMIZED_REGISTRATION_METHODS = ON<br />
**#* ITK_USE_TRANSFORM_IO_FACTORIES = ON<br />
**#* CMAKE_CXX_FLAGS = -fPIC<br />
**#* CMAKE_C_FLAGS = -fPIC<br />
**#** adding -fPIC to both c and cxx flags can be ignored if you build with shared libs ON.<br />
**# You must also build non-cmake libraries, such as Qt 4.6.2 or greater<br />
**#* Tips for installing Open Source Qt to run with Visual Studio<br />
**#*# Open a visual studio command shell.<br />
**#*# Go to the Qt source directory and run "configure -platform win32-msvc2005". This will tell Qt to prepare itself for being compiled by the Visual Studio compiler. If you use another version of VS than 2005, replace win32-msvc-2005 with the appropriate one.<br />
**#*# Type "nmake" and take a break when it compiles.<br />
**#*# Add QMAKESPEC=win32-msvc2005 as a system environment variable and add QTDIR=your_dir into the system path. It is done.<br />
**#* Tips for installing Qt on Linux<br />
**#*# apt-get qt4<br />
**# After Qt, you must also build the Slicer customized version of VTK v5.6, from the Slicer github account, using the appropriate cmake vars, such as<br />
**#* BUILD_SHARED_LIBS = ON<br />
**#* VTK_USE_GUISupport = ON<br />
**#* VTK_USE_QVTK<br />
**# Again, many details are missing in the above list. We really recommend using Superbuild instead.<br />
<br />
= References =<br />
<br />
* Superbuild and EXTERNAL_PROJECTS<br />
** Dave Cole's article in the October Kitware Source [http://www.kitware.com/products/archive/kitware_quarterly1009.pdf]<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Build_Instructions&diff=53899TubeTK/Build Instructions2013-08-27T16:30:53Z<p>Jamie.snape: </p>
<hr />
<div>= Overview =<br />
<br />
TubeTK has been tested on Windows, OS X, and Linux.<br />
<br />
* Process<br />
** Install dependencies<br />
** Download source<br />
** Configure using CMake<br />
** Build<br />
<br />
= Dependencies =<br />
<br />
Minimum requirements:<br />
<br />
* [http://cmake.org CMake]<br />
* [http://git-scm.com Git]<br />
* [http://itk.org/ Insight Segmentation and Registration Toolkit] (ITK)<br />
* [http://jsoncpp.sourceforge.net JsonCpp]<br />
* [https://github.com/Slicer/SlicerExecutionModel Slicer Execution Model]<br />
* [http://subversion.apache.org Subversion]<br />
* [https://github.com/Slicer/VTK 3D Slicer fork] of the [http://vtk.org Visualization Toolkit] (VTK)<br />
<br />
See the [https://github.com/TubeTK/TubeTK/wiki/Dependencies Dependencies] page on GitHub for minimum versions and a complete list.<br />
<br />
= Download, Configure, and Build =<br />
<br />
You have two options:<br />
<br />
== 1. Have CTest do all of the remaining work ==<br />
<br />
This is the recommended approach for people who will be using and developing in TubeTK. It not only builds and tests TubeTK with minimal effort, but it also submits your build as an "experimental" on the TubeTK dashboard - this allows us to more easily help you debug errors during the build process:<br />
<br />
* Download a ctest configuration file for TubeTK<br />
** Windows: <br />
** OS X:[http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Mac.cmake;hb=HEAD TubeTK_InitialBuild_Mac.cmake]<br />
** Linux: [http://tubetk.org/gitweb?p=TubeTK.git;a=blob_plain;f=CMake/TubeTK_InitialBuild_Linux.cmake;hb=HEAD TubeTK_InitialBuild_Linux.cmake]<br />
* Edit it to match your environment<br />
** Only the variables in the first portion of the file should be edited. They are clearly marked and self explanatory. Additional details are at [[TubeTK/Dashboard Scripts]].<br />
* Run ctest and submit an experimental dashboard<br />
:<code>ctest -S <name_of_your_script_file.cmake></code><br />
:This will download the source code, configure it, build it, test it, and then submit the results to the [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
<br />
== 2. Download, configure, and build manually ==<br />
<br />
=== 2a. Download and manage your Git repository ===<br />
<br />
Please follow the detailed instructions at [[TubeTK/Development/Git]]<br />
<br />
=== 2b. Configure ===<br />
<br />
==== Windows ====<br />
<br />
==== Linux and OS X ====<br />
<br />
cd ~/src/TubeTK-Release<br />
ccmake ../TubeTK<br />
press 'c' to configure<br />
Set CMAKE_BUILD_TYPE to Release<br />
Confirm CMAKE_GENERATOR is "Unix Makefiles"<br />
press 'c' to configure again<br />
press 'g' to generate<br />
<br />
=== 2c. Build ===<br />
<br />
==== Windows ====<br />
<br />
Microsoft Visual Studio<br />
* Load the TubeTK solution file<br />
** Select File -> Open -> Project/Solution -> open TubeTK-Release/TubeTK.sln<br />
* 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.<br />
** Right click on the "ALL_BUILD" project and select "Build".<br />
* 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.<br />
** Right click on the "TubeTK" project and select "Build".<br />
<br />
==== Linux and OS X ====<br />
<br />
* 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.<br />
mkdir ~/src/TubeTK-Release<br />
cd ~/src/TubeTK-Release<br />
make -j4<br />
* 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.<br />
cd ~/src/TubeTK-Release/TubeTK-Build<br />
make -j4<br />
<br />
= Advanced =<br />
<br />
== Using KWStyle ==<br />
<br />
For introductory information, see: [http://public.kitware.com/KWStyle/ http://public.kitware.com/KWStyle/]<br />
cvs -d :pserver:anoncvs@public.kitware.com:/cvsroot/KWStyle co KWStyle<br />
mkdir KWStyle-Release<br />
cd KWStyle-Release<br />
ccmake ../KWStyle<br />
# Set BUILD_TYPE to Release<br />
# Configure<br />
# Generate<br />
make<br />
sudo make install<br />
<br />
cd tubetk-Release<br />
ccmake .<br />
# Turn on advanced options<br />
# Turn on TubeTK_USE_KWSTYLE<br />
# Configure<br />
# Set KWSTYLE_EXECUTABLE to /usr/local/bin/KWStyle<br />
# Configure<br />
# Generate<br />
make<br />
make StyleCheck<br />
<br />
== Using a pre-existing ITK or VTK installation ==<br />
<br />
You can configure CMake variables to use an existing ITK or VTK installation instead of its 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.<br />
* USE_SYSTEM_ITK: OFF<br />
** 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). See the warning below.<br />
* USE_SYSTEM_VTK: OFF<br />
** 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.<br />
<br />
* Dependencies on ITK and VTK versions and build options<br />
** Note that TubeTK relies on ITK and VTK from 3D Slicer (https://github.com/Slicer/ITK and https://github.com/Slicer/VTK, respectively)<br />
** Slicer's repositories for ITK/VTK contain enhancements that have not yet made it into the ITK/VTK repositories themselves.<br />
<br />
* Got problems? Please refer to the [[TubeTK/Development/Developers FAQ]]<br />
<br />
= Inside TubeTK =<br />
<br />
* As noted above, TubeTK uses CMake's Superbuild include other libraries, as needed for the options selected.<br />
* Libraries that may be automatically downloaded and included by TubeTK include:<br />
** ITK<br />
** VTK<br />
** CTK<br />
** Select tools from the NA-MIC Kit:<br />
*** TCLAP, GenerateCLP, ModuleDescriptionParser, RegisterImages<br />
* Libraries that must be externally installed if you want to use them with TubeTK<br />
** CMake (2.8.2 or greater - REQUIRED)<br />
** Qt (4.6.2 or greater - OPTIONAL)<br />
* You can manually install the above toolkits and then configure TubeTK to use those installations instead of building its own copies of those toolkits, BUT we don't recommend heading down that road.<br />
** Requires CMake expertise<br />
** Requires making sure each of the toolkits is correctly configured (via their own cmake configuration processes) for use with TubeTK.<br />
** If you still want to try this complex, manual, unsupported approach, then the following steps will help somewhat:<br />
**# Read tubetk/SuperBuild.cmake to find out the current set of cmake options required for each library.<br />
**# For example, at one point in tubetk history, you were required to build ITK v3.20.0, as mirrored and customized on the Slicer github account, using the following cmake vars<br />
**#* BUILD_SHARED_LIBS = OFF (or ON, but libs are VERY small in ITK because of templates)<br />
**#* ITK_USE_LIBXML2 = ON<br />
**#* ITK_USE_REVIEW = ON<br />
**#* ITK_USE_OPTIMIZED_REGISTRATION_METHODS = ON<br />
**#* ITK_USE_TRANSFORM_IO_FACTORIES = ON<br />
**#* CMAKE_CXX_FLAGS = -fPIC<br />
**#* CMAKE_C_FLAGS = -fPIC<br />
**#** adding -fPIC to both c and cxx flags can be ignored if you build with shared libs ON.<br />
**# You must also build non-cmake libraries, such as Qt 4.6.2 or greater<br />
**#* Tips for installing Open Source Qt to run with Visual Studio<br />
**#*# Open a visual studio command shell.<br />
**#*# Go to the Qt source directory and run "configure -platform win32-msvc2005". This will tell Qt to prepare itself for being compiled by the Visual Studio compiler. If you use another version of VS than 2005, replace win32-msvc-2005 with the appropriate one.<br />
**#*# Type "nmake" and take a break when it compiles.<br />
**#*# Add QMAKESPEC=win32-msvc2005 as a system environment variable and add QTDIR=your_dir into the system path. It is done.<br />
**#* Tips for installing Qt on Linux<br />
**#*# apt-get qt4<br />
**# After Qt, you must also build the Slicer customized version of VTK v5.6, from the Slicer github account, using the appropriate cmake vars, such as<br />
**#* BUILD_SHARED_LIBS = ON<br />
**#* VTK_USE_GUISupport = ON<br />
**#* VTK_USE_QVTK<br />
**# Again, many details are missing in the above list. We really recommend using Superbuild instead.<br />
<br />
= References =<br />
<br />
* Superbuild and EXTERNAL_PROJECTS<br />
** Dave Cole's article in the October Kitware Source [http://www.kitware.com/products/archive/kitware_quarterly1009.pdf]<br />
<br />
[[Category:TubeTK|Build Instructions]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK&diff=53640TubeTK2013-07-26T19:02:45Z<p>Jamie.snape: </p>
<hr />
<div>__NOTITLE__<br />
__NOTOC__<br />
<br />
{| border="1" cellpadding="10" cellspacing="0"<br />
|+ [[image:TubeTK_Header.jpg|1000px|TubeTK]]<br />
|-<br />
| style="background:#efefef;" align="left" valign="top" width="150px" | <br />
<br />
'''[[TubeTK|Home]]'''<br />
*[[TubeTK/About|About]]<br />
*[[TubeTK/Images|Image Gallery]]<br />
*[[TubeTK/Data|Data and Publications]]<br />
<br><br />
----<br />
<br><br />
'''For Users'''<br />
* [[TubeTK/Installation|Installation]]<br />
* [[TubeTK/Documentation|Methods & Apps]]<br />
* [[TubeTK/Slicer|TubeTK with 3D Slicer]]<br />
* [[TubeTK/OsiriX|TubeTK with OsiriX]]<br />
<br><br />
----<br />
<br><br />
'''For Developers'''<br />
* [[TubeTK/Development|Development Docs]]<br />
<br><br />
----<br />
<br><br />
'''[https://github.com/TubeTK/TubeTK/issues Report Bugs<br>Request Features]'''<br />
<br><br />
<br><br />
----<br />
<br><br />
'''[[TubeTK/Contact|Contact Us]]'''<br />
<br />
| align="left" width="800px" | <br />
= Overview =<br />
<br />
TubeTK is being developed to host algorithms for applications involving images of tubes (blood vessel in medical images, roads in satellite images, etc.). It also offers methods for handling other geometries (points, surfaces, and densities) in images. <br />
<br />
By focusing on local geometric structure, the algorithms are able to accomplish segmentations, registrations, and other analyses that consider the physicial properties of objects and their variations, while not requiring limiting assumptions on the specific arrangement or general shape of the objects in the images. We are applying these techniques to push image understanding in new directions such as:<br />
# registration of abdominal images even when organs slides against one another<br />
# forming statistical atlases of intra-canrial vessel network topology even when that topology changes between subjects<br />
# segmentation of arbitrary objects in images even when intensity statistics of those objects, and the objects around them, vary from image to image.<br />
<br />
At this time TubeTK is targeted for<br />
# Software developers who wish to write code to integrate our algorithms into their applications<br />
# Researchers who can write bash and other scripts to string together TubeTK's command-line tools<br />
We are working to provide modules, based on TubeTK, that allow TubeTK's methods to be called from within Slicer, Osirix, and ImageJ.<br />
<br />
If you have questions regarding or suggestions for improving TubeTK, please do not hesitate to [[TubeTK/Contact|contact the development team]].<br />
<br />
== Features ==<br />
* Centerline vascular segmentation<br />
* Vascular atlas formation<br />
* Vascular network to image registration<br />
* Organ segmentation<br />
* Vascular-ness measures<br />
* Multi-modality support<br />
<br />
== Driving Applications ==<br />
* [[NeuralNav | NeuralNav: Brain tumor resection guidance via intra-operative registration]]<br />
* Diagnosis of retinopathy of prematurity<br />
* Analysis of vascular differences within and between populations to identify focal (e.g., stroke) and diffuse (e.g., schizophrenia) diseases.<br />
* Vascular atlas formation<br />
* Radiofrequency ablation guidance via intra-operative registration of pre-op CT with intra-op Ultrasound<br />
* [[TubeTK/Tumor Micro Environments | Quantifying tumor micro-environments (with UNC BME Dept.)]]<br />
<br />
== Technical Focus ==<br />
<br />
* [[TubeTK/Vascular_Pattern_Analysis | Vascular pattern analysis]] is the characterization and comparison of individuals and populations based on "spatial graphs" as representations of vascular networks.<br />
* [[TubeTK/Sliding_Organ_Registration | Sliding organ registration]] are methods for registering images of multiple organs in which the organs may have shifted, expanded, or compressed independently.<br />
* [[TubeTK/Intra-operative_Ultrasound_Registration | Intra-operative ultrasound registration]] is the grand challenge of real-time transcription of pre-operative surgical plans into intra-operative ultrasound images.<br />
<br />
== Acknowledgement ==<br />
<br />
If you find TubeTK useful for your work and publications, please include a reference to this website and to<br />
* S. R. Aylward and E. Bullitt, “Initialization, noise, singularities, and scale in height ridge traversal for tubular object centerline extraction,” Medical Imaging, IEEE Transactions on, vol. 21, no. 2, pp. 61–75, 2002.<br />
Thank you!<br />
<br />
== External Links ==<br />
<br />
* [http://open.cdash.org/index.php?project=TubeTK TubeTK Dashboard]<br />
* [https://github.com/TubeTK TubeTK GitHub]<br />
* [https://github.com/TubeTK/TubeTK/issues TubeTK GitHub Issues]<br />
* [https://github.com/TubeTK/TubeTK TubeTK GitHub Repository]<br />
* [http://midas3.kitware.com/midas/community/7 TubeTK Midas Platform Community]<br />
|-<br />
|}<br />
<br />
[[Category:TubeTK|*]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Documentation&diff=53639TubeTK/Documentation2013-07-26T18:57:15Z<p>Jamie.snape: /* Related Efforts */</p>
<hr />
<div>__NOTITLE__<br />
__NOTOC__<br />
<br />
{| border="1" cellpadding="10" cellspacing="0"<br />
|+ [[image:TubeTK_Header.jpg|1000px]]<br />
|-<br />
| style="background:#efefef;" align="left" valign="top" width="150px" | <br />
<br />
'''[[TubeTK|Home]]'''<br />
*[[TubeTK/About|About]]<br />
*[[TubeTK/Images|Image Gallery]]<br />
*[[TubeTK/Data|Data and Publications]]<br />
<br><br />
----<br />
<br><br />
'''For Users'''<br />
* [[TubeTK/Installation|Installation]]<br />
* [[TubeTK/Documentation|Methods & Apps]]<br />
* [[TubeTK/Slicer|TubeTK with 3D Slicer]]<br />
* [[TubeTK/OsiriX|TubeTK with OsiriX]]<br />
<br><br />
----<br />
<br><br />
'''For Developers'''<br />
* [[TubeTK/Development|Development Docs]]<br />
<br><br />
----<br />
<br><br />
'''[https://github.com/TubeTK/TubeTK/issues Report Bugs<br>Request Features]'''<br />
<br><br />
<br><br />
----<br />
<br><br />
'''[[TubeTK/Contact|Contact Us]]'''<br />
<br />
| width="800px" align="left" | <br />
= Applications =<br />
# '''GUI Applications'''<br />
# '''Command-line (CLI) Applications'''<br />
#* Command-line applications can be run directly from the command line, or graphically using 3D Slicer<br />
#* [[TubeTK/HessianVesselness2D | Hessian Vesselness 2D]]<br />
#* [[TubeTK/ExtractCurves2D | Extract Curves 2D]]<br />
#* [[TubeTK/ComputeTortuosity | Compute Tortuosity]]<br />
#* [[TubeTK/Sliding_Organ_Registration | Sliding Geometries Registration]]<br />
# '''3D Slicer Python Applications'''<br />
#* [[TubeTK/InteractivePDFSegmenter | Interactive PDF Segmenter]]<br />
<br />
= Modules =<br />
# Pre-processing<br />
#* [[TubeTK/Anisotropic Hybrid Diffusion with Continuous Switch|Anisotropic Hybrid Diffusion with Continuous Switch]]<br />
# Object segmentation<br />
# Tube extraction<br />
# Data structures<br />
# Topology analysis<br />
# Editing<br />
# Export<br />
# [[TubeTK/OpenIGTLink|OpenIGTLink]]<br />
# Python<br />
#* [http://nbviewer.ipython.org/5925084 Tube NumPy Array]<br />
<br />
= Related Efforts =<br />
<br />
* [[TubeTK/Related Work|Related Work]]<br />
* [https://musiic.lcsr.jhu.edu Medical Ultrasound Imaging and Intervention Collaboration (MUSIIC)]<br />
* [http://www.vmtk.org Vascular Modeling Toolkit (VMTK)]<br />
<br />
|}<br />
<br />
[[Category:TubeTK|Documentation]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/OpenIGTLink&diff=53638TubeTK/OpenIGTLink2013-07-26T18:56:39Z<p>Jamie.snape: </p>
<hr />
<div>=Introduction=<br />
<br />
OpenIGTLink is a communication protocol designed to work on the TCP/IP application layer to handle image, tracking data, transform, device control and monitoring command, and other user-defined data types. Example use cases<br />
<br />
# '''Interfacing a tracking device''': A computer running IGSTK based navigation application and a computer running Slicer are connected using a network cable. The IGSTK application gathers pose information of surgical instruments and packages them in OpenIGTLink message format and then sends the data over the network connection using OpenIGTLink protocol to the computer running Slicer for visualization and/or further processing<br />
# '''Integration with a commercial navigation system''': A computer running tubetk based vessel segmentation application is connected to a BrainLab VectorVision machine using a network cable. VectorVisison fetches Ultrasound images, packages them as OpenIGTLink image message and sends them to the computer running the tubetk application.<br />
<br />
=Description=<br />
OpenIGTLink is designed for use in the application layer on the TCP/IP stack. A message, the minimum data unit of OpenIGTLInk protocol contains all the information necessary for interpretation by the receiver. The message begins with a 58-byte header section that contains protocol version, message type, device name, time stamp, body size and cyclic redundancy check. The body section varies according to the message type being sent.<br />
== Typical Workflow ==<br />
=== Client ===<br />
# Establish connection with server side <br />
# Generate OpenIGTLink message (data-to-be-sent ) and package it as an OpenIGTLink format.<br />
# Send data through TCP/IP socket connection<br />
<br />
=== Server side ===<br />
# Create a server socket and wait for the client to connect<br />
# When connection is established with a client, get into a "Ready" state to start receiving messages.<br />
# When a message is received, error check and unpack the header and identify the message type and prepare to receive the message body<br />
# Receive, error check, unpack and parse the message body according to the message type.<br />
<br />
== Versions == <br />
<br />
There are two versions of the protocol available. <br />
=== Version 1 ===<br />
<br />
Message types<br />
# Transform <br />
# Image <br />
# Position <br />
# Status message <br />
<br />
=== Version 2 ===<br />
<br />
In addition to the above message types, Version 2 provides a simple querying scheme. <br />
<br />
# Client can request the server side to send a data contained in a single message<br />
# Client can start and stop data streaming from the server <br />
<br />
=== Implementation === <br />
<br />
Surgical Navigation and Robotics Lab at BWH has developed a C++ library implementation of this protocol. The library is composed of <br />
# C-based library defining structures and utility functions to serialize data into OpenIGTLinkMessage<br />
# A set of high-level C++ classes wrapping the C-based library that provide a safer and more convenient way to implement OpenIGTLink messaging function into software<br />
# Multi-platform C++ classes to handle sockets and threads. <br />
<br />
Version 1<br />
http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink<br />
<br />
Version 2<br />
http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink2_beta/<br />
<br />
= OpenIGTLink CLI Application in TubeTK=<br />
# [http://gitorious.org/tubetk/tubetk/trees/master/Applications/CLI/SendPositionMessageUsingOpenIGTLink Server App]<br />
# [http://gitorious.org/tubetk/tubetk/trees/master/Applications/CLI/ReceivePositionMessageUsingOpenIGTLink Client App]<br />
<br />
How to run these CLIs<br />
<br />
1) Run first the Send CLI with a port number<br />
<br />
./TubeTK-Build/lib/TubeTK/Plugins/SendPositionMessageUsingOpenIGTLink 18000<br />
<br />
<br />
Position information generation interval: 100<br />
<br><br />
Waiting for connection...<br />
<br><br />
Waiting for connection...<br />
<br><br />
Waiting for connection...<br />
<br><br />
This CLI has created a socket connection and waiting for a client to request data transfer. So, while this is running, open another terminal and run the Receive CLI<br />
<br />
<br><br />
2) Run the Receive CLI with the exact port number and localhost hostname as follows<br />
<br><br />
./TubeTK-Build/lib/TubeTK/Plugins/ReceivePositionMessageUsingOpenIGTLink<br />
18000 localhost<br />
<br />
<br />
Connected to the server : localhost 18000<br />
<br><br />
Receiving POSITION data type.<br />
<br><br />
position = (50, 0, 50)<br />
<br><br />
quaternion = (0, 0.666667, 0.57735, 0)<br />
<br />
<br />
Receiving POSITION data type.<br />
<br><br />
position = (-20.8073, 45.4649, -20.8073)\<br />
<br><br />
quaternion = (0, 0.663336, 0.57735, 0.0665556)<br />
<br><br />
<br />
Receiving POSITION data type.<br />
<br><br />
position = (-32.6822, -37.8401, -32.6822)<br />
<br><br />
quaternion = (0, 0.653378, 0.57735, 0.132446)<br />
<br><br />
<br />
=Reference=<br />
#[http://www.na-mic.org/Wiki/index.php/OpenIGTLink NAMIC OpenIGTLink wiki page]<br />
#[http://en.wikipedia.org/wiki/Internet_socket Internet socket]<br />
#[http://net.pku.edu.cn/~course/cs501/2010/code/BSD_Socket.t/sockets.pdf Socket Programming C++]<br />
#[http://www.doc.ic.ac.uk/~ih/doc/pc_conn/tcpip/intro/intro0.html TCP/IP Introduction]<br />
#[http://en.wikipedia.org/wiki/Berkeley_sockets BSD socket]<br />
#[http://www.commontk.org/index.php/Documentation/Messaging CTK effort ]<br />
<br />
[[Category:TubeTK Modules|OpenIGTLink]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Anisotropic_Hybrid_Diffusion_with_Continuous_Switch&diff=53637TubeTK/Anisotropic Hybrid Diffusion with Continuous Switch2013-07-26T18:56:24Z<p>Jamie.snape: </p>
<hr />
<div>This module is an implementation of diffusion based smoothing technique developed by Mendrik et al.<br />
<br />
'''''Mendrik AM, Vonken EJ, Rutten A, Viergever MA, van Ginneken B. Noise reduction in computed tomography scans using 3-d anisotropic hybrid diffusion with continuous switch. IEEE Trans Med Imaging. 2009 Oct;28(10):1585-94. '''''<br />
<br />
= Algorithm synopsis =<br />
<br />
This algorithm is based on anisotropic non-linear diffusion. The technique combines edge-preserving noise reduction while enhancing local structures. This algorithm uses a hybrid approach that combines the advantages of EED ( Edge enhancing diffusion ) and CED ( Cohnerence enhancing diffusion ). <br />
<br />
EED focuses on edge preservation and enhancement. In EED, strong smoothing is applied along the direction of the edge while the strength of the smoothing along the other perpendicular directions depends on the gradient. The higher the gradient the lower the smoothing strength would be. Applying EED to a medical image would enhance boundaries of larger organs but would blur vessels and smaller structures.<br />
<br />
On the other hand, CED is designed to to connect lines and improve flow-like structures. Running CED on medical images would preserve smaller structures and filter vessels but would not filter noise and plate-like structures. Therefore a hybrid technique was proposed to combine intelligently the benefits of the two techniques.<br />
<br />
The main underlying equation in this algorithm is the anisotropic diffusion equation<br />
<br />
<math><br />
<br />
\frac{\delta u}{\delta t} = \nabla . ( D . \nabla u )<br />
<br />
</math><br />
<br />
Where <br/><br />
#<math> \nabla </math> is the divergence operator<br />
#<math> \nabla u </math> is the gradient of the image <math> u </math><br />
#<math> D </math> is the diffusion tensor<br />
<br />
The diffusion tensor <math> D </math> allows to tune the smoothing( both the strength and direction ) across the image. <math> D </math> is defined as a function of the structure tensor. <br />
<br />
<math><br />
J( \nabla u_\sigma ) = K_\rho * ( \nabla u_\sigma\nabla u_\sigma^T )<br />
</math><br />
<br />
Where <math> K </math> is the Gaussian Kernel with standard deviation <math> \rho </math> scale and <math> \nabla u_\sigma </math> is the gradient of the image <math> u </math> at scale <math> \sigma </math><br />
<br />
<br />
<math><br />
<br />
D = \left [ V_1 V_2 V_3 \right ] .<br />
\begin{bmatrix}<br />
\lambda_1 & 0 & 0 \\<br />
0 & \lambda_2 & 0 \\ <br />
0 & 0 & \lambda_3<br />
\end{bmatrix} <br />
.<br />
\left [ V_1 V_2 V_3 \right ]^T<br />
</math><br />
<br />
<math> V_1, V_2, V_3 </math> denote the eigen vectors of the structure tensor. The eigenvalues <math> \lambda_i </math> define the strength of the smoothing along the direction of the corresponding eigen vector <math> V_i</math><br />
<br />
EED, CED and Hybrid switch differ in the way they define <math> \lambda_i </math>.<br />
<br />
= Implementation =<br />
<br />
== Using ITK framework ==<br />
The implementation of this algorithm in tubetk follows ITK's finite difference solver framework. The framework uses solver filter and function. The following four main classes are implemented <br />
<br />
# Structure tensor generation filter ( Second moment matrix generator that is currently not available in ITK )<br />
# Edge-enhancing diffusion filter<br />
# Coherence-enhancing diffusion filter<br />
# Hybrid continuous diffusion filter<br />
<br />
Current ITK diffusion filters are based on scalar or vector valued diffusion functions. But in this algorithm, we are using tensor-based diffusion function. Hence, this required doing some partial differential derivation [http://public.kitware.com/Wiki/images/d/d4/DiffusionTensorPDEcal-Part1.pdf Part 1] [http://public.kitware.com/Wiki/images/a/a5/DiffusionTensorPDEcal-Part2.pdf Part 2]. This derivation is implemented in the solver function.<br />
<br />
== Class Diagram ==<br />
<br />
Class hierarchy of the finite difference solver image filters <br />
<br />
<graphviz><br />
digraph G {<br />
itkFiniteDifferenceImageFilter -> AnisotropicDiffusionTensorImageFilter<br />
AnisotropicDiffusionTensorImageFilter -> AnisotropicEdgeEnhancementDiffusionImageFilter<br />
AnisotropicDiffusionTensorImageFilter -> AnisotropicCoherenceEnhancingDiffusionImageFilter<br />
AnisotropicDiffusionTensorImageFilter -> AnisotropicHybridDiffusionImageFilter<br />
}<br />
</graphviz><br />
<br />
Class hierarchy of the finite difference solver function<br />
<br />
<graphviz><br />
digraph G {<br />
itkFiniteDifferenceFunction -> AnisotropicDiffusionTensorFunction<br />
}<br />
</graphviz><br />
<br />
= Structure Tensor Generation Filter =<br />
<br />
== Overview == <br />
The principle directions of diffusion/smoothing are based on the local structure. For this purpose, local structure tensor generator is needed. We implemented such type of filter using ITK's recursive Gaussian filter. The structure tensor <math> J </math> is defined as follows<br />
<br />
<math><br />
J( \nabla u_\sigma ) = K_\rho * ( \nabla u_\sigma\nabla u_\sigma^T )<br />
</math><br />
<br />
<math><br />
J(I) = K *<br />
\begin{bmatrix}<br />
I_x^2 & I_xI_y& I_xI_z \\<br />
I_xI_y & I_y^2 & 0 \\ <br />
I_xI_z & I_yI_z & I_z^2<br />
\end{bmatrix} <br />
</math><br />
<br />
== Relevant files ==<br />
<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkStructureTensorRecursiveGaussianImageFilter.h itkStructureTensorRecursiveGaussianImageFilter header file]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkStructureTensorRecursiveGaussianImageFilter.txx itkStructureTensorRecursiveGaussianImageFilter Implementation file]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/Testing/itkStructureTensorRecursiveGaussianImageFilterTest.cxx Test]<br />
<br />
<br />
The ''itkStructureTensorRecursiveGaussianImageFilterTest'' generates primary eigen vector and eigen value images for visual inspection<br />
<br />
''tubeBasePreprocessingFiltersTests itkStructureTensorRecursiveGaussianImageFilterTest CylinderSynthetic.mha CylinderPrimaryEigenVectorImage.mha CylinderPrimaryEigenValueImage.mha''<br />
<br />
[[Image:SyntheticCylinderStructureTensorEigenVector.png|thumb|right| Structure tensor primary eigen vectors overlaid on the input image.]]<br />
<br />
The results can be viewed best using Paraview as follows <br />
<br />
# Load the input image ( CylinderSynthetic.mha )<br />
# Apply contour filter <br />
# Load the primary eigen vector image ( CylinderPrimaryEigenVectorImage )<br />
# Apply glyph filter<br />
<br />
You will be able to visualize the eigen vectors overlayed on the input image.<br />
<br />
== Input parmaters ==<br />
<br />
= Edge Enhancing Diffusion Filter =<br />
<br />
== Overview == <br />
EED is a plate enhancing diffusion filter in 3D. <br />
<br />
Given <math> \lambda 1 > \lambda 2 > \lambda 3</math>, the eigen values of the structure tensor in order of decreasing magnitude, strong diffusion is performed in the direction of <math>V_2</math> and <math>V_3</math>. The diffusion in the direction of <math>V_1</math> depends on the gradient magnitude.<br />
<br />
The diffusion tensor diagonal matrix will have the following elements<br />
<br />
<math> \lambda_e1 = 1 </math> or <math> 1 - e^K</math> depending on the gradient magnitude <br/><br />
<math> \lambda_e2 = 1 </math> <br/><br />
<math> \lambda_e3 = 1 </math> <br/><br />
<br />
Parameter <math> K </math> is computed using threshold parameter, contrast parameter and gradient magnitude. If the gradient magnitude is much smaller than the contrast parameter, isotropic diffusion is performed<br />
<br />
== Relevant files ==<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkAnisotropicEdgeEnhancementDiffusionImageFilter.h itkAnisotropicEdgeEnhancementDiffusionImageFilter Header file]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkAnisotropicEdgeEnhancementDiffusionImageFilter.txx itkAnisotrpicEdgeEnhancementDiffusionImageFilter Implementation file]<br />
# [http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/Testing/itkAnisotropicEdgeEnhancementDiffusionImageFilterTest.cxx Test]<br />
<br />
== Input parameters ==<br />
<br />
# Contrast parameter <math> \lambda_e </math> ( Default: 30 )<br />
# Scale parameter <math> \sigma </math> ( Default: 1.0 )<br />
# Time step ( Default: 0.11 )<br />
# Number of iterations ( Default: 6 )<br />
<br />
= Coherence Enhancing Diffusion Filter =<br />
<br />
== Overview ==<br />
Given <math> \lambda 1 > \lambda 2 > \lambda 3</math>, the eigen values of the structure tensor in order of decreasing magnitude, CED performs diffusion in the direction of <math>V_3</math> or diffusion is minimized in all three directions<br />
<br />
The diffusion tensor diagonal matrix will have the following elements<br />
<br />
<math> \lambda_c1 = \alpha </math> <br/><br />
<math> \lambda_c2 = \alpha </math> <br/><br />
<math> \lambda_c3 = 1 </math> or <math> \alpha + (1 - \alpha).e^K</math> her value depending on the values of <math> \lambda_2 </math> or <math> \lambda_3 </math> <br/><br />
<br />
Parameter <math> K </math> is computed using the contrast parameter specified by the user.<br />
== Relevant files ==<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkAnisotropicCoherenceEnhancingDiffusionImageFilter.h itkAnisotropicCoherenceEnhancingDiffusionImageFilter Header file]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkAnisotropicCoherenceEnhancingDiffusionImageFilter.txx itkAnisotropicCoherenceEnhancingDiffusionImageFilter Implementation file]<br />
# [http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/Testing/itkAnisotropicCoherenceEnhancingDiffusionImageFilterTest.cxx Test]<br />
<br />
== Input parameters == <br />
<br />
# Contrast parameter <math> \lambda_c </math> ( Default: 15.0 )<br />
# <math> \alpha </math> ( Default: 0.001 )<br />
# Scale parameter <math> \sigma </math> ( Default: 1.0 )<br />
# Time step ( Default: 0.11 )<br />
# Number of iterations ( Default: 6 )<br />
<br />
= Hybrid Continuous Filter =<br />
<br />
== Overview == <br />
<math> \lambda_{h_i} = ( 1 - \epsilon )*\lambda_{c_i} + \epsilon * \lambda_{e_i} </math><br />
<br />
<math> \epsilon </math> is the EED fraction that is computed using the eigen values of the structure tensor. For detail, refer the paper.<br />
<br />
<br />
== Relevant files ==<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkAnisotropicHybridDiffusionImageFilter.h itkAnisotropicHybridDiffusionImageFilter Header File]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/itkTubeEnhancingDiffusion2DImageFilter.txx itkAnisotropicHybridDiffusionImageFilter Implementation file]<br />
#[http://gitorious.org/tubetk/tubetk/blobs/master/Base/Preprocessing/Testing/itkAnisotropicHybridDiffusionImageFilterTest.cxx Test]<br />
<br />
== Input parameters ==<br />
<br />
# CED Contrast parameter <math> \lambda_c </math> ( Default: 15.0 )<br />
# EED Contrast parameter <math> \lambda_e </math> ( Default: 30 )<br />
# Hybrid Contrast parameter <math> \lambda_h </math> ( Default 30.0 )<br />
# CED <math> \alpha </math> ( Default: 0.001 )<br />
# Scale parameter <math> \sigma </math> ( Default: 1.0 )<br />
# Time step ( Default: 0.11 )<br />
# Number of iterations ( Default: 6 )<br />
<br />
[[Category:TubeTK Modules|Anisotropic Hybrid Diffusion with Continuous Switch]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2012.03.29&diff=53636TubeTK/Events/2012.03.292013-07-26T18:54:55Z<p>Jamie.snape: </p>
<hr />
<div>= Sysadmin =<br />
* Logo<br />
* github for our secondary host<br />
<br />
<br />
= Research =<br />
* Patents<br />
* VolViewNinja<br />
<br />
= To Dos =<br />
* Generating screenshots<br />
** Andinet, Danielle, Stephen<br />
** Videos?<br />
* Overview of Apps (Stephen)<br />
** Re-organize apps<br />
<br />
[[Category:TubeTK Events and Meetings|2012.03.29]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2012.03.22&diff=53635TubeTK/Events/2012.03.222013-07-26T18:54:38Z<p>Jamie.snape: </p>
<hr />
<div>= Sysadmin =<br />
* Logo<br />
* github for our secondary host<br />
<br />
<br />
= Research =<br />
* Registration algorithm<br />
* 8:30 Monday mornings<br />
** Purpose?<br />
* Go with VMTK tube format<br />
** load vmtk tubes into viewer<br />
** VolViewNinja ***<br />
<br />
= To Dos =<br />
* Generating screenshots<br />
** Andinet, Danielle, Stephen<br />
** Videos?<br />
* Overview of Apps (Stephen)<br />
** Re-organize apps<br />
<br />
[[Category:TubeTK Events and Meetings|2012.03.22]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2012.03.22&diff=53634TubeTK/Events/2012.03.222013-07-26T18:54:15Z<p>Jamie.snape: </p>
<hr />
<div>= Sysadmin =<br />
* Logo<br />
* github for our secondary host<br />
<br />
<br />
= Research =<br />
* Registration algorithm<br />
* 8:30 Monday mornings<br />
** Purpose?<br />
* Go with VMTK tube format<br />
** load vmtk tubes into viewer<br />
** VolViewNinja ***<br />
<br />
= To Dos =<br />
* Generating screenshots<br />
** Andinet, Danielle, Stephen<br />
** Videos?<br />
* Overview of Apps (Stephen)<br />
** Re-organize apps<br />
<br />
[[Category:TubeTK|2012.03.22]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.07.28&diff=53633TubeTK/Events/2011.07.282013-07-26T18:54:02Z<p>Jamie.snape: </p>
<hr />
<div>= Agenda items for this week =<br />
* Grassroots cost estimate<br />
* Nathan's module development<br />
* Ilknur registration<br />
* Duke data (MIA)<br />
<br />
[[Category:TubeTK Events and Meetings|2011.07.28]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.07.11&diff=53632TubeTK/Events/2011.07.112013-07-26T18:53:45Z<p>Jamie.snape: </p>
<hr />
<div>= Tasks =<br />
* Request UCLA Data: Gabe<br />
* Get PDFSegmenter running: Ilknur<br />
* Continue on papers: Gabe and Danielle<br />
* Contact Cardiac folks: Danielle<br />
* Process MRI data for ultrasound: Ilknur<br />
** If it fails, contact MRI data contributor<br />
* Get tumor data from Dr. Bullitt: Stephen<br />
<br />
[[Category:TubeTK Events and Meetings|2011.07.11]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.07.06&diff=53631TubeTK/Events/2011.07.062013-07-26T18:53:28Z<p>Jamie.snape: </p>
<hr />
<div>UCLA (Andrei) & Kitware (Stephen, Gabe, Daniel, Ilknur) meeting notes:<br />
<br />
== Segmentation in the chronic image ==<br />
<br />
'''Motivation:''' <br />
<br />
Tracking tissue fate in TBI is currently a poorly understood problem with significant clinical implications. One such implication is the ability to obtain highly accurate (A) WM/GM tissue classification at acute baseline as well as (B) metrics of atrophy between the acute and chronic time points. Currently this can be very difficult. Another implication is the ability to measure atrophy with accuracy at the location of the primary injury, which can also be challenging.<br />
<br />
'''Problem:''' <br />
<br />
Tissue classification is available at the chronic time point. Because of edema, tracking of tissues and classification of white and gray matters at the acquired time point is hard. In acute phase, lesion boundaries should be hand segmented. How to label a voxel based on 5 modalities is a problem.<br />
<br />
'''Possible approach:''' <br />
<br />
With the classification in the chronic image, acute image and Gabe&Marc`s algorithm, can this (segmentation) be done in the acute image?<br />
<br />
Kitware can do multivariant classification. PDFSegmenter is available in TubeTK. This method is semiautomatic, multivariant, and multiclass (2 types of edema & tumor). In this approach, you should indicate couple of points in edema and some other points. Andrei told that Marcel has something similar to that one. Both can be tried and the results can be compared.<br />
<br />
Questions:<br />
<br />
Whether an edema is hemorrhagic or non-hemorrhagic cannot be generalized. Micro bleeds happens and they are visible in SWI (not visible in the others).<br />
<br />
<br />
'''Input:'''<br />
# Data: At least 4-5 channels (T1, T2, SWI, DTI, GRE) are available. They are good for differenting edemas. <br />
# Lesion classes: How to distinguish between lesion classes? Andrei has a submitted paper about that.<br />
<br />
'''References'''<br />
* Characteristics of tumors<br />
** http://neurosurgery.mgh.harvard.edu/abta/primer.htm<br />
* Edema<br />
** http://www.uwhealth.org/healthfacts/B_EXTRANET_HEALTH_INFORMATION-FlexMember-Show_Public_HFFY_1126650980242.html<br />
* Brain tumor segmentation (Prastawa)<br />
** http://www.ncbi.nlm.nih.gov/pubmed/14697002<br />
* Symptoms of TBI (Glasgow Coma Scale = GCS)<br />
** http://emedicine.medscape.com/article/326510-overview<br />
<br />
== Brain inflammation at 3D volume (Deformation due to swelling) ==<br />
<br />
'''Motivation:''' <br />
<br />
Understanding how the brain swells during TBI is very important clinically because much of TBI critical care must address the phenomenon of brain inflammation, either pharmacologically or otherwise. Furthermore, TBI inflammation mechanisms are not understood as well as might be desired.<br />
<br />
'''Problem:''' <br />
<br />
How brain changes its shape due to swelling (Inflammation of brain)?<br />
Can the approach in Gabe and Marc`s paper be applied to solve that problem?<br />
<br />
'''Possible solution:'''<br />
<br />
There is a filter called, JacobianDeformationField, in ITK. The challenge here is how do we interpolate in brain region which is consistently swelling or shrinking. Localization of the swelling is important (Swelling will be gone in the chronic image).<br />
Example: When the primary injury is small and there is a lot of swelling.<br />
<br />
Questions:<br />
# How brain swells? How brain inflamms as a result of injury? How gray&white matter gets effected by that? These are important.<br />
# How swelling benefits the injury parts? (Ventriculoscopy pressure, inflammation)<br />
# What are the measures that tell us there is swelling? If gray&white matter segmentation and labelling diadema gives information about that, we can do that.<br />
<br />
Vocabulary:<br />
Ventriculoscopy pressure: [[http://www.atlantabrainandspine.com/subject.php?pn=ventriculoscopy]]<br />
<br />
<br />
<br />
== Next Step ==<br />
<br />
# Andrei will give us the manual segmentation of the subject<br />
# Danielle will do segmentation for edema (hemorrhage or not)<br />
# Ilknur will pursue incorporating atlas into Gabe/Marc's method.<br />
# Marcel and Guido`s segmentation method can also be applied.<br />
<br />
[[Category:TubeTK Events and Meetings|2011.07.06]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.07.05&diff=53630TubeTK/Events/2011.07.052013-07-26T18:53:10Z<p>Jamie.snape: </p>
<hr />
<div>Danielle & Ilknur:<br />
== Adding TubeTK CLIs to Slicer ==<br />
<br />
Instructions for adding TubeTK CLIs to Slicer can be found in:<br />
http://www.cmake.org/Wiki/TubeTK/Slicer<br />
Basically, these steps should be followed for tubetk:<br />
# From tubetk, point code to Slicer CLI Repository for build and superbuild. (findpackage(Slicer))<br />
# From Slicer, add paths for CLI or python (this can be done from the Slicer GUI)<br />
## From JC's info today - CMakeLists to look at for Qt scripted modules (python): ~/Slicer4Trunk/Slicer4/Extensions/Testing/ExtensionTemplate/CMakeLists.txt<br />
<br />
Note:<br />
* You should be able to pass fiberbundles as CLI parameters, using the XML tag:<br />
<geometry [type="fiberbundle"]><br />
For example, see the "Labelmap Seeding" module - it has an output parameter "Output fiber bundle"<br />
<br />
* Instructions to copy CLI's to Slicer directory:<br />
<br />
cp <YourTubeTKBuildDirectory>/TubeTK-Build/lib/TubeTK/Plugins/*tube <YourSlicerDirectory>/lib/Slicer3/Plugins<br />
<br />
We should specify <YourTubeTKBuildDirectory>/TubeTK-Build/lib/TubeTK/Plugins as the external module directory in Slicer's settings<br />
BUT this will cause a crash in Slicer because it tries to read the non-plugin executables as well:<br />
<br />
> 4218 [] TRACE org.slicer.base.qtcore.qSlicerCoreIOManager -<br />
> registerIO qSlicerVolumesIO<br />
> 4478 [] TRACE org.slicer.base.qtcore.qSlicerCoreIOManager -<br />
> registerIO qSlicerFiberBundleIO<br />
> ASSERT: "!_moduleTitle.isEmpty()" in file<br />
> /home/andrey/Slicer/Slicer4/Base/QTCore/qSlicerModuleManager.cxx, line<br />
> 141<br />
> Aborted<br />
><br />
> Launch /usr/local/andrey/Slicer4-Qt-debug/Slicer-build/bin/SlicerQT-real<br />
> returned with error: child process exited abnormally<br />
><br />
<br />
In particular, this is because of TextCompareCommand and ImageCompareCommand, which should be changed to build somewhere else.<br />
<br />
Additional small TODOs:<br />
- hide external ITK/VTK/CTK directories as advanced CMake parameters, or hide them completely so that they can only be specified on the command line<br />
<br />
<br />
<br />
== Creating Mantis for TubeTK ==<br />
# Creation of TubeTK project in Kitware's bug tracker:<br />
## This is done. It is in http://public.kitware.com/Bug/my_view_page.php<br />
# Setup the python-based hooks for linking with the bug tracker so that git commits to tubetk must be tied to mantis issues.<br />
#Setup the main git repo to be at public.kitware.com/tubetk.git. This will be used instead of the tubetk git repo on gitorous http://gitorious.org/tubetk/<br />
<br />
[[Category:TubeTK Events and Meetings|2011.07.05]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.02.01&diff=53629TubeTK/Events/2011.02.012013-07-26T18:52:47Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
<br />
* Finalized and submitted ISBI paper<br />
* Seed registration with initial transform<br />
* Image directions - reorient images to axial before image (bug...)<br />
* Worked out new regularization term when dealing with multiple normals<br />
** 1/2 "consolidated" into a matrix, 1/2 not...:<br />
[[File:CornersRegularizer.png]]<br />
<br />
[[Category:TubeTK Events and Meetings|2011.02.01]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.01.24&diff=53628TubeTK/Events/2011.01.242013-07-26T18:52:31Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
<br />
== Grassroots ==<br />
* Went again through [http://www.paraview.org/Wiki/TubeTK/Events/2010.11.23 Romain's list of software] + more of my own searching<br />
* Unfortunately lots of software is based on matlab<br />
<br />
* Promising:<br />
** [http://grail.cs.washington.edu/software/cmvs/ CMVS (includes PMVS)]<br />
** [http://phototour.cs.washington.edu/bundler/ Bundler]<br />
** Typical pipeline: Bundler calculates sparse 3D points from input images; input results into CMVS for denser point cloud (examples from [http://nghiaho.com/?page_id=253 blog])<br />
** Status - running into 64-bit issues (binary provided is looking for 32-bit system libraries) - can build from source (which is evidently buggy on 64-bit from my online searching), or find a 32-bit machine until we know it will work<br />
<br />
* Could be promising, but under development:<br />
** [http://code.google.com/p/libmv/ libmv]<br />
<br />
* Not appropriate:<br />
**[http://www.imodeller.com/en/ iModeller]: Must place object on "object pattern" during acquisition<br />
**[http://www.3dsom.com/cgi-bin/trialsurvey2_1.cgi 3DSOM]: Must place object on "3DSOM Pro mat" during acquistion<br />
**[http://sites.google.com/site/pierrefillard/coding-blog/createa3dvolumefromseveral2dimages Code from Pierre Fillard]: Simply merges stacks of 2D images into a 3D volume<br />
**[http://hugin.sourceforge.net/ hugin]: Panoramas, not 3D reconstructions<br />
**[http://rosset.org/graphix/anaglyph/zanag_en.htm Z-Anaglyph]: Creates red-blue composite images for 3D viewing, not actual reconstructions<br />
** [http://www.gatan.com/products/software/3D_Reconstruction.php Gatan products]: For electron micrography, looks dependent on their acquisition software<br />
<br />
* Search terms<br />
** multi-view stereo software<br />
** structure from motion software<br />
<br />
== Sliding Organ ==<br />
* Fixed test using a .vtk surface instead of a given normal vector image and weight image<br />
* Fixed coordinate system bugs /w Slicer<br />
* Style fixes<br />
* Found bug in AnisotropicDiffusionTensorFunction - not taking spacing into consideration when calculating image derivatives<br />
* Formalized strategy for dealing with corners - which was refuted by Marc =)<br />
<br />
[[Category:TubeTK Events and Meetings|2011.01.24]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.01.18&diff=53627TubeTK/Events/2011.01.182013-07-26T18:52:11Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
* Sliding registration<br />
** Gabor F - might have a student<br />
*** prostate surgical guidance (intra-op MRI/US)<br />
** Andrey F<br />
* profiling<br />
** 30% speedup<br />
** oprofile<br />
* PDF Segmenter<br />
** Ron's list<br />
** parameters based on tissue/case-case<br />
** Cropping<br />
** Show results and user's input at same time<br />
** Tumor example (STEPHEN!!!)<br />
<br />
= Stephen =<br />
* UNC BME - tumor micro environments<br />
* Gabrielle - MRV<br />
* Workflow in Python...vessel extraction<br />
* Brain-specific vessel extraction<br />
* USC: LDA<br />
<br />
<br />
= Future =<br />
* Danielle<br />
** Journal article<br />
*** Matrix for object tensor<br />
** Grassroots - this week<br />
<br />
= Cool ideas =<br />
* Maintain mapping from use-cases to parameters for CLIs<br />
** registration of MR to MR, within patient, brain<br />
** KISS: xml file used by GUI/Python<br />
<br />
[[Category:TubeTK Events and Meetings|2011.01.18]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2011.01.04&diff=53626TubeTK/Events/2011.01.042013-07-26T18:51:50Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
<br />
* Accomplished last week: Vacation =)<br />
* Plans for this week:<br />
** Small changes to python script for PDF segmenter<br />
** Profiler for PDF segmenter<br />
** Profiler for anisotropic diffusive registrator<br />
** Grassroots - 3D reconstructions<br />
<br />
[[Category:TubeTK Events and Meetings|2011.01.04]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.12.09&diff=53625TubeTK/Events/2010.12.092013-07-26T18:51:35Z<p>Jamie.snape: </p>
<hr />
<div>= Data =<br />
* No word from Brandon yet<br />
** Will call if no news by end of day<br />
* US volumes written to a tmp dir that is wiped after each case<br />
** Can be copied to a USB before being wiped<br />
** Will be in a proprietary format, but I think we have readers<br />
<br />
= Duke =<br />
* Dr. Friedman said no need for subk after initial query<br />
* Going to have to push a subk to purchase a BrainLAB:VVLink license<br />
<br />
[[Category:TubeTK Events and Meetings|2010.12.09]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.12.07&diff=53624TubeTK/Events/2010.12.072013-07-26T18:51:07Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
<br />
* Fixed Windows AnisotropicDiffusive failing tests - thanks Stephen!<br />
* AnisotropicDiffusive CLI loads into Slicer4<br />
* Cleaned up TubeTK CLIs<br />
* Started Slicer + TubeTK documentation (http://www.cmake.org/Wiki/TubeTK/Slicer)<br />
* Starting python script for "interactive PDF segmenter"<br />
* Read "A Non-rigid Registration Framework That Accommodates Resection and Retraction" - Petter and Wells<br />
<br />
= Stephen =<br />
<br />
* Stable set of dashboard machines now running<br />
* Radius estimation now working<br />
** Room for improvement<br />
* Workflow defined for vascular segmentation from brain MRA from within Slicer<br />
** Need to convert to python script for Slicer<br />
* USC needs to be my focus for the next week or two<br />
* Review of VMTK suggests it has outstanding features, but it isn't an example of "best practices" for a Slicer-focused application<br />
** We will continue with CLIs that are called from python scripts<br />
*** CLIs provide "algorithm logic"<br />
*** Python provides "application-specific logic"<br />
**** e.g., intuitive user interfaces and gui for chaining multiple CLIs to accomplish a specific task<br />
<br />
[[Category:TubeTK Events and Meetings|2010.12.07]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.11.16-Planning&diff=53623TubeTK/Events/2010.11.16-Planning2013-07-26T18:50:51Z<p>Jamie.snape: </p>
<hr />
<div>= Projects that build on TubeTK =<br />
* USC<br />
** 1.0 FTE<br />
* Grassroots<br />
** 3D Reconstruction from photos taken around a root system<br />
*** Romain<br />
** 3D Vessel Extraction<br />
** 3D Registration<br />
* TubeTK -> Slicer<br />
** Documnetation on Wiki<br />
*** How to install for Slicer<br />
*** What each module does<br />
**** Input, parameters, output, new parameters, output, ....<br />
** PDFSegmenter as a loadable module<br />
** Tests moved/copied to CLI<br />
** Vessel extraction<br />
*** SA<br />
** Vessel registration <br />
** Vessel tortuosity<br />
*** Romain<br />
*** Data - SA<br />
* UCLA / NAMIC<br />
** Register time series using sliding organ registration<br />
** Register atlas to patient using sliding organ<br />
*** Modify atlas to contain approximation to injury as part of initialization workflow<br />
** Danielle and Stephen<br />
* BWH Ultrasound<br />
** Setup tcon with Sandy and Tina<br />
*** SA<br />
** Schedule data acquisition with Dr. Friedman<br />
*** SA<br />
** Purchase PC for US Probe<br />
*** SA<br />
= Infrastructure work =<br />
* CLANG for MetaIO<br />
** Dave P<br />
* Business collaborations list<br />
** Lisa<br />
* Setup Doxygen<br />
* VTK Error<br />
** SA<br />
* Setup Dashboard machines<br />
** SA<br />
* Data to MIDAS<br />
** Romain<br />
= Future projects =<br />
* Head and neck tumors<br />
** With Kilian and Marc<br />
** Consider using US for tumor and tissue model formation/tracking<br />
<br />
[[Category:TubeTK Events and Meetings|2010.11.16-Planning]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.11.23&diff=53622TubeTK/Events/2010.11.232013-07-26T18:50:22Z<p>Jamie.snape: </p>
<hr />
<div>== Romain ==<br />
# failed at reconstruction --> terrible week trying to run some codes <br />
# I think to get the reconstruction we need more information on the pictures (position of the camera for each photograph,etc...)<br />
# softwares tried : <br />
*A list of commercial and non commercial softwares is available [http://biocomp.stanford.edu/3dreconstruction/software/index.html here]<br />
**OpenCV : I think a script is writable if we have more informations but it could take a long long time <br />
**CMVS (includes PMVS) : couldn't install but is definitely worth trying [http://grail.cs.washington.edu/software/cmvs/ CMVS] : I recommend you try it on Windows first because the installation was really really painful on my machine :)<br />
**hugin : correspondence points between photos failed<br />
**[http://sites.google.com/site/pierrefillard/coding-blog/createa3dvolumefromseveral2dimages code from Pierre Fillard] --> only working for stacks of images<br />
**java3D on ImageJ : trouble with the installation<br />
**code in ITK/Example/IO ---> not tested yet ( itkImageSeriesReader + itkImageFileWriter )<br />
**Rhino , Maya , Strata(has Mac and PC free trial; not tested) : NOT FREE<br />
** [http://www.gatan.com/products/software/3D_Reconstruction.php Gatan products] : to be tried on Windows (.exe files) :[http://www.gatan.com/resources/scripting/demo/index.php downloads]<br />
**[http://www.3dsom.com/cgi-bin/trialsurvey2_1.cgi 3dsom] free trial on Windows(again!) license code : XysqzHIKLiRv<br />
**[http://rosset.org/graphix/anaglyph/zanag_en.htm Z-Anaglyph] for Windows --. not good, only to create 3D images you can see with blue and red googles<br />
**[http://www.microsoft.com/getsilverlight/get-started/install/default.aspx Microsoft Silverlight] for Windows --> I have no idea how it is working but doesn't seem to be really important<br />
**[http://www.imodeller.com/en/ iModeller] for Windows and Mac --> looks pretty nice (the pdf file shows exactly the kind of stuff we want) BUT it is only a Demo<br />
<br />
== Danielle ==<br />
* 80% finished Slicer CLI - need to check over + make sure testing is ok<br />
* Discovered bug introduced in last week's changes, due to regression testing on deformation fields and not transformed moving images<br />
* Fixed bug introduced in last week's changes =)<br />
* Helping Luis out with handling vector images in ITK's itkTestMain.h<br />
<br />
[[Category:TubeTK Events and Meetings|2010.11.23]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.11.16&diff=53621TubeTK/Events/2010.11.162013-07-26T18:50:06Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
* Submitted ISBI paper<br />
* Cleaned up sliding organ registration code:<br />
** tests on smaller images = smaller data to be distributed + faster tests<br />
** clean up logic - don't compute things unnecessarily when using no regularization or gaussian regularization = faster execution<br />
** boundary conditions<br />
** fixed dashboard warnings<br />
** style<br />
** started web documentation - need workflow description<br />
* TODO:<br />
** documentation<br />
** Slicer CLI<br />
** then get back to research<br />
** NAMIC UCLA/MSV<br />
<br />
<br />
=Romain =<br />
# SPIE Conference Website<br />
# Started looking at MetaIO issues with CLANG [http://www.cdash.org/CDash/viewBuildError.php?type=1&buildid=727319 Dashboard] but can't find the files to be modified to silence the warnings :-|<br />
<br />
[[Category:TubeTK Events and Meetings|2010.11.16]]</div>Jamie.snapehttps://public.kitware.com/Wiki/index.php?title=TubeTK/Events/2010.11.09&diff=53620TubeTK/Events/2010.11.092013-07-26T18:49:48Z<p>Jamie.snape: </p>
<hr />
<div>= Danielle =<br />
* XCAT validation with MeshValmet (+ scripts for preprocessing and interpreting MeshValmet results)<br />
[[File:2011_11_09_XCATValidationResults.png]]<br />
* Haussdorf distance not informative<br />
* Finished writing paper<br />
* Next priorities - similar to last week:<br />
** some code cleanup<br />
** register CT data<br />
** implement improvements from Marc's suggestions + discussion with Stephen (coarse to fine, normals as matrices to handle corners)<br />
** documentation on TubeTK wiki<br />
<br />
<br />
==Romain==<br />
*done<br />
# Grassroots data on Slicer ---> fail [https://www.kitware.com/KWWiki/index.php/Medical_Imaging/Grassroots Grassroots kitware]<br />
# Compute Tortuosity documentation on the wiki [http://public.kitware.com/Wiki/TubeTK/ComputeTortuosity ComputeTortuosity wiki]<br />
# XHTML/CSS Tutorials + reproduction of the SPIE Medical Imaging Computer-Aided Diagnosis Workshop website on my machine<br />
*to do<br />
#get the informations about the conference to put on the web site<br />
#get access to the kitware website to host the conference site<br />
# what else?<br />
<br />
[[Category:TubeTK Events and Meetings|2010.11.09]]</div>Jamie.snape