|
Tags: 2017 source edit, Replaced |
(99 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 = Git is '''required'''.
| |
− | | image= [[{{tool|logo|git}}|x40px]]
| |
− | }}
| |
− | <br>
| |
− | | |
− | {{mbox
| |
− | | type = protection
| |
− | | text = SVN is '''required'''. | |
− | | image= [[{{tool|logo|svn}}|x40px]]
| |
− | }}
| |
− | | |
− | <br>
| |
− | -->
| |
− | The prerequisites listed below are required to be able to configure/build/package/test Slicer.
| |
− | | |
− | === 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 ====
| |
− | | |
− | ===== 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
| |
− | | |
− | {{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre>
| |
− | 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.
| |
− | </pre>
| |
− | For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}
| |
− | | |
− | {{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}
| |
− | | |
− | ===== CMake =====
| |
− | | |
− | <ol>
| |
− | <li>Open a terminal and copy the command reported below</li>
| |
− | <li>Download stable version of CMake and extract the archive:
| |
− | <pre>
| |
− | 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
| |
− | </pre>
| |
− | </li>
| |
− | <li>Create symbolic links into <code>~/bin</code>
| |
− | <pre>
| |
− | 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
| |
− | done
| |
− | </pre>
| |
− | </li>
| |
− | </ol>
| |
− | | |
− | {{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br>
| |
− | See [[Documentation/{{documentation/version}}/Developers/FAQ/Building#Why_distributed_CMake_can_not_be_used_on_Ubuntu_12.04_and_above_.3F|here]] for more details.}}
| |
− | | |
− | ===== Qt =====
| |
− | | |
− | '''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.
| |
− | | |
− | <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>
| |
− | | |
− | For more details, consider reading the FAQ entry: [[Documentation/{{documentation/version}}/Developers/FAQ/Building#Why_Qt_4_.3E.3D_4.8.5_should_be_used_on_Ubuntu_12.04_and_above_.3F|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
| |
− | | |
− | <!--
| |
− | 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: 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).
| |