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
 
(155 intermediate revisions by 18 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] >= 2.8.9
 
* [{{tool|download|git}} Git] >= 1.7.10
 
* [{{tool|download|svn}} Svn] >= 1.7
 
* Qt 4.8.6. <small>See details [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>
 
 
 
==== Ubuntu / Debian ====
 
* Ubuntu, Debian squeeze/wheezy/testing(jessie) users, just type the following line 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
 
 
 
'''For Ubuntu 12.04, 12.10 and 13.04''': You MUST download and build the standard cmake from http://cmake.org/ because the distributed version of cmake cannot be used to build slicer.
 
 
 
<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
 
cmake_package="cmake-2.8.11.2"; \
 
wget http://www.cmake.org/files/v2.8/$cmake_package.tar.gz -v -O $cmake_package.tar.gz && \
 
tar -xzvf $cmake_package.tar.gz; \
 
cd $cmake_package && \
 
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_package/bin/$tool /usr/local/bin/$tool; done
 
</pre>
 
 
 
'''For Ubuntu 12.04, 12.10, 13.04 and 13.10''': Qt >= 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>
 
 
 
References:
 
 
 
* Why cmake should be built from Source 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]
 
 
 
* Why Qt >= 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]
 
 
 
==== CentOS ====
 
*CentOS user type:
 
yum install make gcc-c++ libX11-devel libXt-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 (Maverick):'''
 
 
 
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''
 
 
 
''' (2) Use CMake 3.0.1'''
 
 
 
* 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)
 
* Qt >= 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).
 
-->
 
 
 
=== Windows ===
 
* [{{tool|download|cmake}} CMake] >= 2.8.10
 
* [{{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.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]] -->
 
** You may find that the '''unsigned''' binary downloads from this site are usable: http://sourceforge.net/projects/qtx64/files/qt-x64/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 <b>Debug mode is recommended</b>.
 
 
 
* IDE
 
** '''Tested/Recommended''': [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.
 
** '''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 :)
 
*** 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] -->
 
** '''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.
 
** '''Experimental''' (Visual Studio 2013 with Update 4): Slicer compilation was successful in Debug mode after disabling numpy, SimpleITK, and EMSegment modules in CMake. VS will not open using the regular command "Slicer.exe --VisualStudio". To open the debugging environment, start a new command prompt by typing "Slicer.exe --cmd". And just type your solution name in this new command prompt. That will open the VS 2013 GUI, and you can start Slicer for debugging. (Tested with Slicer 4.4 tag version.)
 
** '''Un-tested''': 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