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

From Slicer Wiki
Jump to: navigation, search
(moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(111 intermediate revisions by 13 users not shown)
Line 1: Line 1:
<noinclude>{{documentation/versioncheck}}</noinclude>
+
{{documentation/banner
__TOC__
+
| text  = [https://slicer.readthedocs.io/en/latest/developer_guide/build_instructions/index.html This page has been moved to read-the-docs.]
 
+
| background-color = 8FBC8F }}
== PREREQUISITES ==
 
<br>
 
<!--
 
Please check that the following tools are installed on your machine.
 
 
 
<br>
 
{{mbox
 
| type = protection
 
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].
 
| image= [[{{tool|logo|qt}}|x40px]]
 
}}
 
<br>
 
 
 
{{mbox
 
| type = protection
 
| text = CMake is '''required'''.
 
| image= [[{{tool|logo|cmake}}|x40px]]
 
}}
 
<br>
 
 
 
{{mbox
 
| type = protection
 
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.
 
| image= [[{{tool|logo|git}}|x40px]]
 
}}
 
<br>
 
 
 
{{mbox
 
| type = protection
 
| text = SVN is '''required'''.
 
| image= [[{{tool|logo|svn}}|x40px]]
 
}}
 
 
 
<br>
 
-->
 
Consider reading platform specific requirements listed below.
 
 
 
=== Linux  ===
 
* [{{tool|download|cmake}} CMake] >= 3.x
 
* [{{tool|download|git}} Git] >= 1.7.10
 
* [{{tool|download|svn}} Svn] >= 1.7
 
* Qt 4.8.6. <small>See details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Linux|here]]. See some history [http://na-mic.org/Mantis/view.php?id=3325#bugnotes here] (Note that any version >= Qt 4.7.4 can be used only for Ubuntu < 12.04)</small>
 
 
 
==== 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 <tt>libosmesa6-dev</tt> 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 [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].
 
 
 
Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> 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 <code>cmake-X.Y.Z-Linux-x86_64.tar.gz</code> associated with the latest stable version.
 
 
 
<small>
 
References:
 
 
 
* Why distributed CMake can not be used on Ubuntu 12.04 and above ?
 
** http://slicer-devel.65872.n3.nabble.com/PYTHON-INCLUDE-DIR2-when-building-Slicer4-td4028557.html
 
** Slicer issue [http://na-mic.org/Mantis/view.php?id=3103 #3103]
 
** Slicer issue  [http://na-mic.org/Mantis/view.php?id=3116#c8649 #3116]
 
** CMake issue [http://public.kitware.com/Bug/view.php?id=14156 #14156]
 
 
 
</small>
 
 
 
<!--
 
<pre>
 
sudo apt-get install openssl libssl-dev
 
 
 
mkdir ~/Support && cd Support    # This is where we will download and install required software
 
 
 
# By copying this one-liner in your terminal, it will download and build CMake
 
wget http://www.cmake.org/files/v3.3/cmake-3.3.1.tar.gz && \
 
tar xzvf cmake-3.3.1.tar.gz \
 
cd cmake-3.3.1 && \
 
cmake -DCMAKE_USE_OPENSSL:BOOL=ON && \
 
make -j4
 
 
 
# By copying this one-liner, symbolic links to cmake tools will be created in /usr/local/bin.
 
# That way calling cmake, ctest, ... from the command line will resolve to this version of CMake.
 
for tool in cmake ccmake ctest cpack; do sudo ln -s ~/Support/cmake-3.3.1/bin/$tool /usr/local/bin/$tool; done
 
</pre>
 
-->
 
 
 
'''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.
 
 
 
<pre>
 
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
 
</pre>
 
 
 
<small>
 
References:
 
 
 
* Why Qt 4 >= 4.8.5 should be used on Ubuntu 12.04 and above ?
 
** Slicer issue [http://www.na-mic.org/Bug/view.php?id=3325 #3325]
 
</small>
 
 
 
==== 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
 
 
 
<!--
 
Todo: This will have to be added in FAQ: Troubleshoot section
 
''glx-utils'' provides ''glxgears'' that can be used to test rendering
 
-->
 
 
 
=== MacOSX ===
 
 
 
====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, 2.8.12.2 is known to work on Mac OS X 10.9.5)
 
 
 
* Mac Os X >= 10.5 (Leopard)
 
* [{{tool|download|cmake}} CMake] >= 2.8.9
 
** For Mac Os X >= 10.8 ([http://en.wikipedia.org/wiki/OS_X_Mountain_Lion Mountain Lion]) and/or recent XCode >= 4.5.X - [{{tool|download|cmake}} CMake] >= 2.8.11 is required. See http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz
 
<!-- Waiting for the official release, get the release candidate rc1 [http://www.cmake.org/files/v2.8/cmake-2.8.11-rc1-Darwin64-universal.tar.gz here]. For explanation, see [[Documentation/{{documentation/version}}/Developers/Build_Instructions#ld:_framework_not_found_QtWebKit|here]] and [[Documentation/{{documentation/version}}/Developers/Build_Instructions#On_MacOSX_10.8.2C_CMake_hangs_forever|here]]. These versions are also known to work: exact version 20130121-g92bd8 [http://www.cmake.org/files/dev/cmake-2.8.10.20130121-g92bd8-Darwin-universal.tar.gz here] (or version >= 2.8.10.20130220 [http://www.cmake.org/files/dev/?C=M;O=D here]).
 
-->
 
 
$ 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
 
 
 
* [{{tool|download|git}} Git] >= 1.7.10
 
* [{{tool|download|svn}} Svn] >= 1.7
 
<!--
 
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9
 
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5
 
-->
 
* XCode (for the SDK libs)
 
** After installing XCode, install XCode command line developer tools:
 
<pre>
 
xcode-select --install
 
</pre>
 
* Qt 4 >= 4.8.5. We recommend you install the following two packages:
 
** Download and install [http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-opensource-mac-4.8.6-1.dmg qt-opensource-mac-4.8.6-1.dmg]
 
** Download and install [http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-opensource-mac-4.8.6-1-debug-libs.dmg qt-opensource-mac-4.8.6-1-debug-libs.dmg]
 
** For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]
 
* XQuartz - For Mac Os X >= 10.8 ([http://en.wikipedia.org/wiki/OS_X_Mountain_Lion Mountain Lion]) install XQuartz (http://xquartz.macosforge.org) to get X11 (no longer a default in OS X).
 
<!--
 
** Newer Xcode versions (e.g. 4.3.2) use clang as the default compiler and '''clang is not compatible with ITK version 3'''.  You should use ITK version 4 with recent versions of Xcode.
 
** Xcode with gcc should ork with either version of ITK.
 
** OS X Mountain Lion: In Xcode 4.5 you now need to install command line tools (no longer included by default). Install within Xcode under the Xcode->Preferences->Downloads tab (otherwise git svn will give errors). Then you will need to install XQuartz (http://xquartz.macosforge.org) to get X11 (no longer a default in OS X).
 
-->
 
 
 
====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 [http://slicer-devel.65872.n3.nabble.com/incompatible-qt-4-8-6-with-OS-X-El-Capitan-td4035551.html 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:
 
<pre>
 
brew install qt4
 
xcode-select --install
 
</pre>
 
 
 
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 ====
 
* [{{tool|download|cmake}} CMake] >= 3.0
 
* [{{tool|download|git}} Git] >= 1.7.10
 
<!--
 
*[[{{tool|logo|cmake}}|x16px]]  [{{tool|download|cmake}}  CMake] >= 2.8.10
 
*[[{{tool|logo|git}}|x16px]]  [{{tool|download|git}}  Git] >= 1.7.10
 
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.
 
-->
 
<!--
 
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.
 
-->
 
** {{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.
 
 
 
* [http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->. 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 [http://nsis.sourceforge.net/Download here] to download.
 
 
 
* Qt 4.8.7. See details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Windows|here]].
 
 
 
==== Tested and recommended build environment ====
 
 
 
* [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.
 
** 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.
 
 
 
==== Experimental/deprecated build environments ====
 
 
 
* VS2008 (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)
 
** 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.
 
*** Make sure to patch VS2008 using the script [https://gist.github.com/jcfr/3c7bef3f8b32f9f6ad4b fix-vc9-redist-manifests.ps1]
 
* VS2010 (experimental, may not work)
 
** [https://www.microsoft.com/visualstudio/en-us/products/2010-editions Microsoft Visual Studio 2010] (Any edition)
 
** 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 -->
 
<!-- *** 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.
 
* Cygwin (untested)
 
** Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).
 

Latest revision as of 19:04, 6 August 2020

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