Difference between revisions of "Documentation/Nightly/Developers/Build Instructions/Prerequisites"

From Slicer Wiki
Jump to: navigation, search
(→‎Common Prerequisites: 3.7.0-rc2 -> 3.7.1)
Line 236: Line 236:
==== Common Prerequisites ====
==== Common Prerequisites ====
* [{{tool|download|cmake}} CMake] >= 3.0 (3.7-rc02 recommended)
* [{{tool|download|cmake}} CMake] >= 3.0 (3.7.1 recommended)
* [{{tool|download|git}} Git] >= 1.7.10
* [{{tool|download|git}} Git] >= 1.7.10

Revision as of 17:30, 5 December 2016

Home < Documentation < Nightly < Developers < Build Instructions < Prerequisites


The prerequisites listed below are required to be able to configure/build/package/test Slicer.


  • CMake >= 3.7-rc02
  • Git >= 1.7.10
  • Svn >= 1.7
  • Qt 4.8.6. See details here. See some history here (Note that any version >= Qt 4.7.4 can be used only for Ubuntu < 12.04)


  • Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal
sudo apt-get install subversion git-core git-svn
sudo apt-get install make gcc g++ libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev
sudo apt-get install cmake
sudo apt-get install qt-sdk


Common Prerequisites
sudo apt-get install subversion git-core git-svn
sudo apt-get install make gcc g++ libx11-dev libxt-dev libgl1-mesa-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev
sudo apt-get install libosmesa6-dev  # Only for Ubuntu < 14.04.3
  1. On Ubuntu 14.04.3 LTS, attempting to install libosmesa6-dev results in an error.
    The following packages have unmet dependencies:
     libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed
     E: Unable to correct problems, you have held broken packages.

    For more details, see Bug 1424059.

  1. Slicer compiles successfully without that package, but VTK_OPENGL_HAS_OSMESA is disabled.
  1. Open a terminal and copy the command reported below
  2. Download stable version of CMake and extract the archive:
    mkdir ~/Support && cd ~/Support
    curl -O https://cmake.org/files/v3.5/cmake-3.5.2-Linux-x86_64.tar.gz
    tar -xzvf cmake-3.5.2-Linux-x86_64.tar.gz
  3. Create symbolic links into ~/bin
    mkdir -p ~/bin
    for name in cmake ctest cpack ccmake cmake-gui; do
      ln -s ~/Support/cmake-3.5.2-Linux-x86_64/bin/$name ~/bin/$name
  1. You MUST download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.
    See here for more details.

Ubuntu 14.04 and above: Qt 4 == 4.8.7 MUST be used.

See https://github.com/jcfr/qt-easy-build/blob/4.8.7/Build-qt.txt

Ubuntu 12.04, 12.10, 13.04 and 13.10: Qt 4 >= 4.8.5 MUST be used.

cd ~/Support   # This is where we will build Qt and dependent libraries
# Keep track of our working directory

# This will download, then build zlib and openssl in the current folder
rm -f get-and-build-openssl-for-slicer.sh
wget https://gist.githubusercontent.com/jcfr/9513568/raw/21f4e4cabca5ad03435ecc17ab546dab5e2c1a2f/get-and-build-openssl-for-slicer.sh
chmod u+x get-and-build-openssl-for-slicer.sh 

# This will download Qt source in the current folder
wget http://packages.kitware.com/download/item/6175/qt-everywhere-opensource-src-4.8.6.tar.gz
md5=`md5sum ./qt-everywhere-opensource-src-4.8.6.tar.gz | awk '{ print $1 }'` &&
[ $md5 == "2edbe4d6c2eff33ef91732602f3518eb" ] || echo "MD5 mismatch. Problem downloading Qt"

# This will configure and build Qt in RELEASE against the zlib and openssl previously built
tar -xzvf qt-everywhere-opensource-src-4.8.6.tar.gz
mv qt-everywhere-opensource-src-4.8.6 qt-everywhere-opensource-release-src-4.8.6
mkdir qt-everywhere-opensource-release-build-4.8.6
cd qt-everywhere-opensource-release-src-4.8.6
./configure -prefix $cwd/qt-everywhere-opensource-release-build-4.8.6    \
                   -release \
                   -opensource -confirm-license \
                   -no-qt3support \
                   -webkit \
                   -nomake examples -nomake demos \
                   -openssl -I $cwd/openssl-1.0.1e/include   -L $cwd/openssl-1.0.1e \
&& make -j7 && make install

For more details, consider reading the FAQ entry: Why Qt 4 >= 4.8.5 should be used on Ubuntu 12.04 and above ?


  • CentOS user type:
yum install make gcc-c++ libX11-devel libXt-devel libXrender-devel libXext-devel libGLU-devel mesa-libOSMesa-devel mesa-libGL-devel mesa-libGLU-devel ncurses


  • El Capitan is what most developers use.
  • CMake 3.7-rc02 is recommended.

MacOSX 10.9.4 (Mavericks)

(1) Make sure to install this update: http://support.apple.com/kb/DL1754

(2) Use CMake 3.0.1 - it is known to be working and is supported (if you want to use CMake already installed on your system, is known to work on Mac OS X 10.9.5)

$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1
$ CMake\ 2.8-11.app/Contents/bin/cmake --version
cmake version 2.8.11
  • Git >= 1.7.10
  • Svn >= 1.7
  • XCode (for the SDK libs)
    • After installing XCode, install XCode command line developer tools:
xcode-select --install

Mac OSX 10.11 (El Capitan)

XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. Remember to install XCode command line tools (see above) if a reinstall for XCode is needed.

The standard Qt4 installers fail on this version and the 4.8.6 source code won't build. But as described on the slicer-devel mailing list it is possible to install the homebrew version of qt4.

After installing the OS and Xcode, run the following two commands:

brew install qt4
xcode-select --install

TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn Slicer_USE_PYTHONQT_WITH_TCL off.

Mac OSX 10.12 (Sierra)

Follow instructions for 10.11 and then run :

mkdir Slicer-superbuild
cd Slicer-superbuild
make -j `sysctl -n hw.ncpu`

Note: if Xcode is installed and the compiler works but you get errors about stdlib.h be sure you have run the xcode-select --install step described above.

Confirmed with Xcode: Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e


Common Prerequisites

  • CMake >= 3.0 (3.7.1 recommended)
  • Git >= 1.7.10
    • Note For convenience, you could update the PATH variable so that git can be automatically discovered when configuring Slicer. If not, you will have to specify the GIT_EXECUTABLE at configure time.
  • SlikSvn . If using TortoiseSVN (versions that support command line tools), make sure you install Command line tools (disabled by default)
  • NSIS (optional): Needed if packaging Slicer - Click here to download.
  • Qt: See details here.

Tested and recommended build environment

  • Visual Studio 2013 with Update 5, as of commit 7160260: Slicer compilation is successful, with some caveats.
    • CMake >= 3.3.1
    • Build Qt 4.8.7 with SSL support using qt-easy-build.
    • For Debug mode, disable Slicer_USE_SimpleITK in CMake.

Experimental/deprecated build environments