|
Tags: 2017 source edit, Replaced |
(174 intermediate revisions by 19 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>
| |
− | | |
− | Consider reading platform specific requirements listed below.
| |
− | | |
− | === Linux ===
| |
− | * [{{tool|download|cmake}} CMake] >= 2.8.9
| |
− | * [{{tool|download|git}} Git] >= 1.6.5
| |
− | * [{{tool|download|svn}} Svn]
| |
− | * Qt 4.8.5. See details [http://na-mic.org/Mantis/view.php?id=3325#bugnotes here] (Note that any version >= Qt 4.7.4 can be used for Ubuntu < 12.04)
| |
− | | |
− | ==== 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>
| |
− | 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
| |
− | 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://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
| |
− | | |
− | # 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 ===
| |
− | * 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.6.5
| |
− | * [{{tool|download|svn}} Svn]
| |
− | <!--
| |
− | *[[{{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.7.4. See 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.6.5
| |
− | -->
| |
− | * Qt 4.7.4 or greater (for VS2008). See details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Windows|here]]
| |
− | <!--
| |
− | *[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.10
| |
− | *[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5.
| |
− | -->
| |
− | * [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.
| |
− | * 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.
| |
− | | |
− | ** '''Un-tested''': Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).
| |