Slicer3:Build Instructions

From NAMIC Wiki
Jump to: navigation, search
Home < Slicer3:Build Instructions

All-in-one Script to checkout and build Slicer3

There's a script called getbuildtest.tcl that makes the support libraries (VTK, ITK, teem, etc) and also builds slicer and does a dashboard submission. Just do the following two commands (see for windows users below):


  svn co http://www.na-mic.org/svn/Slicer3/trunk Slicer3

  ./Slicer3/Scripts/getbuildtest.tcl


Note: that a Slicer3-lib and Slicer3-build directory will be created for you. This is meant to be used to set up new machines and to run nightly testing of the full builds.

To run on unix:

./Slicer3-build/bin/Slicer3

To run on windows:

./Slicer3-build/bin/debug/Slicer3Launcher.exe

Note: the whole build environment takes about 1.5G of disk space.

Note also that getbuildtest will do an Experimental submission to the Slicer3 dashboard. If you want to use getbuildtest without submitting to the dashboard, you can set the test type to nothing with

getbuildtest.tcl -t ""

Other options for the -t (--test-type) option are Nightly or Continuous (or any of the CTest options).

Usage:

 usage: getbuildtest [options] [target]
   [target] is determined automatically if not specified
   [options] is one of the following:
    --help : prints this message and exits
    --clean : delete lib and build directories first
    -t --test-type : CTest test target
    --release : compile with optimization flags
    --update : does a cvs/svn update on each lib

Errors from getbuildtest

You will need to have your firewall configured to allow access to na-mic.org port 8000 for svn, and also cvs access through port 2401. Also you need 8081 for submitting to the dashboard.

Other errors might mean you don't have all the build tools (see next section).

Updating Your getbuildtest Build

There are a few options:

  • you can re-run getbuildtest and it will update slicer3 and rebuild (just slicer3)
  • you can add the --update option and all the libs will get a cvs/svn update and will rebuild if needed (good for tracking the development head of VTK/ITK/KWWidgets etc).
  • you can just 'svn update' in the Slicer3 directory and then do 'make' in the Slicer3-build to get just the latest Slicer3 code.

The following command for unix machines will update, build, and launch the latest Slicer3:

svn update && (cd ../Slicer3-build; make && ./bin/Slicer3)


getbuildtest on windows

While still experimental, the script should also work on a properly configured windows environment. Current requirements are:

  • Developer studio 8 Visual C++ Express which is free from Microsoft - be sure to install the Platform SDK and follow the ridiculous manual steps to set up the paths see below.
    • Other releases of visual studio should also work (7 and 7.1)
    • If they are installed in "c:/Program Files" they will be detected by the build script automatically
  • Cygwin with the following packages
    • tcltk
    • svn
    • cvs
    • unzip
    • curl
  • With Developers Studio and cygwin installed, you only need to do the svn checkout and getbuildtest script to get a fully working Slicer3 plus all the tools you need to develop new code.
  • If you build Slicer3, but can't get it to launch (either it fails silently, or gripes about not being able to find the itcl package, you can remedy this as follows:
    • Go to System Properties -> Environment Variables and set TCL_LIBRARY to
C:/Slicer3-debug/Slicer3-lib/tcl-build/lib

with the path changed as necessary to reflect where tcl-build/lib is on your machine.

Manual checkout/build of Slicer3 and support libraries:

Prerequisite software

You need to get and build the following packages if you aren't using the getbuildtest script:

  1. CMake (2.4.1 or later)
  2. Tcl/Tk (8.4 or later)
  3. incrTcl (3.2.1)
  4. VTK 5.0
  5. ITK 2.8
  6. KWWidgets CVS head

Build Steps

Steps:

$ svn co http://www.na-mic.org:8000/svn/Slicer3/trunk Slicer3
$ cvs -d :pserver:anoncvs@www.vtk.org:/cvsroot/VTK co VTK
$ cvs -d :pserver:anoncvs@www.itk.org:/cvsroot/Insight co Insight
$ cvs -d :pserver:anoncvs@www.kwwidgets.org:/cvsroot/KWWidgets co KWWidgets

You may choose to take VTK5 instead of VTK CVS

Configure and build ITK

  • BUILD_SHARED_LIBS ON
  • CMAKE_SKIP_RPATH ON

Configure and build VTK

  • All systems:
    • BUILD_SHARED_LIBS ON
    • CMAKE_SKIP_RPATH ON
    • VTK_WRAP_TCL ON
    • VTK_DEBUG_LEAKS ON


  • MacOSX specific (Make sure to install X11):
    • VTK_USE_CARBON OFF
    • VTK_USE_X ON


  • Note, those options should not appear, since they disapear since VTK5:
    • VTK_USE_HYBRID ON
    • VTK_USE_PATENTED ON
  • Make sure that the TCL and TK path are set properly
    • TCL_* and TK_*

Configure and build KWWidgets

  • You need to specify where your VTK build tree is.
  • BUILD_SHARED_LIBS ON
  • CMAKE_SKIP_RPATH ON

Build and Run Slicer3

Manually

  1. Check out and build slicer3 (e.g. on linux)
 svn co http://www.na-mic.org:8000/svn/Slicer3/trunk Slicer3
 mkdir Slicer3-build
 cd Slicer3-build
 ccmake ../Slicer3
 make

Again make sure to turn:

  • BUILD_SHARED_LIBS ON
  • CMAKE_SKIP_RPATH ON


Start slicer with the Slicer3Launcher executable in your bin directory.

Links

Information on Free Microsoft C++ Compiler on Windows

Be sure to follow all the steps on Microsoft link. Yes it means you need to download the compiler and sdk.