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

From Slicer Wiki
Jump to: navigation, search
Tag: 2017 source edit
Line 2: Line 2:
 
__TOC__
 
__TOC__
  
== PREREQUISITES ==
+
==PREREQUISITES==
  
 
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) -->
 
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) -->
Line 46: Line 46:
 
The prerequisites listed below are required to be able to configure/build/package/test Slicer.
 
The prerequisites listed below are required to be able to configure/build/package/test Slicer.
  
=== Linux ===
+
===Linux===
* [{{tool|download|cmake}} CMake] >= 3.13.4
 
* [{{tool|download|git}} Git] >= 1.7.10
 
* [{{tool|download|svn}} Svn] >= 1.7
 
* Qt 5.11: <b>tested and recommended</b>
 
** To build Slicer: install Qt using the distribution package manager.
 
** To package and redistribute Slicer: download and execute [https://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run qt-unified-linux-x64-online.run], install Qt, make sure to select <tt>qtscript</tt> and <tt>qtwebengine</tt> components.
 
* GCC suite
 
  
==== Debian ====
+
*[{{tool|download|cmake}} CMake] >= 3.13.4
 +
*[{{tool|download|git}} Git] >= 1.7.10
 +
*[{{tool|download|svn}} Svn] >= 1.7
 +
*Qt 5.11: <b>tested and recommended</b>
 +
**To build Slicer: install Qt using the distribution package manager.
 +
**To package and redistribute Slicer: download and execute [https://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run qt-unified-linux-x64-online.run], install Qt, make sure to select <tt>qtscript</tt> and <tt>qtwebengine</tt> components.
 +
*GCC suite
 +
 
 +
====Debian====
 +
 
 +
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal
  
* 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 subversion git-core git-svn
 
  sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev
 
  sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev
Line 63: Line 65:
 
  sudo apt-get install qt-sdk
 
  sudo apt-get install qt-sdk
  
<hr>
+
<hr />
  
  
==== Ubuntu ====
+
====Ubuntu====
  
===== Common Prerequisites =====
+
=====Common Prerequisites=====
  
  
Line 87: Line 89:
 
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}
 
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}
  
* For Qt5.5 on Ubuntu 16.04
+
*For Qt5.5 on Ubuntu 16.04
 +
 
 
  sudo apt-get install libgstreamer-plugins-base0.10-dev
 
  sudo apt-get install libgstreamer-plugins-base0.10-dev
  
===== CMake =====
+
=====CMake=====
  
 
<ol>
 
<ol>
Line 115: Line 118:
 
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.}}
 
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.}}
  
==== CentOS ====
+
====CentOS====
  
 
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]
 
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]
Line 128: Line 131:
 
''glx-utils'' provides ''glxgears'' that can be used to test rendering
 
''glx-utils'' provides ''glxgears'' that can be used to test rendering
 
-->
 
-->
 +
===MacOSX===
 +
 +
*XCode command line tools must be installed:
  
=== MacOSX ===
 
* XCode command line tools must be installed:
 
 
   xcode-select --install
 
   xcode-select --install
* El Capitan is what most developers use.
+
 
* CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]
+
*El Capitan is what most developers use.
* Qt 5: <b>tested and recommended</b>.
+
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]
** For building Slicer: download and execute [https://download.qt.io/official_releases/online_installers/qt-unified-mac-x64-online.dmg qt-unified-mac-x64-online.dmg], install Qt 5.10, make sure to select <tt>qtscript</tt> and <tt>qtwebengine</tt> components.
+
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt>
** For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]
+
*Qt 5: <b>tested and recommended</b>.
* Setting <tt>CMAKE_OSX_DEPLOYMENT_TARGET</tt> CMake variable specifies the minimum macOS version a generated installer may target.  So it should be equal to or less than the version of SDK you are building on. Note that the SDK version is set using <tt>CMAKE_OSX_SYSROOT</tt> CMake variable automatically initialized during CMake configuration.
+
**For building Slicer: download and execute [https://download.qt.io/official_releases/online_installers/qt-unified-mac-x64-online.dmg qt-unified-mac-x64-online.dmg], install Qt 5.10, make sure to select <tt>qtscript</tt> and <tt>qtwebengine</tt> components.
 +
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]
 +
*Setting <tt>CMAKE_OSX_DEPLOYMENT_TARGET</tt> CMake variable specifies the minimum macOS version a generated installer may target.  So it should be equal to or less than the version of SDK you are building on. Note that the SDK version is set using <tt>CMAKE_OSX_SYSROOT</tt> CMake variable automatically initialized during CMake configuration.
  
 
====MacOSX 10.9.4 (Mavericks)====
 
====MacOSX 10.9.4 (Mavericks)====
Line 145: Line 151:
 
