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

From Slicer Wiki
Jump to: navigation, search
m (Reverted edits by Lasso (talk) to last revision by JChris.FillionR)
Line 229: Line 229:
 
* NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download.
 
* NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download.
  
* Qt 4.8.7 (for VS2013). See details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Windows|here]]
+
* Qt 4.8.6 (for VS2008). See details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Windows|here]]
 
** Normally you should plan to build Qt from source to have complete control over the process. See [https://github.com/jcfr/qt-easy-build one-liner build command] <!-- or more detailed [[#Build_instructions]] -->
 
** Normally you should plan to build Qt from source to have complete control over the process. See [https://github.com/jcfr/qt-easy-build one-liner build command] <!-- or more detailed [[#Build_instructions]] -->
 
** You may find that the '''unsigned''' binary downloads from this site are usable: http://sourceforge.net/projects/qt64ng/files/qt/x86-64/4.8.6/msvc2008/ (If you use .7z varaints extract them in the default location C:\Qt\ otherwise that installation will not be properly configured for use with CMake)
 
** You may find that the '''unsigned''' binary downloads from this site are usable: http://sourceforge.net/projects/qt64ng/files/qt/x86-64/4.8.6/msvc2008/ (If you use .7z varaints extract them in the default location C:\Qt\ otherwise that installation will not be properly configured for use with CMake)
Line 235: Line 235:
 
** For VS2012 Qt needs to be build from source. Build will fail, which can be fixed with this diff: https://gist.github.com/Vitallium/5220503 (read the comment too)
 
** For VS2012 Qt needs to be build from source. Build will fail, which can be fixed with this diff: https://gist.github.com/Vitallium/5220503 (read the comment too)
  
==== Tested and recommended build environment ====
+
==== VS2008 (deprecated) ====
  
* [https://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx Visual Studio 2013] with Update 5, as of [https://github.com/Slicer/Slicer/commit/71602609ce2ae5e473ece392500825ca96213371 commit 7160260]: Slicer compilation is successful, with some caveats.
+
** '''Deprecated''': [https://www.microsoft.com/visualstudio/en-us/products/2008-editions Microsoft Visual Studio 9 2008] (Any edition). [http://go.microsoft.com/?linkid=7729279 VS Express 2008 with SP1 direct link] (functional as of Jan 11, 2014)
** CMake >= 3.3.1
+
*** Make sure to install:
** Build Qt 4.8.7 with SSL support using [https://github.com/jcfr/qt-easy-build/tree/4.8.7 qt-easy-build].
+
**** SP1. Click [http://www.microsoft.com/download/en/details.aspx?id=10986 here] to download SP1 and click [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008206.html here] to understand the motivation.
** For Debug mode, disable <code>Slicer_USE_SimpleITK</code> in CMake.
+
*** Make sure to patch VS2008 using the script [https://gist.github.com/jcfr/3c7bef3f8b32f9f6ad4b fix-vc9-redist-manifests.ps1]
  
==== Experimental/deprecated build environments ====
+
==== VS2010 (experimental) ====
  
* VS2008 (deprecated)
+
** '''Experimental''': The plan is to support [https://www.microsoft.com/visualstudio/en-us/products/2010-editions Microsoft Visual Studio 2010] (Any edition). {{note}} NOTE THAT EXPERIMENTAL MEANS THIS DOESN'T YET WORK :)
** [https://www.microsoft.com/visualstudio/en-us/products/2008-editions Microsoft Visual Studio 9 2008] (Any edition). [http://go.microsoft.com/?linkid=7729279 VS Express 2008 with SP1 direct link] (functional as of Jan 11, 2014)
+
*** Make sure to build or install:
** Make sure to install SP1: Click [http://www.microsoft.com/download/en/details.aspx?id=10986 here] to download SP1 and click [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2012/008206.html here] to understand the motivation.
+
**** Qt 4.8  
*** Make sure to patch VS2008 using the script [https://gist.github.com/jcfr/3c7bef3f8b32f9f6ad4b fix-vc9-redist-manifests.ps1]
+
*** Make sure to install:
* VS2010 (experimental, may not work)
+
**** SP1. Click [http://www.microsoft.com/download/en/details.aspx?id=23691 here] to download SP1 and click [http://developer.qt.nokia.com/faq/answer/why_do_all_qt_4.7_applications_crash_when_using_windows_7_x64_w_vs_2010 here] to understand the motivation.
** [https://www.microsoft.com/visualstudio/en-us/products/2010-editions Microsoft Visual Studio 2010] (Any edition)
+
**** SP1 Compiler update. Click [https://www.microsoft.com/download/en/details.aspx?id=4422 here] to download and [http://slicer-devel.65872.n3.nabble.com/Windows-7-64Bits-Slicer-4-Build-with-VC-2010-problem-tt3730524.html#a3731661 here] to understand the motivation.
** Make sure to build or install:
 
*** Qt 4.8  
 
** Make sure to install:
 
*** SP1. Click [http://www.microsoft.com/download/en/details.aspx?id=23691 here] to download SP1 and click [http://developer.qt.nokia.com/faq/answer/why_do_all_qt_4.7_applications_crash_when_using_windows_7_x64_w_vs_2010 here] to understand the motivation.
 
*** SP1 Compiler update. Click [https://www.microsoft.com/download/en/details.aspx?id=4422 here] to download and [http://slicer-devel.65872.n3.nabble.com/Windows-7-64Bits-Slicer-4-Build-with-VC-2010-problem-tt3730524.html#a3731661 here] to understand the motivation.
 
 
<!-- JC: This links shouldn't be here: 1) Since this the developer section, it's assumed Visual Studio is installed. 2) The Dll are distributed within Slicer package -->
 
<!-- JC: This links shouldn't be here: 1) Since this the developer section, it's assumed Visual Studio is installed. 2) The Dll are distributed within Slicer package -->
 
<!-- *** Optional: "Microsoft Visual C++ 2010 SP1 Redistributable Package". Click [http://www.microsoft.com/download/en/details.aspx?id=13523 here for x64] download, or [http://www.microsoft.com/download/en/details.aspx?id=13523 here for x86] download.  [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29 x86 (32bit) for VS 2008] -->
 
<!-- *** Optional: "Microsoft Visual C++ 2010 SP1 Redistributable Package". Click [http://www.microsoft.com/download/en/details.aspx?id=13523 here for x64] download, or [http://www.microsoft.com/download/en/details.aspx?id=13523 here for x86] download.  [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29 x86 (32bit) for VS 2008] -->
* VS2012 (experimental)
+
 
** Use a desktop version such as [http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-desktop Visual Studio 2012 Express <b>for Windows Desktop</b>] and remember [http://www.microsoft.com/en-us/download/details.aspx?id=38188 Visual Studio 2012 Update 2]). Do <b>not</b> use Visual Studio Express 2012 <em>for Windows 8</em>. You must install [http://msdn.microsoft.com/en-us/library/ms717422.aspx Windows SDK], otherwise CMake will not even find the C compiler during configure. In CMake, choose <tt>Visual Studio 11 Win64</tt> as generator.
+
==== VS2012 (experimental) ====
* Cygwin (untested)
+
 
** Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).
+
** '''Experimental''' (Visual Studio 2012): Use a desktop version such as [http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-desktop Visual Studio 2012 Express <b>for Windows Desktop</b>] and remember [http://www.microsoft.com/en-us/download/details.aspx?id=38188 Visual Studio 2012 Update 2]). Do <b>not</b> use Visual Studio Express 2012 <em>for Windows 8</em>. You must install [http://msdn.microsoft.com/en-us/library/ms717422.aspx Windows SDK], otherwise CMake will not even find the C compiler during configure. In CMake, choose <tt>Visual Studio 11 Win64</tt> as generator.
 +
 
 +
==== VS2013 (recommended) ====
 +
 
 +
** '''Tested/Recommended''' (Visual Studio 2013 with Update 5, as of [https://github.com/Slicer/Slicer/commit/71602609ce2ae5e473ece392500825ca96213371 commit 7160260]): Slicer compilation is successful, with some caveats. Steps:
 +
*** CMake >= 3.3.1
 +
*** Build Qt 4.8.7 with SSL support using [https://github.com/jcfr/qt-easy-build/tree/4.8.7 qt-easy-build].
 +
*** For Debug mode, disable <code>Slicer_USE_SimpleITK</code> in CMake.
 +
 
 +
==== Cygwin (untested) ====
 +
 
 +
** '''Un-tested''': Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).

Revision as of 03:09, 21 May 2016

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


For the latest Slicer documentation, visit the read-the-docs.


PREREQUISITES


Consider reading platform specific requirements listed below.

Linux

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

Debian

  • 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

Ubuntu

  • Ubuntu 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 libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev


For Ubuntu < 12.04:

sudo apt-get install cmake # Only for Ubuntu < 12.04

For Ubuntu < 14.04.3:

sudo apt-get install libosmesa6-dev
  • NOTE: 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.

See Bug 1424059.

Slicer compiles successfully without that package, but VTK_OPENGL_HAS_OSMESA is disabled.

For Ubuntu 12.04 and above: You *MUST download the standard CMake binary* from http://cmake.org/download because the distributed version of CMake cannot be used to build slicer. For example, on a 64-bit system, you will download the file cmake-X.Y.Z-Linux-x86_64.tar.gz associated with the latest stable version.

References:


For Ubuntu 12.04, 12.10, 13.04 and 13.10: Qt 4 >= 4.8.5 MUST be used. See reference below for more details.

cd ~/Support   # This is where we will build Qt and dependent libraries
 
# Keep track of our working directory
cwd=$(pwd)

# 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 
./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

References:

  • Why Qt 4 >= 4.8.5 should be used on Ubuntu 12.04 and above ?

CentOS

  • 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


MacOSX

MacOSX 10.9.4 (Maverick):

(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, 2.8.12.2 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)

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.

Windows

Common Prerequisites

  • CMake >= 3.0
  • 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 4.8.6 (for VS2008). See details here
    • Normally you should plan to build Qt from source to have complete control over the process. See one-liner build command
    • You may find that the unsigned binary downloads from this site are usable: http://sourceforge.net/projects/qt64ng/files/qt/x86-64/4.8.6/msvc2008/ (If you use .7z varaints extract them in the default location C:\Qt\ otherwise that installation will not be properly configured for use with CMake)
    • Details: Using the Qt Designer on Windows requires that the Slicer plugins are compiled in the same mode as Qt. If Qt was compiled in Release mode (default), Slicer would have to be compiled in Release mode as well. However if Qt is compiled in Debug mode only, Slicer has to be compiled in Debug too. When Qt is in "Release and Debug" mode only the Release version of Designer.exe is generated, Slicer would have to be compiled in Release. So for developers, the Debug mode is recommended.
    • For VS2012 Qt needs to be build from source. Build will fail, which can be fixed with this diff: https://gist.github.com/Vitallium/5220503 (read the comment too)

VS2008 (deprecated)

VS2010 (experimental)

    • Experimental: The plan is to support Microsoft Visual Studio 2010 (Any edition). Note NOTE THAT EXPERIMENTAL MEANS THIS DOESN'T YET WORK :)
      • Make sure to build or install:
        • Qt 4.8
      • Make sure to install:
        • SP1. Click here to download SP1 and click here to understand the motivation.
        • SP1 Compiler update. Click here to download and here to understand the motivation.

VS2012 (experimental)

VS2013 (recommended)

    • Tested/Recommended (Visual Studio 2013 with Update 5, as of commit 7160260): Slicer compilation is successful, with some caveats. Steps:
      • 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.

Cygwin (untested)

    • Un-tested: Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).