''' (2) Use CMake 3.12.2 - 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)
 
''' (2) Use CMake 3.12.2 - 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)
+
*Mac Os X >= 10.5 (Leopard)
* [{{tool|download|cmake}} CMake] >= 2.8.9
+
*[{{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
+
**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]).
 
<!-- 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]).
 
-->
 
-->
Line 157: Line 163:
 
  cmake version 2.8.11
 
  cmake version 2.8.11
  
* [{{tool|download|git}} Git] >= 1.7.10
+
*[{{tool|download|git}} Git] >= 1.7.10
* [{{tool|download|svn}} Svn] >= 1.7
+
*[{{tool|download|svn}} Svn] >= 1.7
 
<!--
 
<!--
 
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9
 
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9
 
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5
 
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5
 
-->
 
-->
* XCode (for the SDK libs)
+
*XCode (for the SDK libs)
** After installing XCode, install XCode command line developer tools:  
+
**After installing XCode, install XCode command line developer tools:
 
<pre>
 
<pre>
 
xcode-select --install
 
xcode-select --install
 
</pre>
 
</pre>
* 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).
+
 
* Qt 4 >= 4.8.5. We recommend you install the following two packages:
+
*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).
** 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]
+
*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-debug-libs.dmg qt-opensource-mac-4.8.6-1-debug-libs.dmg]
+
**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]
** For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]
+
**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]]
 
<!--
 
<!--
 
** 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.
 
** 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.
Line 186: Line 193:
 
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 [https://github.com/Homebrew/formula-patches/blob/master/qt/el-capitan.patch homebrew version of qt4 which patches it to work on El Capitan] (see below).
 
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 [https://github.com/Homebrew/formula-patches/blob/master/qt/el-capitan.patch homebrew version of qt4 which patches it to work on El Capitan] (see below).
  
* Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)
+
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)
* Install '''Qt4''' by running the following two commands:
+
*Install '''Qt4''' by running the following two commands:
 
<pre>
 
<pre>
 
brew install qt4
 
brew install qt4
 
xcode-select --install
 
xcode-select --install
 
</pre>
 
</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.
 
  
==== Mac OSX 10.12 (Sierra) ====
+
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.
 +
 
 +
====Mac OSX 10.12 (Sierra)====
  
 
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).
 
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).
Line 206: Line 214:
  
 
Confirmed with Xcode:  
 
Confirmed with Xcode:  
* Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e
+
 
* Version 8.3.3 and cmake 3.5.2
+
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e
 +
*Version 8.3.3 and cmake 3.5.2
 
<!--
 
<!--
 
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer
 
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer
Line 214: Line 223:
  
  
==== Mac OSX 10.14 (Mojave) ====
+
====Mac OSX 10.14 (Mojave)====
  
 
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small>
 
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small>
  
* Install Qt 5.11.2 using [http://download.qt.io/official_releases/online_installers/qt-unified-mac-x64-online.dmg Qt Online Installer for macOS]
+
*Install Qt 5.11.2 using [http://download.qt.io/official_releases/online_installers/qt-unified-mac-x64-online.dmg Qt Online Installer for macOS]
  
* Install XCode:
+
*Install XCode:
  
 
<pre>
 
<pre>
Line 227: Line 236:
  
  
* Build qt from homebrew
+
*Build qt from homebrew
 
<pre>
 
<pre>
 
brew install qt
 
brew install qt
Line 234: Line 243:
 
</pre>
 
</pre>
  
* Explicitly set the SDK when running make
+
*Explicitly set the SDK when running make
 
<pre>
 
<pre>
 
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20
 
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20
Line 241: Line 250:
 
Note if you have build errors in dcmtk related to iconv symbols, you may need to uninstall the icu4c and dcmtk homebrew packages during the build process.  See [https://github.com/QIICR/dcmqi/issues/395 here] and [https://github.com/Slicer/Slicer/commit/6523a62d776e64f970c554978a3c3a8f26022db5 here].
 
Note if you have build errors in dcmtk related to iconv symbols, you may need to uninstall the icu4c and dcmtk homebrew packages during the build process.  See [https://github.com/QIICR/dcmqi/issues/395 here] and [https://github.com/Slicer/Slicer/commit/6523a62d776e64f970c554978a3c3a8f26022db5 here].
  
=== Windows ===
+
===Windows===
  
==== Common Prerequisites ====
+
====Common Prerequisites====
* [{{tool|download|cmake}} CMake] >= 3.13.4
+
 
* [{{tool|download|git}} Git] >= 1.7.10
+
*[{{tool|download|cmake}} CMake] >= 3.13.4
 +
*[{{tool|download|git}} Git] >= 1.7.10
 
<!--
 
<!--
 
*[[{{tool|logo|cmake}}|x16px]]  [{{tool|download|cmake}}  CMake] >= 3.13.4
 
*[[{{tool|logo|cmake}}|x16px]]  [{{tool|download|cmake}}  CMake] >= 3.13.4
Line 254: Line 264:
 
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.
 
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.
 
-->
 
-->
** {{note}}CMake must be able to find ''git.exe'' and ''patch.exe''. If git is installed in the default location then they may be found there, but if they are not found then either add the folder that contains them to PATH environment variable; or set GIT_EXECUTABLE and Patch_EXECUTABLE as environment variables or as CMake variables at configure time.
+
**{{note}}CMake must be able to find ''git.exe'' and ''patch.exe''. If git is installed in the default location then they may be found there, but if they are not found then either add the folder that contains them to PATH environment variable; or set GIT_EXECUTABLE and Patch_EXECUTABLE as environment variables or as CMake variables at configure time.
 +
 
 +
*Subversion (SVN) client: any SVN client that has command line tools
 +
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or
 +
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)
  
* Subversion (SVN) client: any SVN client that has command line tools
+
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.
** [http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or
 
** [https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)
 
  
* NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.
+
*Qt5: Download download Qt 5.10.0 installer from [https://download.qt.io/archive/qt/5.10/5.10.0 here] and install Qt along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components (5.10.x version is not available in the [https://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe unified installer]). For building with VS2015, Qt version 5.10.x or older is required (newer versions do not compile with VS2015 due to QWebEngine minimum requirement is VS2017). For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.
  
* Qt5: Download download Qt 5.10.0 installer from [https://download.qt.io/archive/qt/5.10/5.10.0 here] and install Qt along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components (5.10.x version is not available in the [https://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe unified installer]). For building with VS2015, Qt version 5.10.x or older is required (newer versions do not compile with VS2015 due to QWebEngine minimum requirement is VS2017). For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.
+
====Tested and recommended build environment====
  
==== Tested and recommended build environment ====
+
*VS2015 (Visual Studio 14 2015 Win64)
 +
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++ 2015'' (in some distributions, this option is not enabled by default)
 +
**Installation of [https://msdn.microsoft.com/en-us/library/mt752379.aspx Cumulative Servicing Release for Microsoft Visual Studio 2015 Update 3 (KB3165756)] is required on some older VS2015 distributions
 +
*Qt 5.10
 +
*CMake >= 3.13.4
  
* VS2015 (Visual Studio 14 2015 Win64)
+
====Experimental/deprecated build environments====
** Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++ 2015'' (in some distributions, this option is not enabled by default)
 
** Installation of [https://msdn.microsoft.com/en-us/library/mt752379.aspx Cumulative Servicing Release for Microsoft Visual Studio 2015 Update 3 (KB3165756)] is required on some older VS2015 distributions
 
* Qt 5.10
 
* CMake >= 3.13.4
 
  
==== Experimental/deprecated build environments ====
+
*[https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2017 build tools (tested, works well)
* [https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2017 build tools (tested, works well)
+
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) toolset
** When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) toolset
+
**Visual Studio 2017 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141''
** Visual Studio 2017 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141''
+
**Most recent Qt versions can be used (tested with Qt-5.12.7)
** Most recent Qt versions can be used (tested with Qt-5.12.7)
+
*[https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2015 build tools (tested, works well)
* [https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2015 build tools (tested, works well)
+
**When configuring Visual Studio installer, enable installation of component ''VC++ 2015.3 v14.00 (v140) toolset for desktop''
** When configuring Visual Studio installer, enable installation of component ''VC++ 2015.3 v14.00 (v140) toolset for desktop''
+
**Visual Studio 2015 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v140''
** Visual Studio 2015 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v140''
+
*Cygwin (untested, probably does not work)
* Cygwin (untested, probably does not work)
+
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).
** Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).
 

Revision as of 19:43, 26 May 2020

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


PREREQUISITES

As of early 2018, Slicer migrated to Qt5. Qt4 support was removed in version 4.11. See instructions at this labs page for the new requirements: https://www.slicer.org/wiki/Documentation/Labs/Qt5-and-VTK8


The prerequisites listed below are required to be able to configure/build/package/test Slicer.

Linux

  • CMake >= 3.13.4
  • Git >= 1.7.10
  • Svn >= 1.7
  • Qt 5.11: tested and recommended
    • To build Slicer: install Qt using the distribution package manager.
    • To package and redistribute Slicer: download and execute qt-unified-linux-x64-online.run, install Qt, make sure to select qtscript and qtwebengine components.
  • GCC suite

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 build-essential 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 libxkbcommon-x11-0


sudo apt-get install libosmesa6-dev  # Only for Ubuntu < 14.04.3
  1. 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.
    

    For more details, see Bug 1424059.

  1. Slicer compiles successfully without that package, but VTK_OPENGL_HAS_OSMESA is disabled.
  • For Qt5.5 on Ubuntu 16.04
sudo apt-get install libgstreamer-plugins-base0.10-dev
CMake
  1. Open a terminal and copy the command reported below
  2. Download stable version of CMake and extract the archive:
    sudo apt-get install curl
    mkdir ~/Support && cd ~/Support
    curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz
    tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz
    
  3. Create symbolic links into ~/bin
    mkdir -p ~/bin
    for name in cmake ctest cpack ccmake cmake-gui; do
      ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name
    done
    
  1. You MUST download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.
    See here for more details.

CentOS

See instructions reported in qt5-centos7/Dockerfile


MacOSX

  • XCode command line tools must be installed:
 xcode-select --install
  • El Capitan is what most developers use.
  • CMake 3.12.2 is recommended. Check the minimum required CMake version here
  • Large File Storage for git is required. (brew install git-lvs)
  • Qt 5: tested and recommended.
    • For building Slicer: download and execute qt-unified-mac-x64-online.dmg, install Qt 5.10, make sure to select qtscript and qtwebengine components.
    • For packaging and redistributing Slicer: build Qt using qt-easy-build
  • Setting CMAKE_OSX_DEPLOYMENT_TARGET CMake variable specifies the minimum macOS version a generated installer may target.  So it should be equal to or less than the version of SDK you are building on. Note that the SDK version is set using CMAKE_OSX_SYSROOT CMake variable automatically initialized during CMake configuration.

MacOSX 10.9.4 (Mavericks)

(1) Make sure to install this update: http://support.apple.com/kb/DL1754

(2) Use CMake 3.12.2 - 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)

XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. Remember to install XCode command line tools (see above) if a reinstall for XCode is needed.

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 which patches it to work on El Capitan (see below).

  • Install the OS, Xcode, and XQuartz (see MacOSX 10.10 above)
  • Install Qt4 by running 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.

Mac OSX 10.12 (Sierra)

Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon). The GitHub user Cartr offered a patch to the brew team, and even though it was not integrated (the homebrew team decided to stop patching their recipe to encourage people to use Qt5), he turned his formula into a tap that can be installed (see below).

Follow instructions for 10.11 (Installing Xcode, XQuartz, run without TCL) but install Qt4 like shown below instead:

brew install cartr/qt4/qt
xcode-select --install

Confirmed with Xcode:

  • Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e
  • Version 8.3.3 and cmake 3.5.2


Mac OSX 10.14 (Mojave)

Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21

  • Install XCode:
xcode-select --install


  • Build qt from homebrew
brew install qt
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer

  • Explicitly set the SDK when running make
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20

Note if you have build errors in dcmtk related to iconv symbols, you may need to uninstall the icu4c and dcmtk homebrew packages during the build process. See here and here.

Windows

Common Prerequisites

  • CMake >= 3.13.4
  • Git >= 1.7.10
    • Note CMake must be able to find git.exe and patch.exe. If git is installed in the default location then they may be found there, but if they are not found then either add the folder that contains them to PATH environment variable; or set GIT_EXECUTABLE and Patch_EXECUTABLE as environment variables or as CMake variables at configure time.
  • Subversion (SVN) client: any SVN client that has command line tools
    • SlikSvn , or
    • TortoiseSVN - make sure you install Command line client tools component (disabled by default)
  • NSIS (optional): Needed if packaging Slicer - Click here to download. Make sure you install the language packs.
  • Qt5: Download download Qt 5.10.0 installer from here and install Qt along with qtscript and qtwebengine components (5.10.x version is not available in the unified installer). For building with VS2015, Qt version 5.10.x or older is required (newer versions do not compile with VS2015 due to QWebEngine minimum requirement is VS2017). For more details, read step-by-step guide.

Tested and recommended build environment

Experimental/deprecated build environments

  • Visual Studio 2017 or 2019 (Community or any other edition) with VS2017 build tools (tested, works well)
    • When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) toolset
    • Visual Studio 2017 toolset must be set in CMake: Optional toolset to use (argument to -T) need to be set to v141
    • Most recent Qt versions can be used (tested with Qt-5.12.7)
  • Visual Studio 2017 or 2019 (Community or any other edition) with VS2015 build tools (tested, works well)
    • When configuring Visual Studio installer, enable installation of component VC++ 2015.3 v14.00 (v140) toolset for desktop
    • Visual Studio 2015 toolset must be set in CMake: Optional toolset to use (argument to -T) need to be set to v140
  • Cygwin (untested, probably does not work)
    • Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).