https://www.slicer.org/w/api.php?action=feedcontributions&user=Sam.horvath&feedformat=atomSlicer Wiki - User contributions [en]2024-03-28T23:48:16ZUser contributionsMediaWiki 1.33.0https://www.slicer.org/w/index.php?title=Slicer:Slicer2.4_Release_Notes&diff=63939Slicer:Slicer2.4 Release Notes2022-01-19T21:17:21Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
== New Features in Slicer 2.4 ==<br />
<br />
Slicer 2.4 has many new features! In addition to numerous bug fixes and other improvements, the list here highlights most major some new features in Slicer 2.4. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behaviour. Please report it to the Slicer User's mailing list.<br />
<br />
Updates to existing modules:<br />
<br />
* Base: added the Modules menu at the top level to give a hierarchical listing of the current modules<br />
* EM Segment: major improvements added to the algorithm<br />
* View: when you close a scene via the File->Close option, the viewing defaults will be reset to out of the box values. Added a "return to defaults" button for the light settings.<br />
* Endoscopic: added support for flat models.<br />
* vtkFreeSurferReaders: moved to their own module, can load Freesurfer colours files now, as well as more surface files, and MGH files as well<br />
<br />
Additional functionality:<br />
<br />
* Support for time series data (vtkIBrowser, vtkBXH, vtkFMRIEngine, vtkFSLReader, MultiVolumeReader)<br />
* Support for Analyze format data (vtkAnalyze, vtkCISGFile)<br />
* Support for automatic rigid intensity registration (iSlicer, vtkRigidIntensityRegistration)<br />
* Support for DMTRI and Tensor data (vtkDTMRI, vtkTensorUtil)<br />
* Support for metric mapping (LDMMViewer)<br />
* New processing routines (vtkAffineSegment, vtkImageSmooth, vtkMIRIADSegment, vtkRealignResample, vtkSubVolume, vtkCorCTA))<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer:Slicer2.4_Getting_Started|here.]]<br />
<br />
To build slicer from source, see [[Slicer:Slicer2.4_Building|Slicer:Slicer2.4_Building]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Solaris<br />
** We are building using gcc version 3.0.3.<br />
** If you are compiling using the genlib and cmaker scripts, after you run the cmaker.tcl script, the build for vtkFMRIEngine will fail. To build this module, you will need to download the gsl libraries from [https://share.spl.harvard.edu/share/birn/public/software/External/gsl14ForSlicerSolaris8.tar.gz Xythos] and run cmaker.tcl again.<br />
<br />
* Linux<br />
** We are building using gcc version 2.96 20000731<br />
** If you are compiling using the genlib and cmaker scripts, after you run the cmaker.tcl script, the build for vtkFMRIEngine will fail. To build this module, you will need to download the gsl libraries from [https://share.spl.harvard.edu/share/birn/public/software/External/gsl14ForSlicerLinux.tar.gz Xythos] and run cmaker.tcl again.<br />
<br />
* Mac OSX<br />
** These [[Slicer:Patches_for_the_Mac|patches]] must be applied to compile on OSX.<br />
<br />
== Installing ==<br />
<br />
No special installation is needed -- simply unpack the distribution archive and run the platform-specific executable at the top level (for example, slicer2-win32.exe for the Windows build). The slicer distribution contains all the needed support libraries and has been tested on a variety of system configurations.<br />
<br />
== Base Operations ==<br />
<br />
* Linux<br />
<br />
If you are having problems running Slicer over an ssh connection with X forwarding, the problem may be that you don't have the appropriate OpenGL libraries on the machine you're sshing from.<br />
<br />
== Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for slicer version 2.4.x. [http://www.na-mic.org/Bug/ here].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.4_Getting_Started&diff=63938Slicer:Slicer2.4 Getting Started2022-01-19T21:17:08Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<div class="floatleft"><span>[[Image:3DSlicer.png|[[Image:3DSlicer.png| 3D Slicer Logo]]]]</span></div><br />
<br />
<br /><br />
<br />
<br /><br />
<br />
THIS VERSION IS STILL SUPPORTED BUT FOR THE NEWEST VERSION FOLLOW THIS LINK TO SLICER 2.5 [[Slicer:Slicer2.5_Getting_Started|Slicer2.5 Getting Started]]<br />
<br />
== Download Slicer (This is what users should download) ==<br />
<br />
Download and unpack the appropriate archive for your platform (Windows, Solaris, and Linux) from [[Slicer:Slicer2.4_Release_Notes|here.]]<br />
<br />
== Follow the Tutorial ==<br />
<br />
To learn more about using Slicer, refer to this [[Media:SlicerTraining-NAMIC.pdf| Slicer tutorial]] (also available in [[Media:SlicerTraining-NAMIC.ppt|powerpoint format]]).<br />
<br />
== Get Sample Data ==<br />
<br />
The following data is for use with the Slicer tutorial:<br />
<br />
* For [http://share.spl.harvard.edu/share/birn/public/software/tutorial-with-dicom.zip windows]<br />
* For [http://share.spl.harvard.edu/share/birn/public/software/tutorial-with-dicom.tar.gz linux/solaris/mac]<br />
<br />
Unpack this archive, launch Slicer, then in Slicer use the File->Open Scene... menu to open tutorial.xml. Click and drag in the 3D window to rotate the head. Use the sliders above the 2 D slice windows to scroll through the MRI volume in the axial, sagittal and coronal planes.<br />
<br />
[[Slicer:Data|Additional data to use with Slicer]]<br />
<br />
== Build Slicer (This is for developers) ==<br />
<br />
If you want to build your own copy of Slicer 2.4 from the source code, follow the instructions here: [[Slicer:Slicer2.4_Building|Slicer:Slicer2.4_Building]]<br />
<br />
== Installation ==<br />
<br />
You can run the toplevel slicer executable from any directory, but if you want to install it as a system-wide package we suggest the following methods:<br />
<br />
* Unix/Linux:<br />
** place the slicer2 distribution directory in /usr/local/lib/slicer2.4<br />
** place a symbolic link in /usr/local/bin pointing to the executable for your platform in the distribution directory<br />
* Windows:<br />
** there is no windows installer, so you may put slicer in any convenient location. You may wish to put a shortcut to the slicer2-win32.exe on your desktop.<br />
* Mac OS:<br />
** No installation suggestions currently<br />
<br />
<br /><br />
<br />
== Notes for Mac OS X Users ==<br />
<br />
We haven't 'officially' supported the mac platform until now because of variations we've been seeing in the graphics support on different machines (ATI vs. nvidia cards, etc) and that's been hard to troubleshoot. But we've made some changes and now have a version that we think is working pretty well. The software is [http://slicerl.bwh.harvard.edu/snapshots/slicer2.4/slicer2.4-darwin-ppc-2005-02-01.tar.gz here] (precompiled, no installation needed).<br />
<br />
To run it, you need to have the X server and from an xterm run the slicer2-darwin-ppc executable at the top level of the unpacked archive.<br />
<br />
If you want to customize the X11 Application menu to launch slicer, you can use a syntax like the following:<br />
<br />
xterm -e /Users/pieper/slicer2.4/latest/slicer2/slicer2-darwin-ppc<br />
<br />
Other notes on building and running on the Mac are at [[Slicer:Patches_for_the_Mac|Slicer:Patches_for_the_Mac]]<br />
<br />
Note that slicer relies on the X11 system and must be launched from within an xterm. More information about X11 on the [http://developer.apple.com/darwin/runningx11.html mac].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.5_Release_Notes&diff=63937Slicer:Slicer2.5 Release Notes2022-01-19T21:16:52Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
== New Features in Slicer 2.5 ==<br />
<br />
Slicer 2.5 has many new features! In addition to numerous bug fixes and other improvements, the list here highlights most major some new features in Slicer 2.5. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behaviour. Please send questions about unexpected behavior to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's mailing list] and reports to the [http://www.na-mic.org/Bug bug tracker].<br />
<br />
==== Updates to existing modules: ====<br />
<br />
===== FMRIEngine =====<br />
<br />
* new frontend<br />
* support for block design<br />
* event releated paradigm<br />
* peristimulus histogram plotting<br />
* multirun computation<br />
<br />
===== vtkFreeSurferReaders =====<br />
<br />
* MGH reader<br />
* Automated review framework<br />
<br />
===== Ibrowser =====<br />
<br />
* new functionality for key frame transformation interpolation<br />
<br />
===== DTMRI =====<br />
<br />
* new clustering tools<br />
* new ODF tensor glyph<br />
* new conversion protocols<br />
* ROI-based fiber classifying/pruning<br />
* limited support for tensor-to-tensor registration<br />
* Cleaned up error messages<br />
<br />
<br /><br />
<br />
==== Additional functionality: ====<br />
<br />
* New module: vtkAG - nonlinear, multimodal, multichannel registration tool.<br />
* New module: TransformVolume - arbitrary resampling of volumes with linear transform.<br />
* New module: QueryAtlas (prototype)<br />
* Generic readers (using ITK I/O Factories):<br />
** Sequences of tiffs, jpgs, pngs<br />
** Analyze VTK, GIPL and others<br />
* Nrrd reader<br />
<br />
<br /><br />
<br />
==== System Improvements: ====<br />
<br />
* Better automated building, especially on OSX<br />
* Update to commenting script<br />
* Better exception handling<br />
* Cleaned up compiler warnings<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer:Slicer2.5_Getting_Started|here.]]<br />
<br />
To build slicer from source, see [[Slicer:Slicer_2.5_Building|Slicer:Slicer_2.5_Building]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Solaris<br />
** We are building using gcc version 3.0.3.<br />
<br />
* Linux<br />
** We are building using gcc version 2.96 on RedHat 7, gcc version 3.2.2 on RedHat 9, and gcc 3.2.3 on RedHat Enterprise Linux.<br />
<br />
* Mac OSX<br />
** These [[Slicer:Slicer2.5_Patches_for_the_Mac|patches]] must be applied to compile on OSX.<br />
<br />
== Installing ==<br />
<br />
No special installation is needed -- simply unpack the distribution archive and run the platform-specific executable at the top level (for example, slicer2-win32.exe for the Windows build). The slicer distribution contains all the needed support libraries and has been tested on a variety of system configurations.<br />
<br />
== Known Issues: Base Operations ==<br />
<br />
* All platforms<br />
** Model hierarchies are unreliable - use at your own risk.<br />
<br />
* Linux<br />
** If you are having problems running Slicer over an ssh connection with X forwarding, the problem may be that you don't have the appropriate OpenGL libraries on the machine you're sshing from.<br />
<br />
* Mac<br />
** Currently, there is no support for reading DICOM files with the Basic Reader. You can read in DICOMS by clicking Add Volume, then choosing DICOM from the menu, and browsing to the directory containing your DICOM files.<br />
** Currently, there is no support for building BLT with genlib.tcl, which causes FMRIEngine's UI to fail. See the patch instructions for the Mac under the "Building" section to compile BLT and run FMRIEngine.<br />
<br />
== Known Issues: Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
* Mac<br />
** There is no currently no print header functionality for OSX.<br />
** See the note under "Base Operations" regarding FMRIEngine functionality.<br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for Slicer version 2.5.x go to [http://www.na-mic.org/Bug/ here].<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-devel Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's Mailing List].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.5_Getting_Started&diff=63936Slicer:Slicer2.5 Getting Started2022-01-19T21:16:41Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<div class="floatleft"><span>[[Image:3DSlicer.png|[[Image:3DSlicer.png| 3D Slicer Logo]]]]</span></div><br />
<br />
<br /><br />
<br />
<br /> THIS IS THE NEWEST VERSION AVAILABLE as of June of 2005<br />
<br />
<br /><br />
<br />
----<br />
<br />
'''NOTE: [[Slicer:DICOM_PATCH|Important patch for DICOM Images for Slicer 2.5]]'''<br />
<br />
----<br />
<br />
== Download Slicer (This is what users should download) ==<br />
<br />
Download and unpack the appropriate archive for your platform from [http://www.na-mic.org/Slicer/Download/ here]<nowiki>: this link gives you a precompiled ready-to-use Slicer. </nowiki><br />
<br />
* Mac: darwin-ppc/slicer2.5-opt-darwin-ppc-2005-05-23.tar.gz<br />
* Windows: win32/slicer2.5-opt-win32-2005-05-23.zip<br />
* Solaris: solaris8/slicer2.5-opt-solaris-sparc-2005-05-23.tar.gz<br />
* Linux: linux-x86/slicer2.5-opt-linux-x86-2005-05-23.tar.gz<br />
<br />
== Installation ==<br />
<br />
You can run the toplevel slicer executable from any directory, but if you want to install it as a system-wide package we suggest the following methods:<br />
<br />
* Unix/Linux:<br />
** place the slicer2 distribution directory in /usr/local/lib/slicer2.5<br />
** place a symbolic link in /usr/local/bin pointing to the executable for your platform in the distribution directory<br />
* Windows:<br />
** there is no windows installer, so you may put slicer in any convenient location. You may wish to put a shortcut to the slicer2-win32.exe on your desktop.<br />
* Mac OS:<br />
** No installation suggestions currently<br />
<br />
<br /><br />
<br />
== Follow the Tutorial ==<br />
<br />
To learn more about using Slicer, refer to the [[Slicer:Workshops:User_Training_101|Slicer_User_Training_101]] page which contains tutorials and sample data for Slicer2.5.<br />
<br />
<br /><br />
<br />
== Build Slicer (This is for developers) ==<br />
<br />
If you want to build your own copy of Slicer 2.5 from the source code, follow the instructions here: [[Slicer:Slicer_2.5_Building|Slicer:Slicer_2.5_Building]]<br />
<br />
<br /><br />
<br />
== Notes for Mac OS X Users ==<br />
<br />
To run Slicer on the Mac, you need to have the X server and from an xterm run the slicer2-darwin-ppc executable at the top level of the unpacked archive.<br />
<br />
If you want to customize the X11 Application menu to launch slicer, you can use a syntax like the following:<br />
<br />
xterm -e /Users/pieper/slicer2.5/latest/slicer2/slicer2-darwin-ppc<br />
<br />
Other [[Slicer:Slicer2.5_Patches_for_the_Mac|notes]] on building and running on the Mac.<br />
<br />
Note that Slicer relies on the X11 system and must be launched from within an xterm. More information about [http://developer.apple.com/darwin/runningx11.html X11] on the mac. <br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for Slicer version 2.5.x. [http://www.na-mic.org/Bug/ here]. Information on [[Slicer:Bugs|How to enter bugs]] into the Slicer bug tracker.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-devel Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's Mailing List].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.6_Release_Notes&diff=63935Slicer:Slicer2.6 Release Notes2022-01-19T21:16:30Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
== New Features in Slicer 2.6 ==<br />
<br />
Slicer 2.6 has many new features! In addition to numerous bug fixes and other improvements, the list here highlights most major some new features in Slicer 2.6. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behaviour. Please send questions about unexpected behavior to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's mailing list] and reports to the [http://www.na-mic.org/Bug bug tracker].<br />
<br />
==== Updates to existing modules: ====<br />
<br />
===== FMRIEngine =====<br />
<br />
* Supports a common fMRI data analysis workflow;<br />
* Currently is appropriate for preprocessed data (which has been slice-timing corrected and motion corrected);<br />
* Allows the specification of blocked, event-related and mixed designs, and the optional concatenation of runs;<br />
* Allows the saving and loading of paradigms;<br />
* Has a more elaborate set of linear modeling tools, including adding temporal derivatives to capture latency in the response, and trend modeling to remove slowly varying nuissance signals;<br />
* Provides an option to pre-whiten the data to account for temporal correlation structure;<br />
* Displays a 'surfable' visualization of the design matrix and contrasts;<br />
* Permits saving and loading of estimated regression weights for use in GLM-based detection;<br />
* Optionally performs grand mean and global mean scaling on input datasets;<br />
* Allows regions of interest (ROIs) to be defined from brain activation 'blobs';<br />
* Provides tools for selecting one or several ROIs and querying statistics on those regions (pop-up histogram plot, with list of max, min, mean p-value, percent signal change, etc.);<br />
* Label maps can be saved and/or used to create 3D models for visualization with multimodality data;<br />
* Reports uncorrected or corrected p-values (using the False Discovery Rate method);<br />
* Allows voxel timecourses to be plotted in regular long or peristimulus histogram form, along with reference signals from the paradigm;<br />
* Provides pop-up help throughout the interface, to provide information on many topics;<br />
* Has a more modular architecture for adding new kinds of brain activation detectors.<br />
<br />
===== vtkFreeSurferReaders =====<br />
<br />
Features from the previous slicer2.5MGH release have been integrated with the rest of slicer. These features were used in [http://www.na-mic.org/Wiki/index.php/Training:User_Workshop_SPL_Fall_2005 Slicer/Freesurfer Training] and a power point presentation can be found [http://wiki.na-mic.org/Wiki/images/4/4e/SlicerTraining6_vtkFreeSurferReaders.ppt here].<br />
<br />
New features include:<br />
<br />
* Integrated reading of compresed .mgh files (.mgz)<br />
* Improved scalar overlay display, and clickable models for details of scalar values<br />
* .w surface file reading<br />
* Run-time parsing of colour description text files<br />
* FreeSurfer Group Descriptor file reading and plotting of results<br />
* Imrovements to the quality assurance functionality to load a series of subjects and scan through the selected volumes, using the FreeSurfer subject directory structure<br />
<br />
===== Ibrowser =====<br />
<br />
New functionality in support of the FMRIEngine work described above.<br />
<br />
===== DTMRI =====<br />
<br />
Many new features including:<br />
<br />
* Reading dwi and tensors from nrrd files<br />
* Automatic brain mask generated with tensor estimate<br />
* New scale factor control on scalar generation<br />
* Brighter tracts for all scan orientations<br />
* Tract clustering<br />
* Tensor-to-tensor registation (beta feature, not fully supported)<br />
* Tracts can be rasterized into a label map<br />
<br />
==== EMSegmenter and EMAtlasBrainClassifier ====<br />
<br />
Bug fixes and improvements including new algorithms described [http://www.na-mic.org/Wiki/index.php/Progress_Report:Shape_Based_Segmentation_And_Registration here].<br />
<br />
===== Alignments =====<br />
<br />
* New registration techniques based on ITK registration framework.<br />
* Translation MI: Perorms image registration using 3 translational components based on minimiztion of Mutual Information metric using Regular Step Gradient Descent optimizer.<br />
* Translation Mattes MI: Perorms image registration using 3 translational components based on minimiztion of Mattes Mutual Information metric using Regular Step Gradient Descent optimizer.<br />
* Rigid Mattes MI: Perorms image registration using 3 translational and 3 rotational components based on minimiztion of Mattes Mutual Information metric using Regular Step Gradient Descent optimizer.<br />
* Affine Mattes MI: Perorms image registration using 3 translational, 3 rotational, and 3 scale components based on minimiztion of Mattes Mutual Information metric using Regular Step Gradient Descent optimizer.<br />
* Deformable Demons: Uses Demons algorithm to compute deformation vectors<br />
* Deformable BSpline: Uses BSpline interpolation to compute deformation vectors based on minimiztion of Mattes Mutual Information metric.<br />
* Use TransformVolume module to apply deformation field and linear transformation to resample volumes.<br />
<br />
===== Generic Reader module =====<br />
<br />
* Preserves image orientation and scan order.<br />
* Reads all single component scalar [http://www.itk.org/Wiki/ITK_File_Formats formats supported by ITK] I/O factory as of ITK 2.4<br />
<br />
==== Additional functionality: ====<br />
<br />
===== Nrrd Reader module =====<br />
<br />
* Support for DTI images (DWI and Tensors).<br />
<br />
===== Image Export =====<br />
<br />
Image export is re-implemented using ITK image IO mechanism. The following image file formats are supported:<br />
<br />
* Analyze (.hdr)<br />
* NRRD(.nrrd) and (.nhrd)<br />
* Meta (.mhd) and (.mha)<br />
* Nifti (.nii), (.img), and (.img.gz)<br />
* VTK (.vtk)<br />
<br />
===== NEW Draw2 Editor =====<br />
<br />
Slicer 2.6 has two manual image editors: Draw (as in Slicer 2.5) and Draw2, which has many new features including:<br />
<br />
* [http://splweb.bwh.harvard.edu:8000/pages/papers/slicer/HiResEditor-NAC-suppl-writeup/tech-doc.htm High-resolution image editing]<br />
* Toggle on/off a cardinal (Catmull-Rom) spline interpolating any control polygon<br />
* Choose sampling density of spline for any polygon<br />
* Select/Move modes automatically toggle based on proximity to selected points, to mimick standard drawing programs; deselect all points by clicking away from the selected points<br />
* Insert mode to allow inserting control points in the middle of a polygon for manual refinement<br />
* Cut, copy, and paste features for control polygons<br />
* Shortcut keys for cut, copy, paste, select all, delete selected, delete all<br />
* Unapply feature: repeatedly click Unapply button to scroll through the applied polygons on any slice at any time and re-edit them<br />
* Can choose whether or not to clear labelmap before each apply operation<br />
* Watch the [https://simtk.org/docman/?group_id=46 Simbios Slicer documentation page] and [http://www.stanford.edu/~ctj/nmbl/imgmodel.html Chand's Slicer page] for additional information<br />
<br />
==== NEW: Comparison Module ====<br />
<br />
Jermie Anquez of ENST in France contributed a significant set of new functionality for viewing multiple volumes in a coordinated fashion:<br />
<br />
* display tab : allows to display up to 9 slices simultaneously (set the<br />
<br />
Number of slices using the radio buttons). Use the controls in the top right corner of each slice to set the background, foreground and labelmap displayed. You can fade from background to foreground using the opacity slider. By default, the slices display is independant (linking 'Off' button selected). Each slice has its own orientation, zoom/pan and offset (like in 3D Slicer general framework).<br />
<br />
* ** Clicking on Linking 'On' button activates linked display. Specific link<br />
<br />
controls are enabled. The orientation, zoom/pan, offset and cursor are then the same on every slice.<br />
<br />
* ** The R button resets zoom and pan on every slice (pressing 'r' key over a<br />
<br />
slice realizes the same operation)<br />
<br />
* mosaik tab : Display a mosaik mixing 2 volumes (useful to check<br />
<br />
registration results)<br />
<br />
* ** Set the reference and the second volumes to be displayed.<br />
** Set the number of subdivision, following width and height<br />
** Set the opacity between the reference and the second volume<br />
** Set offset, offset increment and orientation of the mosaik.<br />
<br />
* flip tab : Flip the volume following the 3 main axes. This operation doesn't<br />
<br />
generate any transform node, but modifies the Volume node.<br />
<br />
==== System Improvements: ====<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer:Slicer2.6_Getting_Started|here.]]<br />
<br />
To build slicer from source, see [[Slicer:Slicer_2.6_Building|Slicer:Slicer_2.6_Building]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Solaris<br />
** We are building using gcc version 3.0.3.<br />
<br />
* Linux<br />
** We are building using gcc version 2.96 on RedHat 7, gcc version 3.2.2 on RedHat 9, and gcc 3.2.3 on RedHat Enterprise Linux.<br />
<br />
* Mac OSX<br />
** We are building using gcc version 3.3.<br />
<br />
== Installing ==<br />
<br />
No special installation is needed -- simply unpack the distribution archive and run the platform-specific executable at the top level (for example, slicer2-win32.exe for the Windows build). The slicer distribution contains all the needed support libraries and has been tested on a variety of system configurations.<br />
<br />
== Known Issues: Base Operations ==<br />
<br />
* All platforms<br />
<br />
<br /><br />
<br />
* Linux<br />
** If you are having problems running Slicer over an ssh connection with X forwarding, the problem may be that you don't have the appropriate OpenGL libraries on the machine you're sshing from.<br />
<br />
* Mac<br />
<br />
<br /><br />
<br />
== Known Issues: Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
<br /><br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for Slicer version 2.5.x. [http://www.na-mic.org/Bug/ here].<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-devel Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's Mailing List].<br />
<br />
== Acknowledgements ==<br />
<br />
This work is part of the National Alliance for Medical Image Computing [http://www.na-mic.org/ (NAMIC)], funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics. This work was also supported by NIH grant P41 RR13218 [http://nac.spl.harvard.edu NAC] and the [http://www.nbirn.net Biomedical Informatics Research Network].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.6_Getting_Started&diff=63934Slicer:Slicer2.6 Getting Started2022-01-19T21:16:14Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<div class="floatleft"><span>[[Image:3DSlicer.png|[[Image:3DSlicer.png| 3D Slicer Logo]]]]</span></div><br />
<br />
<br /><br />
<br />
<br /> THIS IS THE MOST UP-TO-DATE VERSION (MAY 2006)<br />
<br />
<br /><br />
<br />
== Download Slicer (This is what users should download) ==<br />
<br />
Download and unpack the appropriate [http://www.na-mic.org/Slicer/Download/Release Slicer archive] this link gives you a precompiled ready-to-use Slicer 2.6 for the platforms stated below. <br />
<br />
* '''Mac''': darwin-ppc, darwin-x86 <br />
* '''Linux''': linux-x86, linux-x86_64 <br />
* '''Solaris''': solaris8<br />
* '''Windows''': win32<br />
<br />
See the [[Slicer:Slicer2.6_Release_Notes|Release Notes]] for more information.<br />
<br />
== Installation ==<br />
<br />
You can run the toplevel slicer executable from any directory, but if you want to install it as a system-wide package we suggest the following methods:<br />
<br />
* Unix/Linux:<br />
** place the slicer2 distribution directory in /usr/local/lib/slicer2.6<br />
** place a symbolic link in /usr/local/bin pointing to the executable for your platform in the distribution directory<br />
** If you are running Ubuntu, see [[Slicer:Slicer2.6Ubuntu|Slicer2.6 on Ubuntu]] for more information.<br />
* Windows:<br />
** there is no windows installer, so you may put slicer in any convenient location. You may wish to put a shortcut to the slicer2-win32.exe on your desktop.<br />
* Mac OS:<br />
** No installation suggestions currently<br />
<br />
== Follow the Tutorial ==<br />
<br />
To learn more about using Slicer, refer to the [[Slicer:Workshops:User_Training_101|Slicer_User_Training_101]] page which contains tutorials and sample data for Slicer2.6.<br />
<br />
== Build Slicer (This is for developers) ==<br />
<br />
If you want to build your own copy of Slicer 2.6 from the source code, follow the instructions here: [[Slicer:Slicer_2.6_Building|Slicer:Slicer_2.6_Building]]<br />
<br />
<br /><br />
<br />
== Notes for Mac OS X Users ==<br />
<br />
To run Slicer on the Mac, you need to have the X server and from an xterm run the slicer2-darwin-ppc executable at the top level of the unpacked archive.<br />
<br />
If you want to customize the X11 Application menu to launch slicer, you can use a syntax like the following:<br />
<br />
xterm -e /Users/pieper/slicer2.6/latest/slicer2/slicer2-darwin-ppc<br />
<br />
Note that Slicer relies on the X11 system and must be launched from within an xterm. More information about X11 on the mac is here: http://developer.apple.com/darwin/runningx11.html X11 isn't installed by default on current Mac OS releases, so be sure to select it as an optional package from your installation DVD.<br />
<br />
On the mac, the first click that raises a window to the front won't be passed on to that application. This can be confusing in slicer since the buttons will highlight as you pass over them even if the window is not in the front. To work around this, execute the following in an xterm:<br />
<br />
defaults write com.apple.x11 wm_click_through -bool true<br />
<br />
=== Leopard (10.5) launch issues ===<br />
<br />
With Mac OS X 10.5, the X11 package has changed (some say it has gotten worse). Two options are available to work around these changes.<br />
<br />
* Option 1: run the following commands in an xterm to bypass the slicer launcher:<br />
<br />
export SLICER_HOME=`pwd`<br />
wish launch.tcl<br />
<br />
* Option 2: downgrade to an older version of X11 (see, for example, http://aaroniba.net/articles/x11-leopard.html)<br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for Slicer version 2.6.x. [http://www.na-mic.org/Bug/ here]. Information on [[Slicer:Bugs|How to enter bugs]] into the Slicer bug tracker.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [mailto:slicer-devel@massmail.spl.harvard.edu Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [mailto:slicer-users@massmail.spl.harvard.edu Slicer User's Mailing List].<br />
<br />
Archives of these lists are available at http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel and http://massmail.spl.harvard.edu/mailman/listinfo/slicer-users.</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.7_Release_Notes&diff=63933Slicer:Slicer2.7 Release Notes2022-01-19T21:16:02Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
== New Features in Slicer 2.7 ==<br />
<br />
Slicer 2.7 has many new features! In addition to numerous bug fixes and other improvements, the list here highlights most major some new features in Slicer 2.7. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behaviour. Please send questions about unexpected behavior to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's mailing list] and reports to the [http://www.na-mic.org/Bug bug tracker].<br />
<br />
==== Updates to existing modules: ====<br />
<br />
===== FMRIEngine =====<br />
<br />
===== vtkFreeSurferReaders =====<br />
<br />
===== Ibrowser =====<br />
<br />
===== DTMRI =====<br />
<br />
===== EMSegmenter and EMAtlasBrainClassifier =====<br />
<br />
===== Alignments =====<br />
<br />
===== Generic Reader module =====<br />
<br />
==== Additional functionality: ====<br />
<br />
<br />
<br />
==== System Improvements: ====<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer:Slicer2.7_Getting_Started|here.]]<br />
<br />
To build slicer from source, see [[Slicer:Slicer_2.7_Building|Slicer:Slicer_2.7_Building]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Solaris<br />
** We are building using gcc version 3.0.3.<br />
<br />
* Linux<br />
** We are building using gcc version 2.96 on RedHat 7, gcc version 3.2.2 on RedHat 9, and gcc 3.2.3 on RedHat Enterprise Linux.<br />
<br />
* Mac OSX<br />
** We are building using gcc version 3.3.<br />
<br />
== Installing ==<br />
<br />
No special installation is needed -- simply unpack the distribution archive and run the platform-specific executable at the top level (for example, slicer2-win32.exe for the Windows build). The slicer distribution contains all the needed support libraries and has been tested on a variety of system configurations.<br />
<br />
== Known Issues: Base Operations ==<br />
<br />
* All platforms<br />
<br />
<br /><br />
<br />
* Linux<br />
** If you are having problems running Slicer over an ssh connection with X forwarding, the problem may be that you don't have the appropriate OpenGL libraries on the machine you're sshing from.<br />
<br />
* Mac<br />
<br />
<br /><br />
<br />
== Known Issues: Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
<br /><br />
<br />
== Reporting Bugs ==<br />
<br />
Please go to http://www.na-mic.org/Bug/ and report bugs for Slicer version 2.5.x.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-devel Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [http://lists.bwh.harvard.edu/mailman/listinfo/slicer-users Slicer User's Mailing List].<br />
<br />
== Acknowledgments ==<br />
<br />
This work is part of the National Alliance for Medical Image Computing [http://www.na-mic.org/ (NAMIC)], funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics. This work was also supported by NIH grant P41 RR13218 ([http://spl.harvard.edu NAC]) and the [http://www.nbirn.net Biomedical Informatics Research Network].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Slicer:Slicer2.7_Getting_Started&diff=63932Slicer:Slicer2.7 Getting Started2022-01-19T21:15:50Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<div class="floatleft"><span>[[Image:3DSlicer.png|[[Image:3DSlicer.png| 3D Slicer Logo]]]]</span></div><br />
<br />
<br /><br />
<br />
<br /> <br />
<br />
<br /><br />
<br />
== Download Slicer (This is what users should download) ==<br />
<br />
Download and unpack the appropriate [http://www.na-mic.org/Slicer/Download/Snapshots Slicer archive]<nowiki>: this link gives you a precompiled ready-to-use Slicer 2.6 for the platforms stated below. </nowiki><br />
<br />
* '''Mac'''<nowiki>: darwin-ppc, darwin-x86 </nowiki><br />
* '''Linux'''<nowiki>: linux-x86, linux-x86_64 </nowiki><br />
* '''Windows'''<nowiki>: win32 </nowiki><br />
<br />
See the [[Slicer:Slicer2.7_Release_Notes|Release Notes]] for more information.<br />
<br />
== Installation ==<br />
<br />
You can run the toplevel slicer executable from any directory, but if you want to install it as a system-wide package we suggest the following methods:<br />
<br />
* Unix/Linux:<br />
** place the slicer2 distribution directory in /usr/local/lib/slicer2.7<br />
** place a symbolic link in /usr/local/bin pointing to the executable for your platform in the distribution directory<br />
** If you are running Ubuntu, see [[Slicer:Slicer2.7Ubuntu|Slicer2.7 on Ubuntu]] for more information.<br />
* Windows:<br />
** there is no windows installer, so you may put slicer in any convenient location. You may wish to put a shortcut to the slicer2-win32.exe on your desktop.<br />
* Mac OS:<br />
** No installation suggestions currently<br />
<br />
== Follow the Tutorial ==<br />
<br />
To learn more about using Slicer, refer to the [[Slicer:Workshops:User_Training_101|Slicer_User_Training_101]] page which contains tutorials and sample data for Slicer2.7.<br />
<br />
== Build Slicer (This is for developers) ==<br />
<br />
If you want to build your own copy of Slicer 2.7 from the source code, follow the instructions here: [[Slicer:Slicer_2.7_Building|Slicer:Slicer_2.7_Building]]<br />
<br />
<br /><br />
<br />
== Notes for Mac OS X Users ==<br />
<br />
To run Slicer on the Mac, you need to have the X server and from an xterm run the slicer2-darwin-ppc executable at the top level of the unpacked archive.<br />
<br />
If you want to customize the X11 Application menu to launch slicer, you can use a syntax like the following:<br />
<br />
xterm -e /Users/pieper/slicer2.6/latest/slicer2/slicer2-darwin-ppc<br />
<br />
Note that Slicer relies on the X11 system and must be launched from within an xterm. More information about [http://developer.apple.com/darwin/runningx11.html X11] on the mac. <br />
'''Note:''' X11 isn't installed by default on current Mac OS releases, so be sure to select it as an optional package from your installation DVD.<br />
<br />
== Reporting Bugs ==<br />
<br />
Please report bugs for Slicer version 2.7.x. [http://www.na-mic.org/Bug/ here]. Information on [[Slicer:Bugs|How to enter bugs]] into the Slicer bug tracker.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [mailto:slicer-devel@massmail.spl.harvard.edu Slicer Developer's Mailing List]. Questions about running Slicer can be sent to the [mailto:slicer-users@massmail.spl.harvard.edu Slicer User's Mailing List].<br />
<br />
<br /> Archives of these lists are available at http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel and http://massmail.spl.harvard.edu/mailman/listinfo/slicer-users .</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation&diff=63931Documentation2022-01-19T21:15:33Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__NOTOC__<br />
<br />
{{Infobox<br />
|name = 3D Slicer {{documentation/version}}<br />
|above = 3D Slicer<br />
|abovestyle = <br />
<br />
|image = [[File:3DSlicer41Logo-H-218X144.png|218px|alt=3D Slicer {{documentation/version}}]]<br />
|imagestyle = <br />
|headerstyle = background:#E7DCC3;<br />
|labelstyle = <br />
|datastyle = <br />
<br />
|header1 = Description<br />
|label1 = <br />
|data1 =<br />
|header2 =<br />
|label2 = <br />
|data2 = Research platform for the analysis and visualization of medical images, including image guided therapy.<br />
|header3 =<br />
|label3 = <br />
|data3 = Free and extensible open source package.<br />
|header4 =<br />
|label4 = Multi-platform<br />
|data4 = Linux, MacOSX, Windows<br />
|header5 =<br />
|label5 = Version<br />
|data5 = {{documentation/currentversion}}<br />
|header6 =<br />
|label6 = License<br />
|data6 = [http://www.slicer.org/pages/LicenseText Contribution and Software License Agreement]<br />
}}<br />
<br />
==Slicer 4==<br />
<br />
*[[Documentation/Nightly|Nightly]]<br />
<!-- NEXT RELEASE --><br />
*[[Documentation/4.10|4.10]] / [[Documentation/4.10/ReleaseNotes|Release notes]] / [[Documentation/4.10/Announcements | Announcement]] / [[Documentation/4.10/Acknowledgments | Acknowledgments]]<br />
*[[Documentation/4.8|4.8]] / [[Documentation/4.8/ReleaseNotes|Release notes]] / [[Documentation/4.8/Announcements | Announcement]] / [[Documentation/4.8/Acknowledgments | Acknowledgments]]<br />
*[[Documentation/4.6|4.6]] / [[Documentation/4.6/ReleaseNotes|Release notes]] / [[Documentation/4.6/Announcements | Announcement]] / [[Documentation/4.6/Acknowledgments | Acknowledgments]]<br />
*[[Documentation/4.5|4.5]] / [[Documentation/4.5/ReleaseNotes|Release notes]] / [[Documentation/4.5/Announcements | Announcement]] / [[Documentation/4.5/Acknowledgments | Acknowledgments]]<br />
*[[Documentation/4.4|4.4]] / [[Documentation/4.4/ReleaseNotes|Release notes]] / [[Documentation/4.4/Announcements | Announcement]] / [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
*[[Documentation/4.3|4.3]] / [[Documentation/4.3/ReleaseNotes|Release notes]] / [[Documentation/4.3/Announcements | Announcement]] / [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
*[[Documentation/4.2|4.2]] / [[Documentation/4.2/ReleaseNotes|Release notes]] / [[Documentation/4.2/Announcements | Announcement]] / [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
*[[Documentation/4.1|4.1]] / [[Documentation/4.1/ReleaseNotes|Release notes]] / [[Documentation/4.1/Announcements | Announcement]] / [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
*[[Documentation/4.0|4.0]] / [[Documentation/4.0/ReleaseNotes|Release notes]] / [[Documentation/4.0/Announcements | Announcement]] / [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 Acknowledgments]<br />
<br />
<font color="#669"><small>Acknowledgments are now reported separately for each version.</small></font><br />
<!--<br />
<font color="#669"><small>The community contributing to Slicer 4 is acknowledged [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer_4 here]</small></font><br />
--><br />
<br />
==Slicer 3==<br />
<br />
*[[Documentation/3.6|3.6]] / [[Documentation/3.6/ReleaseNotes|Release notes]] / [[Announcements:Slicer3.6 | Announcement]]<br />
*[[Documentation/3.5|3.5]]<br />
*[[Documentation/3.4|3.4]] / [[Documentation/3.4/ReleaseNotes|Release notes]] / [[Announcements:Slicer3.4 | Announcement]]<br />
*[[Documentation/3.2|3.2]] / [[Documentation/3.2/ReleaseNotes|Release notes]]<br />
<br />
<font color="#669"><small>The community contributing to Slicer 3 is acknowledged [http://www.slicer.org/pages/Acknowledgments#Acknowledgments_Slicer3 here]</small></font><br />
<br />
==Slicer 2==<br />
<br />
*[[Slicer:Slicer2.7_Getting_Started|2.7]] / [[Slicer:Slicer2.7_Release_Notes|Release notes]]<br />
*[[Slicer:Slicer2.6_Getting_Started|2.6]] / [[Slicer:Slicer2.6_Release_Notes|Release notes]]<br />
*[[Slicer:Slicer2.5_Getting_Started|2.5]] / [[Slicer:Slicer2.5_Release_Notes|Release notes]]<br />
*[[Slicer:Slicer2.4_Getting_Started|2.4]] / [[Slicer:Slicer2.4_Release_Notes|Release notes]]<br />
<br />
<font color="#669"><small>The community contributing to Slicer 2 is acknowledged [http://www.slicer.org/pages/Acknowledgments#Slicer2:_Individual.2FGroup_Contributors here]</small></font><br />
<br />
==Slicer 1==<br />
<br />
*[https://web.archive.org/web/20130205161603/https://www.slicer.org/archives/download/index.html 1.3] / [http://massmail.spl.harvard.edu/public-archives/slicer-users/2002/000145.html Announcement]<br />
<br />
<br />
<hr /><br />
<center>[[Image:Slicer4Announcement-HiRes.png|350px]]</center><br />
<!--<br />
[[Image:AppGUIMap.png|400px]]<br />
--></div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/3.2/ReleaseNotes&diff=63930Documentation/3.2/ReleaseNotes2022-01-19T21:15:15Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
{{documentation/versionlist}}<br />
<br />
== New Features in Slicer 3.2 ==<br />
<br />
Slicer 3.2 has many new features! The list here highlights most major some new features in Slicer 3.2. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behavior. If you do encounter unexpected behavior, you can join the Slicer users's mailing by sending email to [mailto:slicer-users-request@massmail.spl.harvard.edu?subject=subscribe slicer-users-request@massmail.spl.harvard.edu] with the subject "subscribe", and report the behavior there to see if there is a work around (or check the [http://massmail.spl.harvard.edu/pipermail/slicer-users/ archives]), and to the [http://www.na-mic.org/Bug bug tracker] if it needs to be solved by the developers.<br />
<br />
New Features:<br />
<br />
* Feature!<br />
<br />
* Feature!<br />
<br />
* Feature!<br />
<br />
A summary of new features is also available here: [[Slicer3:Status]]<br />
<br />
== Downloading ==<br />
<br />
'''Download the release candidates here'''<br />
<br />
Release candidate builds are available for: <br />
<br />
*[http://www.na-mic.org/Slicer/Download/Release/win32/Slicer3-3.2.2008-07-29-win32.exe Windows], <br />
*[http://www.na-mic.org/Slicer/Download/Release/linux-x86/Slicer3-3.2.2008-07-29-linux-x86.tar.gz 32-bit Linux]<br />
*[http://www.na-mic.org/Slicer/Download/Release/linux-x86_64/Slicer3-3.2.2008-07-29-linux-x86_64.tar.gz 64-bit Linux]<br />
*[http://www.na-mic.org/Slicer/Download/Release/darwin-ppc/Slicer3-3.2.2008-07-29-darwin-ppc.tar.gz Darwin PPC]<br />
*[http://www.na-mic.org/Slicer/Download/Release/darwin-x86/Slicer3-3.2.2008-07-29-darwin-x86.tar.gz Darwin x86]<br />
<br />
== Installing ==<br />
<br />
=== Linux ===<br />
<br />
tar -xzvf Slicer3-3.2.2008-07-29-linux-x86.tar.gz<br />
or, for 64 bit systems<br />
tar -xzvf Slicer3-3.2.2008-07-29-linux-x86_64.tar.gz<br />
<br />
=== Mac === <br />
<br />
Be sure you have X Windows installed.<br />
<br />
From a terminal:<br />
tar -xzvf Slicer3-3.2.2008-07-29-darwin-x86.tar.gz<br />
or, for older PPC Macs:<br />
tar -xzvf Slicer3-3.2.2008-07-29-darwin-ppc.tar.gz<br />
<br />
=== Windows ===<br />
<br />
Double click on:<br />
Slicer3-3.2.2008-07-29-win32.exe<br />
<br />
== Known Issues: Base Operations ==<br />
<br />
* All Platforms:<br />
**Win/Level can be slow to update in Volumes Display<br />
<br />
* Linux: <br />
**Fiducial visibility interferes with slice visibility (mouse over or toggle visibility)<br />
**Import Scene: model name clash found when doing IGT tutorial<br />
<br />
* Windows:<br />
<br />
* Mac:<br />
<br />
For users of Mac OS X 10.5 (Leopard) we suggest replacing the standard X11 application with the latest XQuartz version available here: <br />
http://xquartz.macosforge.org/trac/wiki<br />
<br />
== Known Issues: Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer3:Downloads|here.]]<br />
<br />
To build slicer from source, see [[Slicer3:Build_Instructions|Slicer3:Build_Instructions]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Linux<br />
** We are building using g++ version 3.4.3 on RedHat Enterprise Linux 4.<br />
<br />
* Mac OSX<br />
** We are building using gcc version 4.0.1<br />
<br />
<br />
== Reporting Bugs ==<br />
<br />
Please go to http://www.na-mic.org/Bug/ and report bugs for Slicer version 3.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [mailto:slicer-devel@bwh.harvard.edu Slicer Developers Mailing List]. Questions about running Slicer can be sent to the [mailto:slicer-users@bwh.harvard.edu Slicer Users Mailing List].<br />
<br />
Subscription management tools and archives are available at:<br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel <br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users<br />
<br />
== Acknowledgements ==<br />
<br />
[http://www.slicer.org/wiki/Announcments-3.2-Team The Slicer Development Team]<br />
<br />
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics. This work was also supported by NIH grant P41 RR13218 (http://spl.harvard.edu/nac) and the Biomedical Informatics Research Network (http://www.nbirn.net).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Announcements:Slicer3.4&diff=63929Announcements:Slicer3.42022-01-19T21:14:55Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__NOTOC__<br />
=Introduction= <br />
<br />
The [[Announcments-3.4-Team|community]] of Slicer developers is proud to announce the release of '''Slicer 3.4'''.<br />
<br />
*Click here to [http://www.slicer.org/pages/Downloads download] different versions of Slicer3 and find pointers to the source code, mailing lists and bug tracker. *Please note that Slicer continues to be a research package and is not intended for clinical use. Testing of functionality is an ongoing activity with high priority, however, some features of Slicer3 are not fully tested.<br />
*The [[Slicer3.4:Training|Slicer 3.4 Training page]] provides a series of courses for learning how to use Slicer3. The portfolio contains self-guided presentation and sample data sets<br />
<br />
The main [http://www.slicer.org slicer.org] pages provide a guided tour to the application, training materials, and the development community. New users should start there because we try to keep the pages organized and up to date.<br />
<br />
==Highlights==<br />
<gallery caption="Slicer v3.4 - New and Improved Feature Highlights" widths="250px" heights="150px" perrow="4"><br />
Image:analysis_result.jpg|The [[Modules:ChangeTracker-Documentation-3.4 |'''Change Tracker''']] is a software tool for quantification of the subtle changes in pathology.<br />
Image:Femesh-in-trunk-120808.png|The [[Modules:IA_FEMesh-Documentation-3.4 |'''IA-FEMesh Module''']] is a loadable module to automate the creation of surface and volumetric meshes for finite element analysis.<br />
Image:Tracts_glyphs_90degrees.jpg|The [[Modules:Volumes:Diffusion_Editor-Documentation-3.4|'''Diffusion Editor''']] is a 3D Slicer module, which allows modifying parameters (gradients, bValues, measurement frame) of DWI data and provides a quick way to interpret them.<br />
Image:FiducialGlyphs.jpg|The [[Modules:Fiducials-Documentation-3.4 |'''Fiducials Module''']] creates and manages lists of Fiducial points.<br />
Image:Volren.png|[[Modules:VolumeRendering-Documentation-3.4 |'''Volume Rendering''']] allows the rendering of volumes in 3D view in semi transparent mode, potentially combined with the models in one scene.<br />
Image:FetchMIDoc SlicerInformatics1.png|[[Modules:FetchMI-Documentation-3.4|'''FetchMI''']] (Fetch Medical Informatics) is a 'sandbox' functionality being developed to remotely upload, download and tag Slicer scenes and datasets.<br />
Image:QAsearch.png|The [[Modules:QueryAtlas-Documentation-3.4 |'''Query Atlas''']] is a 3D Slicer module that allows the use of atlas-based anatomical representations, linked to underlying semantic descriptions, as an interactive 3D spatial reference for viewing experimental results and for performing information searches to study and interpret them.<br />
Image:B-spline-reg.png|The [[Documentation-3.4#Registration |'''Register Images Module''']] is an integrated framework providing access to ITK registration technologies. Algorithms can be run in single mode or pipelined.<br />
Image:LinearRegistration.png|The [[Modules:LinearRegistration-Documentation-3.4| '''Linear Registration''']] command line module implements a registration algorithm based on the Mattes mutual information registration metric. This module is often used to align images of the same subject acquired at different times.<br />
Image:EMSegment-Workflow.png|The [[Modules:EMSegment-TemplateBuilder |'''EMSegment Template Builder Module''']] is the primary Slicer3 interface to the EMSegment algorithm (Pohl et al.), an automatic segmentation algorithm for medical images.<br />
Image:Roi tract.jpg|[[Modules:ROISeeding-Documentation-3.4 |'''ROI Seeding''']] is a tractography implementation that allows a user to seed tracts from a region of interest (ROI). The ROI is defined as a labelmap and has to be provided by the user.<br />
Image:FiducialSeeding.png| The [[Modules:FiducialSeeding-Documentation-3.4 |'''Fiducial Seeding Module''']] is used for interactive seeding of DTI fiber tracts starting from a list of fiducials or vertices of a model.<br />
Image:DTIDisplayGlyphs.png|The [[Modules:DTIDisplay-Documentation-3.4 |'''Fiber Bundles Module''']] is used for loading, saving, and changing the appearance of DTI fiber tracts.<br />
Image:SlicesModule.png|The [[Modules:Slices-Documentation-3.4 |'''Slices Module''']] provides access to all Slice nodes in a single panel. <br />
Image:SlicerColorDisplayWidget-3.4.jpg|The [[Modules:Color-Documentation-3.4 |'''Color Module''']] manages color look up tables. Look-up Tables (LUTs) are used by mappers to translate between an integer and a color value for display of models and volumes.<br />
Image:EditorModule.png|The [[Modules:Editor-Documentation-3.4 |'''Interactive Editor''']] is a set of tools to create label maps to identify structures volumes. <br />
</gallery><br />
<br />
<br />
==New Features in Slicer 3.4==<br />
Slicer 3.4 has many new features! Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behavior. If you do encounter unexpected behavior, you can join the Slicer users' mailing by sending email to [mailto:slicer-users-request@massmail.spl.harvard.edu?subject=subscribe slicer-users-request@massmail.spl.harvard.edu] with the subject "subscribe", and report the behavior there to see if there is a work around (or check the [http://massmail.spl.harvard.edu/public-archives/slicer-users/ archives]), and to the [http://www.na-mic.org/Bug bug tracker] if it needs to be solved by the developers.<br />
<br />
<br />
===New Features===<br />
<br />
*Welcome Module at Startup<br />
*Improved Save Module<br />
*Improved Editor<br />
*New Registration module<br />
*New Slices module<br />
*Fiducial based tractography<br />
*Improved SceneSnapshot Screen Capture functionality<br />
*Compare View and Cross Hairs<br />
*Support for Extension Server for installing plug-ins<br />
*Improved Dicom Support<br />
*MRML scenes and all data load from and save into XNAT desktop<br />
<br />
==[http://www.slicer.org/pages/Downloads Links to the Latest Slicer 3.4 Binaries]==<br />
<br />
Including:<br />
<br />
*64-bit Linux<br />
*32-bit Linux<br />
*Darwin PPC<br />
*Darwin x86<br />
*Windows<br />
<br />
==[[Documentation-3.4|Pages with reference manual style documentation of the modules in Slicer 3.4]]==<br />
<br />
<br />
==Reporting Bugs==<br />
Please go to http://www.na-mic.org/Bug/ and report bugs for Slicer version 3.<br />
<br />
==Where to go for Help==<br />
Compilation/development questions can be sent to the [mailto:slicer-devel@bwh.harvard.edu Slicer Developers Mailing List]. Questions about running Slicer can be sent to the [mailto:slicer-users@bwh.harvard.edu Slicer Users Mailing List].<br />
<br />
Subscription management tools and archives are available at:<br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel <br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users<br />
<br />
==Acknowledgements==<br />
[http://www.slicer.org/wiki/Announcments-3.4-Team The Slicer Development Team]<br />
<br />
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics. This work was also supported by NIH grant P41 RR13218 ([http://spl.harvard.edu/nac NAC]) and the [http://www.nbirn.net Biomedical Informatics Research Network].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Announcements:Slicer3.6&diff=63928Announcements:Slicer3.62022-01-19T21:14:22Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
[[Documentation-3.6|Back to Documentation 3.6]]<br />
[[image:Slicer3-6Announcement-v2.png|3.6 Icon large]]<br />
<br />
=Introduction= <br />
<br />
The [[Announcments-3.6-Team|community]] of Slicer developers is proud to announce the release of '''Slicer 3.6'''.<br />
<br />
*Click here to [http://www.slicer.org/pages/Downloads download] different versions of Slicer3 and find pointers to the source code, mailing lists and bug tracker. *Please note that Slicer continues to be a research package and is not intended for clinical use. Testing of functionality is an ongoing activity with high priority, however, some features of Slicer3 are not fully tested.<br />
*The [[Training|Slicer Training page]] provides a series of courses for learning how to use Slicer3. The portfolio contains self-guided presentation and sample data sets <br />
<br />
The main [http://www.slicer.org slicer.org] pages provide a guided tour to the application, training materials, and the development community. New users should start there because we try to keep the pages organized and up to date.<br />
<br />
<br />
=Our Philosophy=<br />
Slicer is a community platform created for the purpose of subject specific image analysis and visualization. <br />
<br />
* Multi-modality imaging including, MRI, CT, US, nuclear medicine, and microscopy<br />
* Multi organ from head to toe<br />
* Bidirectional interface for devices<br />
* Expandable and interfaced to multiple toolkits<br />
<br />
There is no restriction on use, but permissions are responsibility of users. For details on the license see [http://www.slicer.org/cgi-bin/License/SlicerLicenseForm.pl here]<br />
<br />
=Slicer Highlights=<br />
<gallery caption="Slicer v3.6 - New and Improved Modules" widths="250px" heights="150px" perrow="3"><br />
Image:Slicer3.6-Editor-2010-05-06.png|The [[Modules:Editor-Documentation-3.6|Interactive Editor]] can be used to create and edit label maps for quantitative analysis and surface model generation (Steve Pieper)<br />
Image:VolumeRenderingICPE.png| [[Modules:VolumeRendering-Documentation-3.6|Volume Rendering]] (Yanling Liu, Julien Finet, Lisa Avila)<br />
Image:Slicer-ColorGUI-3.6.jpg| [[Modules:Colors-Documentation-3.6|Colors]] (Nicole Aucoin)<br />
Image:Slicer3.6MeasurementsRulersModel.jpg| [[Modules:Measurements-Documentation-3.6 |Measurements (rulers and angles)]] (Nicole Aucoin)<br />
Image:SlicerFiducialsGlyphs-3.4.jpg| [[Modules:Fiducials-Documentation-3.6|Fiducials]] (Nicole Aucoin)<br />
Image:EMSegment-Simple.png|[[Modules:EMSegmenter-3.6|EM Segmenter]] (Kilian Pohl)<br />
Image:Fastmarching-result-adjusted.jpg| [[Modules:FastMarchingSegmentation-Documentation-3.6|Fast Marching segmentation]] (Andriy Fedorov)<br />
Image:RSSkidneyL.png| [[Modules:RobustStatisticsSeg-Documentation-3.6|Robust Statistical Segmentation]] (Yi Gao)<br />
Image:Fiducial registration before.jpg|NEW: [[Modules:RegisterImagesMultiRes-Documentation-3.6|Multiresolution Affine registration]] (Casey Goodlett)<br />
Image:B-spline-reg-detail.png|Improved: [[Modules:RegisterImages-Documentation-3.6|Expert Automated Registration]] (Casey Goodlett)<br />
Image:Fiducial_registration_before.jpg|NEW: [[Modules:TransformFromFiducials-Documentation-3.6|Fiducial Registration]] (Casey Goodlett)<br />
Image:Registration_BRAINSfit.png|NEW: [[Modules:BRAINSFit |BRAINSFit Registration]] (Hans Johnson)<br />
Image:Registration_BRAINSdemonwarp.png|NEW: [[Modules:BRAINSDemonWarp|BRAINSDemonWarp]] (Hans Johnson)<br />
Image:BRAINSResample.png|NEW: [[Modules:BRAINSResample|BRAINSResample]] (Hans J. Johnson)<br />
Image:BRAINSROIAuto.png|NEW: [[Modules:BRAINSROIAuto|BRAINSROIAuto]] (Hans J. Johnson)<br />
Image:Plastimatch_icon.png|NEW: [[Modules:Plastimatch |Plastimatch non-rigid registration]] (Greg Sharp)<br />
Image:PETCTFusion.png| [[Modules:PETCTFusion-Documentation-3.6 |PETCTFusion]] (Wendy Plesniak)<br />
Image:| [[Modules:CollectFiducials-Documentation-3.6 |Collect Patient Fiducials]] (Andrew Wiles)<br />
Image:| [[Modules:IGTToolSelector-Documentation-3.6 |IGT Tool Selector]] (Andrew Wiles)<br />
Image:FourDImage Screenshot1.png| [[Modules:FourDImage-Documentation-3.6|4D Image Viewer]] (Junichi Tokuda)<br />
Image:MRI_Bias_Field_Correction_Slicer3_close_up.png|[[Modules:MRIBiasFieldCorrection-Documentation-3.6|MRIBiasFieldCorrection]] correction of MRI intensity inhomogeneity i.e. bias field (Sylvain Jaume)<br />
Image:N4 prostate bias ax.png| [[Modules:N4ITKBiasFieldCorrection-Documentation-3.6|N4 Bias Field Correction]] (Andriy Fedorov)<br />
Image:Surface H c.png| [[Modules:MeshContourSegmentation-Documentation-3.6|Mesh Contour Segmentation]] (Peter Karasev)<br />
Image:ModelTransform.PNG| [[Modules:ModelTransform-Documentation-3.6|Model Transform]] (Alex Yarmarkovich)<br />
Image:BrainWebImageTransformed.jpg| [[Modules:ResampleScalarVectorDWIVolume-Documentation-3.6|Resample Scalar/Vector/DWI Volume]] (Francois Budin)<br />
Image:ExtractSubvolume3.png| [[Modules:CropVolume-Documentation-3.6|Crop Volume]] (Andriy Fedorov)<br />
Image:Endoscopy-slicer3.6.png| [[Modules:Endoscopy-Documentation-3.6|Virtual Endoscopy]] (Steve Pieper)<br />
Image:ChangeTracker_Analysis-3.4.png| [[Modules:ChangeTracker-Documentation-3.6|ChangeTracker]] (Andriy Fedorov)<br />
Image:Slicer3_OpenIGTLinkIF__VolumeReslice2.png| [[Modules:OpenIGTLinkIF-Documentation-3.6|OpenIGTLinkIF]] (Junichi Tokuda)<br />
Image:ProstateNav-3.6_Transrectal.png| [[Modules:ProstateNav-Documentation-3.6|ProstateNav]] (Andras Lasso, Junichi Tokuda)<br />
Image:slicer3.6_neuronav_OR.jpeg| [[Modules:NeuroNav-Documentation-3.6|NeuroNav]] (Haiying Liu)<br />
Image:IGTToolSelectorPointer.png |[[Modules:IGTToolSelector-Documentation-3.6|IGT tool selector]] (A. Wiles) <br />
</gallery><br />
<br />
=Slicer Extensions=<br />
<gallery caption="Slicer v3.6 - Extensions" widths="250px" heights="150px" perrow="3"><br />
Image:Plastimatch_dicomrt_dose.png|The [[Modules:PlastimatchDICOMRT| Plastimatch DICOM RT reader]] allows import and conversion of data in that format. (Greg Sharp)<br />
Image:ABC out3d.png|The [[Modules:ABC-Documentation-3.5|ABC Segmenter]] is based on ITK EM technology.<br />
Image:FCMResultLabels-3-6.png|[[Modules:FuzzySegmentationModule|Fuzzy segmentation]]<br />
Image:HammerAverage-3-6.png|[[Modules:HammerRegistration|Hammer Registration]] can be used to build statistical brain atlases<br />
Image:Plastimatch image 2.png|[[Modules:Plastimatch|Plastimatch non-rigid registration]] (Greg Sharp)<br />
Image:Corticalthickness.png|[[Modules:ARCTIC-Documentation-3.6|Arctic wizard]] (Automatic Regional Cortical ThICkness)<br />
Image:LesionsWithVentricles.png|[[Modules:LesionSegmentationApplications-Documentation-3.6| Lupus white matter lesions segmentation]] (Jeremy Bockholt, Mark Scully)<br />
Image:Shot2.png|[[Modules:EMDTIClustering-Documentation-3.6|EM DTI clustering]] (Mahnaz Maddah)<br />
Image:RicianTensorCorrectionImage.png|[[Modules:RicianNoiseFilter|Rician Noise Filter]] for noise removal in DWI data<br />
Image:FourDAnalysisModuleScreenShot-3.5.png|The [[Modules:FourDAnalysis-Documentation-3.6|FourD Analysis module]] was designed for time series analysis (Junichi Takuda)<br />
Image:Avf 3d voronoi big.png|[[Modules:VMTKCenterlines|Centerline extraction using Voronoi diagrams]] (Luca Antiga, Daniel Haehn) <br />
Image:Labeldiameterestimation1.png|[[Modules:LabelDiameterEstimation-Documentation-3.6|Label diameter estimation]] (Andriy Fedorov) <br />
</gallery><br />
<br />
Checklist for the [[Checklist-3.6-Release|3.6 release]]<br />
<br />
= Other Improvements, Additions & Documentation =<br />
<gallery caption="" widths="250px" heights="150px" perrow="3"><br />
image:3.6 Default LUT.png| [[Slicer3:2010_GenericAnatomyColors|New default LUT]] (Michael Halle)<br />
Image:RegPortal_Icon.png|[[Slicer3:Registration|Registration Portal Page: overview of avail. tools & modules]] (Dominik Meier)<br />
Image:Resampling_DecisionMatrix.png|[[Registration:Resampling|Resampling Tool Feature Matrix]] (Dominik Meier)<br />
Image:RegLib_Banner.png|[http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory Slicer Registration Case Library] (Dominik Meier)<br />
Image:RegistrationWelcome_icon.png|[[Slicer3:Registration|Registration Welcome Module]] gives an overview of avail. registration modules<br />
Image:SegmentationWelcome_icon.png|[[Modules:SegmentationOverview3.6|Segmentation Welcome Module]] gives an overview of avail. segmentation modules<br />
Image:DiffusionWelcome_icon.png|[[Modules:DiffusionMRIWelcome-Documentation-3.6|Diffusion Welcome Module]] gives an overview of avail. DWI processing modules<br />
Image:ITK_logo.png|[http://www.kitware.com/news/home/browse/272 ITK upgrades] provided performance improvements in all registration modules and many other modules.<br />
</gallery></div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/3.6/ReleaseNotes&diff=63927Documentation/3.6/ReleaseNotes2022-01-19T21:13:50Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
{{documentation/versionlist}}<br />
* [[Slicer3:3.6Release|3.6 Release schedule]]<br />
<br />
== Known Issues ==<br />
<br />
* Multiple 3D View mode is only partially supported in version 3.6 (see [[Modules:MainApplicationGUI-Documentation-3.6#Notes_about_Multiple_3D_Views|this page]]). A more complete implementation is on the list for [[Slicer4]].<br />
* Due to a bug in the earlier implementation of hierarchical transform trees, multi-level nested transforms loaded from scenes created in version 3.4 won't behave as expected. Reversing the order of the transforms is required.<br />
* Due to limitations in ITK's gdcm DICOM handling, Slicer is unable to output DICOM format data. We recommend saving new datasets in [http://teem.sourceforge.net/nrrd/format.html NRRD format] using the extension '''.nrrd''' from Slicer's Save Interface. Note that this currently impacts Slicer's remote I/O as well; multi-file DICOM volumes uploaded to a remote repository using the web services infrastructure will be collapsed into in a single DICOM file upon upload; however DICOM header information will be preserved. This behavior will be addressed in a software patch subsequent to the 3.6 release.<br />
* The new [[Slicer3:GPURayCaster|GPU Ray Cast Renderer]] randomly produces transparent rendering (10% of the time) when the camera is inside the volume. It works fine when the camera is outside the volume.<br />
* Restoring a scene that uses CompareView may result in the Crosshair not being initially displayed in all the CompareView viewers. A change in slice location may display the Crosshair correctly.<br />
<br />
== Platform Specific Notes ==<br />
<br />
=== Windows ===<br />
<br />
=== Mac ===<br />
* The new [[Slicer3:GPURayCaster|GPU Ray Cast Renderer]] crashes on MAC OS. This is due to Apple OpenGL drivers (see the [[http://www.vtk.org/Bug/view.php?id=10716 bug report]])<br />
** Note: It's an OS limitation not an hardware limitation: The renderer will work fine on a MAC if Slicer runs under a virtual machines with a Windows or Linux OS.<br />
<br />
=== Linux ===</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/3.4/ReleaseNotes&diff=63926Documentation/3.4/ReleaseNotes2022-01-19T21:13:33Z<p>Sam.horvath: </p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
{{documentation/versionlist}}<br />
== New Features in Slicer 3.4 ==<br />
<br />
Slicer 3.4 has many new features! The list here highlights most major some new features in Slicer 3.4. Please also note that many of these new features are still being developed and will be improved in future releases, so you may encounter some unexpected behavior. If you do encounter unexpected behavior, you can join the Slicer users's mailing by sending email to [mailto:slicer-users-request@massmail.spl.harvard.edu?subject=subscribe slicer-users-request@massmail.spl.harvard.edu] with the subject "subscribe", and report the behavior there to see if there is a work around (or check the [http://massmail.spl.harvard.edu/pipermail/slicer-users/ archives]), and to the [http://www.na-mic.org/Bug bug tracker] if it needs to be solved by the developers.<br />
<br />
New Features:<br />
<br />
* Welcome Module at Startup<br />
* Improved Save Module<br />
* Improved Editor<br />
* New Registration module<br />
* New Slices module<br />
* Fiducial based tractography<br />
* Improved SceneSnapshot Screen Capture functionality<br />
* Compare View and Cross Hairs<br />
* Support for Extension Server for installing plug-ins<br />
* Improved Dicom Support<br />
* MRML scenes and all data load from and save into XNAT desktop<br />
<br />
A summary of new features is also available here: [[Slicer3:Status]]<br />
<br />
== Downloading ==<br />
<br />
'''Download the release candidates here'''<br />
<br />
Release candidate builds are available for: <br />
<br />
*[http://www.na-mic.org/Slicer/Download/Release Windows]<br />
*[http://www.na-mic.org/Slicer/Download/Release 32-bit Linux]<br />
*[http://www.na-mic.org/Slicer/Download/Release 64-bit Linux]<br />
*[http://www.na-mic.org/Slicer/Download/Release Darwin PPC]<br />
*[http://www.na-mic.org/Slicer/Download/Release Darwin x86]<br />
<br />
== Installing ==<br />
<br />
=== Linux ===<br />
<br />
tar -xzvf Slicer3-3.4.2009-xx-xx-linux-x86.tar.gz<br />
or, for 64 bit systems<br />
tar -xzvf Slicer3-3.4.2008-xx-xx-linux-x86_64.tar.gz<br />
<br />
=== Mac === <br />
<br />
Be sure you have X Windows installed.<br />
<br />
From a terminal:<br />
tar -xzvf Slicer3-3.4.2009-xx-xx-darwin-x86.tar.gz<br />
or, for older PPC Macs:<br />
tar -xzvf Slicer3-3.2.2009-xx-xx-darwin-ppc.tar.gz<br />
<br />
=== Windows ===<br />
<br />
Double click on:<br />
Slicer3-3.2.2009-xx-xx-win32.exe<br />
<br />
== Known Issues: Base Operations ==<br />
<br />
* All Platforms:<br />
** Undo/Redo functionality is available for the Editor Module only at this time.<br />
** There is currently a 10 stage Undo history in the Editor Module.<br />
** Procedural color nodes don't display in the Colors Module.<br />
** Volume rendering transfer functions are not stored in the MRML scene.<br />
** Grayed-out tool icons reflect functionality not yet available.<br />
** To load DWI volumes in DICOM format, use the Converters->Dicom DWI loader, with only one volume in the ''Dicom Directory''<br />
** In Color By Orientation mode, you can't adjust window/level<br />
*** Color By Orientation does not work on tracts<br />
** If you wish to use the Editor module on DWI or DTI volumes, must create a scalar volume first.<br />
<br />
* Linux: <br />
** You need to have X11 configured to run 3D graphics (opengl/mesa). Confirm that you can run the command <pre>glxgears</pre>.<br />
** For debian/ubuntu you may need to install the libxss1 library in order to run the slicer binary download <pre>sudo apt-get install libxss1</pre><br />
** Some versions of linux have an incompatible libssl that generates an error message related to md5 when trying to launch the python console. <br />
** If you have trouble with font sizes (all options yield fonts that are ''too large'') then try going to the software install tool and installing as many font packages as you can find. Some default installations will not include the required font packages.<br />
<br />
* Windows:<br />
** Vista:<br />
<pre><br />
<br />
> I get the following error:<br />
> <br />
> <br />
> <br />
> Can't read "::Slicer3_REAL": no such variable while executing.......<br />
> <br />
<br />
I seem to have found an alternate fix. Originally I<br />
had 3.2 installed, uninstalled it then installed 3.4 which resulted in<br />
error below. <br />
<br />
I uninstalled all Slicers, then installed 3.2 then left 3.2 on system<br />
and installed 3.4. I ran 3.4 & it worked fine, I then un-installed 3.2<br />
and ran 3.4 again still working OK.<br />
<br />
Hope this helps other users.<br />
</pre><br />
* Mac:<br />
** On platforms other than Mac, you can edit an entry in a multi-entry list box (for example, a list of fiducials) by double-clicking on the entry. In order to edit the field on the Mac, you need to click the field and then hit Enter. <br />
** X11: If slicer fails to start, try quitting the X11 application so it will reset.<br />
<br />
For users of Mac OS X 10.5 (Leopard) we suggest replacing the standard X11 application with the latest XQuartz version available here: <br />
http://xquartz.macosforge.org/trac/wiki<br />
<br />
== Known Issues: Modules ==<br />
<br />
As a research platform, Slicer includes several modules that are not yet fully implemented, but which the developers still felt were far enough along in functionality to provide utility for the community. As such, you may find that some operations do not behave as expected, particularly where they interact with other slicer functions. Please let us know about these issues by filing appropriate bug reports.<br />
<br />
* Replaced Linear Registration Module with Rigid Registration (the functionality remains the same)<br />
* Replaced DICOM to NRRD with DICOM DWI to NRRD<br />
* Simple Region Growing has been changed to Statistical Region Growing<br />
* DICOM DWI Loader removed, use DWI to NRRD Loader instead<br />
* Renamed RealignVolume to ACPC Transform, removing the application of the transform, use the Resample Scalar/Vector/DWI Volume module to apply the calculated transform<br />
<br />
== Building ==<br />
<br />
You don't have to build Slicer yourself to use it. If you want a precompiled version, go [[Slicer3:Downloads|here.]]<br />
<br />
To build slicer from source, see [[Slicer3:Build_Instructions|Slicer3:Build_Instructions]]<br />
<br />
* Windows<br />
** distributed versions are built with Microsoft Visual Studio .NET in release mode (note that there may be some problems compiling with .NET 2003)<br />
<br />
* Linux<br />
** We are building using g++ version 3.4.3 on RedHat Enterprise Linux 4.<br />
<br />
* Mac OSX<br />
** We are building using gcc version 4.0.1<br />
<br />
<br />
== Reporting Bugs ==<br />
Please go to the [http://www.na-mic.org/Bug/ Mantis Bug Tracker] and report bugs for Slicer version 3.<br />
<br />
== Where to go for Help ==<br />
<br />
Compilation/development questions can be sent to the [mailto:slicer-devel@bwh.harvard.edu Slicer Developers Mailing List]. Questions about running Slicer can be sent to the [mailto:slicer-users@bwh.harvard.edu Slicer Users Mailing List].<br />
<br />
Subscription management tools and archives are available at:<br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel <br />
<br />
http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users<br />
<br />
==Acknowledgements==<br />
[http://www.slicer.org/wiki/Announcments-3.2-Team The Slicer Development Team]<br />
<br />
This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from http://nihroadmap.nih.gov/bioinformatics. This work was also supported by NIH grant P41 RR13218 [http://nac.spl.harvard.edu NAC] and the [http://www.nbirn.net Biomedical Informatics Research Network].</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Template:Documentation/versioncheck&diff=63925Template:Documentation/versioncheck2022-01-19T21:11:58Z<p>Sam.horvath: </p>
<hr />
<div><includeonly><br />
{{documentation/banner|text=[https://slicer.readthedocs.io/en/latest/user_guide/getting_started.html For the latest Slicer documentation, visit the read-the-docs.]}}<br />
<br />
</includeonly><noinclude><br />
<br />
== Usage ==<br />
<br />
<pre>&lt;noinclude&gt;{{documentation/versioncheck}}&lt;/noinclude&gt;</pre><br />
<br />
{{note}}Since this template is not specific to a given version.<br />
<br />
[[Category:Templates|{{PAGENAME}}]]<br />
<br />
</noinclude></div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Template:Documentation/versioncheck&diff=63924Template:Documentation/versioncheck2022-01-19T21:07:26Z<p>Sam.horvath: </p>
<hr />
<div><includeonly><br />
{{documentation/banner|text=For the latest Slicer developers documentation, visit the readthedocs}}<br />
<br />
</includeonly><noinclude><br />
<br />
== Usage ==<br />
<br />
<pre>&lt;noinclude&gt;{{documentation/versioncheck}}&lt;/noinclude&gt;</pre><br />
<br />
{{note}}Since this template is not specific to a given version.<br />
<br />
[[Category:Templates|{{PAGENAME}}]]<br />
<br />
</noinclude></div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Template:Documentation/versioncheck&diff=63923Template:Documentation/versioncheck2022-01-19T21:07:07Z<p>Sam.horvath: Updating the banner</p>
<hr />
<div><includeonly><br />
{{documentation/banner|text=For the latest Slicer developers documentation, visit the readthedocs | }}<br />
<br />
</includeonly><noinclude><br />
<br />
== Usage ==<br />
<br />
<pre>&lt;noinclude&gt;{{documentation/versioncheck}}&lt;/noinclude&gt;</pre><br />
<br />
{{note}}Since this template is not specific to a given version.<br />
<br />
[[Category:Templates|{{PAGENAME}}]]<br />
<br />
</noinclude></div>Sam.horvathhttps://www.slicer.org/w/index.php?title=User:Sreekanth.arikatla&diff=63480User:Sreekanth.arikatla2020-12-03T17:58:25Z<p>Sam.horvath: Creating user page for new user.</p>
<hr />
<div>Sreekanth Arikatla is a Senior R&D Engineer on Kitware’s medical computing team in Carrboro, North Carolina. His primary areas of interest include numerical methods aimed at physics-based real-time simulations, computational mechanics, virtual reality, and computer graphics. He currently leads the real-time simulation efforts at Kitware. For example, he is the architect and lead developer of Interactive Medical Simulation Toolkit.<br />
While at Kitware, Sreekanth has worked on various National Institutes of Health (NIH) funded medical simulation projects that involve virtual fundamentals of laparoscopic surgery, orthognathic surgery, and virtual kidney biopsy. He also spends time exploring new ideas for grant writing and fostering collaboration with research groups from academia and industry.<br />
<br />
Prior to joining Kitware in May 2015, Sreekanth was a postdoc at the Center for Modeling, Simulation and Imaging in Medicine (CeMSIM) at Rensselaer Polytechnic Institute (RPI). He received his M.S. and Ph.D. in mechanical engineering from RPI in 2009 and 2014, respectively. During his Master’s work, he developed and validated a virtual skill trainer for peg transfer. For his doctoral dissertation, he developed multigrid algorithms aimed at enhancing the update rates of physics-based deformation simulations in interactive virtual environments. He also worked on cost-effective predictor-corrector-based approaches to simulate frictional effects with arbitrary (frictional) models. Potential applications include game engines and surgical simulators.</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=User_talk:Sreekanth.arikatla&diff=63481User talk:Sreekanth.arikatla2020-12-03T17:58:25Z<p>Sam.horvath: Welcome!</p>
<hr />
<div>'''Welcome to ''Slicer Wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].<br />
Again, welcome and have fun! [[User:Sam.horvath|Sam.horvath]] ([[User talk:Sam.horvath|talk]]) 17:58, 3 December 2020 (UTC)</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63301Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-18T21:02:43Z<p>Sam.horvath: /* Windows */ Fix Windows version</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. For examples of the installation procedure, see this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine. For more details, read this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide to download and install.<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63300Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-18T20:53:07Z<p>Sam.horvath: Reverted edits by Sam.horvath (talk) to last revision by Hherhold</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*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.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64)<br />
**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)<br />
**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<br />
*Qt 5.10<br />
*CMake >= 3.13.4<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*[https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2017 build tools (tested, works well)<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) toolset<br />
**Visual Studio 2017 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141''<br />
**Most recent Qt versions can be used (tested with Qt-5.12.7)<br />
*[https://visualstudio.microsoft.com/vs/community/ Visual Studio 2017 or 2019 (Community or any other edition)] with VS2015 build tools (tested, works well)<br />
**When configuring Visual Studio installer, enable installation of component ''VC++ 2015.3 v14.00 (v140) toolset for desktop''<br />
**Visual Studio 2015 toolset must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v140''<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Configure&diff=63271Documentation/Nightly/Developers/Build Instructions/Configure2020-06-01T14:29:53Z<p>Sam.horvath: /* Unix-like */ Update unix-like build instructions</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<br />
==CONFIGURE and generate Slicer solution files==<br />
There are many ways of customizing Slicer's user interface or feature set. This section describes how a custom Slicer build can be configured at build-time. See an overview of various other options in [http://www.na-mic.org/Wiki/images/b/b0/Slicelets2016.pdf this presentation].<br />
<br />
You can configure and generate Slicer solution files using either <code>ccmake</code> or <code>cmake-gui</code>. To streamline this process, you can also use the [https://github.com/KitwareMedical/SlicerCustomAppTemplate SlicerCustomAppTemplate] project maintained by Kitware.<br />
<br />
<!--<br />
<ol style="list-style-type:none; border-left:thick solid red; padding-left:1em;"><br />
<li>While it is not enforced, we strongly recommend you to '''AVOID''' the use of '''SPACES''' for both the <code>source directory</code> and the <code>build directory</code>. We mean it.<br />
</li><br />
</ol><br />
--><br />
===Customizing application build===<br />
Customized editions of Slicer can be generated without changing Slicer source code, just by modifying CMake variables:<br />
<br />
*SlicerApp_APPLICATION_NAME: Custom application name to be used, instead of default "Slicer". The name is used in installation package name, window title bar, etc.<br />
*Slicer_DISCLAIMER_AT_STARTUP: String that is displayed to the user after first startup of Slicer after installation (disclaimer, welcome message, etc).<br />
*Slicer_DEFAULT_HOME_MODULE: Module name that is activated automatically on application start.<br />
*Slicer_DEFAULT_FAVORITE_MODULES: Modules that will be added to the toolbar by default for easy access. List contains module names, separated by space character.<br />
*Slicer_CLIMODULES_DISABLED: Built-in CLI modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_QTLOADABLEMODULES_DISABLED: Built-in Qt loadable modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_QTSCRIPTEDMODULES_DISABLED: Built-in scripted loadable modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_USE_PYTHONQT_WITH_OPENSSL: enable/disable building the application with SSL support (ON/OFF)<br />
*Slicer_USE_SimpleITK: enable/disable SimpleITK support (ON/OFF)<br />
*Slicer_BUILD_SimpleFilters: enable/disable building SimpleFilters. Requires SimpleITK. (ON/OFF)<br />
*Slicer_BUILD_EMSegment: enable/disable building EM segmenter (ON/OFF)<br />
*Slicer_USE_PYTHONQT_WITH_TCL: TCL support (ON/OFF)<br />
*Slicer_EXTENSION_SOURCE_DIRS: Defines additional extensions that will be included in the application package as built-in modules. Full paths of extension source directories has to be specified, separated by semicolons.<br />
<br />
===Per-platform instructions===<br />
====Windows====<br />
<br />
'''Recommended''': run ''CMake (cmake-gui)'' from the Windows Start menu<br />
<br />
*Set the build directory. Use a very short path, for example: <code>C:\D\S4</code> for source code and for <code>C:\D\S4D</code> build directory are known to work.<br />
**Because Windows [http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath doesn't support file path longer than 260 characters] and has a [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/016113.html maximum command line length], it is strongly recommended to choose a build directory that is no longer than 10 characters. If a longer path is used then build may or may not succeed.<br />
**You cannot use the same build tree for both release or debug mode builds. If both build types are needed, then the same source directory can be used, but a separate build directory should be created and configured for each build type.<br />
*Select your compiler: Visual Studio 16 2019 Win64<br />
*<b>Do not configure yet.</b><br />
*Add <code>Qt5_DIR</code> variable pointing to Qt5 folder such as <code>C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5</code>: click ''Add entry'' button, set ''Name'' to ''Qt5_DIR'', ''Type'' to ''PATH'', and ''Value'' to the Qt5 folder.<br />
*Configure<br />
*Click generate then close cmake-gui.<br />
*If building in release mode:<br />
**Open the top-level Slicer.sln file in the build directory in Visual Studio<br />
**Set active configuration to Release. Visual Studio will select Debug build configuration by default when you first open the solution in the Visual Studio GUI. If you build Slicer in release mode and accidentally forget to switch the build configuration to Release then the build will fail. Note: you can avoid this manual configuration mode selection by setting <code>CMAKE_CONFIGURATION_TYPES</code> to <code>Release</code> in cmake-gui.<br />
*If building in debug mode:<br />
**Start Visual Studio using the Slicer launcher as described in [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug_Instructions|Step-by-step debug instuctions]]<br />
*Build the ALL_BUILD project<br />
<br />
'''Alternative option''': Configure and build using command-line or batch file<br />
<br />
Instead of using ''CMake (cmake-gui)'', it is also possible to configure by creating a .bat file that contains command-line instructions and run this .bat file each time a Slicer needs to be re-built. The examples below assume Slicer source code is in <code>C:\D\S4</code> folder and Qt-5.10 is installed in default location.<br />
<br />
Visual Studio 2015 in Release mode:<br />
<pre><br />
mkdir C:\D\S4R<br />
cd /d C:\D\S4R<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -DQt5_DIR:PATH=C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Release<br />
</pre><br />
<br />
Visual Studio 2015 in Debug mode:<br />
<pre><br />
mkdir C:\D\S4D<br />
cd /d C:\D\S4D<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -DQt5_DIR:PATH=C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Debug<br />
</pre><br />
<br />
Visual Studio 2019 with VS2015 toolset in Release mode:<br />
<pre><br />
mkdir C:\D\S4R<br />
cd /d C:\D\S4R<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -T "v140" -DQt5_DIR:PATH=C:\Qt\5.10.0\msvc2015_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Release<br />
</pre><br />
<br />
====Unix-like====<br />
<br />
*'''Recommended''':<br />
**Configure using the following commands. By default '''CMAKE_BUILD_TYPE''' is set to '''Debug'''.<br />
<pre><br />
mkdir Slicer-SuperBuild-Debug<br />
cd Slicer-SuperBuild-Debug<br />
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DQt5_DIR:PATH=/path/to/Qt5.15.0/5.15.0/gcc_64/lib/cmake/Qt5 ../Slicer<br />
</pre><br />
where you replace ''/path/to/QtSDK'' with the real path on your machine where QtSDK is located<br />
<br />
If '''using Qt from the system''', do not forget to add the following CMake variable to your configuration command line:<br />
<pre>-DSlicer_USE_SYSTEM_QT:BOOL=1<br />
</pre><br />
<br />
*'''Remarks''':<br />
<br />
#Instead of <code>cmake</code>, you can use <code>ccmake</code> or <code>cmake-gui</code> to visually inspect and edit configure options.<br />
#Using top-level directory name like <code>Slicer-SuperBuild-Release</code> or <code>Slicer-SuperBuild-Debug</code> is recommended.<br />
#[[Documentation/{{documentation/version}}/Developers/Tutorials/Debug_Instructions|Step-by-step debug instuctions]]<br />
<br />
*On Mac OS X 10.9 (Mavericks) / 10.10 (Yosemite) / 10.11 (El Capitan), also set the following variables (see [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/thread.html#16440 discussion]):<br />
<br />
{| border="0" cellpadding="4" cellspacing="4"<br />
|- <br />
| bgcolor="#abcdef" height="8" |'''Variable'''<br />
| bgcolor="#abcdef" height="8" |'''Description'''<br />
|-<br />
|Slicer_USE_PYTHONQT_WITH_TCL||OFF<br />
|-<br />
|CMAKE_OSX_DEPLOYMENT_TARGET||10.9 or 10.10 or 10.11<br />
|-<br />
|}<br />
<br />
===General information===<br />
<br />
Two projects are generated by either <code>cmake</code>, <code>ccmake</code> or <code>cmake-gui</code>. <br />
<br />
One of them is in the top-level bin directory <code>Slicer-SuperBuild</code> and the other one is in the subdirectory <code>Slicer-build</code>:<br />
<br />
<pre>Slicer-SuperBuild/Slicer-build</pre><br />
<br />
#The first project in <code>Slicer-SuperBuild</code> manages all the external dependencies of Slicer (VTK, ITK, Python, ...). To build Slicer for the first time, run make (or build the solution file in Visual Studio) in <code>Slicer-SuperBuild</code>, which will update and build the external libraries and if successful will then build the subproject Slicer-build.<br><br />
#The second project in <code>Slicer-SuperBuild/Slicer-build</code> is the "traditional" build directory of Slicer. After local changes in Slicer (or after an svn update on the source directory of Slicer), only running make (or building the solution file in Visual Studio) in <code>Slicer-SuperBuild/Slicer-build</code> is necessary (the external libraries are considered built and up to date). <br><br />
#'''Warning''': An significant amount of disk space is required to compile Slicer in Debug (>10GB on Windows)<br />
<br />
===Workaround for if the firewall is blocking git protocol===<br />
<br />
*Some firewalls will block the git protocol. A possible workaround is to configure Slicer by disabling the option <code>Slicer_USE_GIT_PROTOCOL</code>. Then the http protocol will be used instead. Consider also reading https://github.com/commontk/CTK/issues/33</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63270Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:28:42Z<p>Sam.horvath: /* Linux */ Update Linux prereqs</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.15: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.15/cmake-3.15.1-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.15.1-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.15.1-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. For examples of the installation procedure, see this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine. For more details, read this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide to download and install.<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Configure&diff=63269Documentation/Nightly/Developers/Build Instructions/Configure2020-06-01T14:26:21Z<p>Sam.horvath: /* Windows */ Update Qt/Compiler in build instructions</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<br />
==CONFIGURE and generate Slicer solution files==<br />
There are many ways of customizing Slicer's user interface or feature set. This section describes how a custom Slicer build can be configured at build-time. See an overview of various other options in [http://www.na-mic.org/Wiki/images/b/b0/Slicelets2016.pdf this presentation].<br />
<br />
You can configure and generate Slicer solution files using either <code>ccmake</code> or <code>cmake-gui</code>. To streamline this process, you can also use the [https://github.com/KitwareMedical/SlicerCustomAppTemplate SlicerCustomAppTemplate] project maintained by Kitware.<br />
<br />
<!--<br />
<ol style="list-style-type:none; border-left:thick solid red; padding-left:1em;"><br />
<li>While it is not enforced, we strongly recommend you to '''AVOID''' the use of '''SPACES''' for both the <code>source directory</code> and the <code>build directory</code>. We mean it.<br />
</li><br />
</ol><br />
--><br />
===Customizing application build===<br />
Customized editions of Slicer can be generated without changing Slicer source code, just by modifying CMake variables:<br />
<br />
*SlicerApp_APPLICATION_NAME: Custom application name to be used, instead of default "Slicer". The name is used in installation package name, window title bar, etc.<br />
*Slicer_DISCLAIMER_AT_STARTUP: String that is displayed to the user after first startup of Slicer after installation (disclaimer, welcome message, etc).<br />
*Slicer_DEFAULT_HOME_MODULE: Module name that is activated automatically on application start.<br />
*Slicer_DEFAULT_FAVORITE_MODULES: Modules that will be added to the toolbar by default for easy access. List contains module names, separated by space character.<br />
*Slicer_CLIMODULES_DISABLED: Built-in CLI modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_QTLOADABLEMODULES_DISABLED: Built-in Qt loadable modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_QTSCRIPTEDMODULES_DISABLED: Built-in scripted loadable modules that will be removed from the application. List contains module names, separated by semicolon character.<br />
*Slicer_USE_PYTHONQT_WITH_OPENSSL: enable/disable building the application with SSL support (ON/OFF)<br />
*Slicer_USE_SimpleITK: enable/disable SimpleITK support (ON/OFF)<br />
*Slicer_BUILD_SimpleFilters: enable/disable building SimpleFilters. Requires SimpleITK. (ON/OFF)<br />
*Slicer_BUILD_EMSegment: enable/disable building EM segmenter (ON/OFF)<br />
*Slicer_USE_PYTHONQT_WITH_TCL: TCL support (ON/OFF)<br />
*Slicer_EXTENSION_SOURCE_DIRS: Defines additional extensions that will be included in the application package as built-in modules. Full paths of extension source directories has to be specified, separated by semicolons.<br />
<br />
===Per-platform instructions===<br />
====Windows====<br />
<br />
'''Recommended''': run ''CMake (cmake-gui)'' from the Windows Start menu<br />
<br />
*Set the build directory. Use a very short path, for example: <code>C:\D\S4</code> for source code and for <code>C:\D\S4D</code> build directory are known to work.<br />
**Because Windows [http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath doesn't support file path longer than 260 characters] and has a [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/016113.html maximum command line length], it is strongly recommended to choose a build directory that is no longer than 10 characters. If a longer path is used then build may or may not succeed.<br />
**You cannot use the same build tree for both release or debug mode builds. If both build types are needed, then the same source directory can be used, but a separate build directory should be created and configured for each build type.<br />
*Select your compiler: Visual Studio 16 2019 Win64<br />
*<b>Do not configure yet.</b><br />
*Add <code>Qt5_DIR</code> variable pointing to Qt5 folder such as <code>C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5</code>: click ''Add entry'' button, set ''Name'' to ''Qt5_DIR'', ''Type'' to ''PATH'', and ''Value'' to the Qt5 folder.<br />
*Configure<br />
*Click generate then close cmake-gui.<br />
*If building in release mode:<br />
**Open the top-level Slicer.sln file in the build directory in Visual Studio<br />
**Set active configuration to Release. Visual Studio will select Debug build configuration by default when you first open the solution in the Visual Studio GUI. If you build Slicer in release mode and accidentally forget to switch the build configuration to Release then the build will fail. Note: you can avoid this manual configuration mode selection by setting <code>CMAKE_CONFIGURATION_TYPES</code> to <code>Release</code> in cmake-gui.<br />
*If building in debug mode:<br />
**Start Visual Studio using the Slicer launcher as described in [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug_Instructions|Step-by-step debug instuctions]]<br />
*Build the ALL_BUILD project<br />
<br />
'''Alternative option''': Configure and build using command-line or batch file<br />
<br />
Instead of using ''CMake (cmake-gui)'', it is also possible to configure by creating a .bat file that contains command-line instructions and run this .bat file each time a Slicer needs to be re-built. The examples below assume Slicer source code is in <code>C:\D\S4</code> folder and Qt-5.10 is installed in default location.<br />
<br />
Visual Studio 2015 in Release mode:<br />
<pre><br />
mkdir C:\D\S4R<br />
cd /d C:\D\S4R<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -DQt5_DIR:PATH=C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Release<br />
</pre><br />
<br />
Visual Studio 2015 in Debug mode:<br />
<pre><br />
mkdir C:\D\S4D<br />
cd /d C:\D\S4D<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -DQt5_DIR:PATH=C:\Qt\5.15.0\msvc2019_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Debug<br />
</pre><br />
<br />
Visual Studio 2019 with VS2015 toolset in Release mode:<br />
<pre><br />
mkdir C:\D\S4R<br />
cd /d C:\D\S4R<br />
"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 16 2019 Win64" -T "v140" -DQt5_DIR:PATH=C:\Qt\5.10.0\msvc2015_64\lib\cmake\Qt5 C:\D\S4<br />
"C:\Program Files\CMake\bin\cmake.exe" --build . --config Release<br />
</pre><br />
<br />
====Unix-like====<br />
<br />
*'''Recommended''':<br />
**Configure using the following commands. By default '''CMAKE_BUILD_TYPE''' is set to '''Debug'''.<br />
<pre><br />
mkdir Slicer-SuperBuild-Debug<br />
cd Slicer-SuperBuild-Debug<br />
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DQt5_DIR:PATH=/path/to/Qt5.11.0/5.11.0/gcc_64/lib/cmake/Qt5 ../Slicer<br />
</pre><br />
where you replace ''/path/to/QtSDK'' with the real path on your machine where QtSDK is located<br />
<br />
If '''using Qt from the system''', do not forget to add the following CMake variable to your configuration command line:<br />
<pre>-DSlicer_USE_SYSTEM_QT:BOOL=1<br />
</pre><br />
<br />
*'''Remarks''':<br />
<br />
#Instead of <code>cmake</code>, you can use <code>ccmake</code> or <code>cmake-gui</code> to visually inspect and edit configure options.<br />
#Using top-level directory name like <code>Slicer-SuperBuild-Release</code> or <code>Slicer-SuperBuild-Debug</code> is recommended.<br />
#[[Documentation/{{documentation/version}}/Developers/Tutorials/Debug_Instructions|Step-by-step debug instuctions]]<br />
<br />
*On Mac OS X 10.9 (Mavericks) / 10.10 (Yosemite) / 10.11 (El Capitan), also set the following variables (see [http://massmail.spl.harvard.edu/public-archives/slicer-devel/2014/thread.html#16440 discussion]):<br />
<br />
{| border="0" cellpadding="4" cellspacing="4"<br />
|- <br />
| bgcolor="#abcdef" height="8" |'''Variable'''<br />
| bgcolor="#abcdef" height="8" |'''Description'''<br />
|-<br />
|Slicer_USE_PYTHONQT_WITH_TCL||OFF<br />
|-<br />
|CMAKE_OSX_DEPLOYMENT_TARGET||10.9 or 10.10 or 10.11<br />
|-<br />
|}<br />
<br />
===General information===<br />
<br />
Two projects are generated by either <code>cmake</code>, <code>ccmake</code> or <code>cmake-gui</code>. <br />
<br />
One of them is in the top-level bin directory <code>Slicer-SuperBuild</code> and the other one is in the subdirectory <code>Slicer-build</code>:<br />
<br />
<pre>Slicer-SuperBuild/Slicer-build</pre><br />
<br />
#The first project in <code>Slicer-SuperBuild</code> manages all the external dependencies of Slicer (VTK, ITK, Python, ...). To build Slicer for the first time, run make (or build the solution file in Visual Studio) in <code>Slicer-SuperBuild</code>, which will update and build the external libraries and if successful will then build the subproject Slicer-build.<br><br />
#The second project in <code>Slicer-SuperBuild/Slicer-build</code> is the "traditional" build directory of Slicer. After local changes in Slicer (or after an svn update on the source directory of Slicer), only running make (or building the solution file in Visual Studio) in <code>Slicer-SuperBuild/Slicer-build</code> is necessary (the external libraries are considered built and up to date). <br><br />
#'''Warning''': An significant amount of disk space is required to compile Slicer in Debug (>10GB on Windows)<br />
<br />
===Workaround for if the firewall is blocking git protocol===<br />
<br />
*Some firewalls will block the git protocol. A possible workaround is to configure Slicer by disabling the option <code>Slicer_USE_GIT_PROTOCOL</code>. Then the http protocol will be used instead. Consider also reading https://github.com/commontk/CTK/issues/33</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63268Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:23:03Z<p>Sam.horvath: /* Common Prerequisites */</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. For examples of the installation procedure, see this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine. For more details, read this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide to download and install.<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63267Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:22:31Z<p>Sam.horvath: /* Common Prerequisites */ Add example Qt 5 guide</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. For and examples of the installation procedure, read this [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine. For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide to download and install.<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63266Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:21:29Z<p>Sam.horvath: /* Common Prerequisites */ Move Qt 5.10 guide</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. <br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine. For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide to download and install.<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63265Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:19:40Z<p>Sam.horvath: /* Tested and recommended build environment */ More fixes to recommended build environment</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.15.1<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components. For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
*Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**For older toolsets, must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.15<br />
*CMake >= 3.15.1<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
**Requires Qt 5.10.x to build due to QtWebEngine<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63264Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:17:10Z<p>Sam.horvath: /* Common Prerequisites */ Update Qt info</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*Qt5: Download download Qt universal installer from [https://www.qt.io/download-open-source here] and install Qt 5.15 along with <tt>qtscript</tt> and <tt>qtwebengine</tt> components For more details, read [[Documentation/Nightly/Developers/Build Instructions/Prerequisites/Qt5|step-by-step]] guide.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
* Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**Older toolsets must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.12.8 or Qt 5.15<br />
*CMake >= 3.13.4<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Build_Instructions/Prerequisites&diff=63263Documentation/Nightly/Developers/Build Instructions/Prerequisites2020-06-01T14:15:21Z<p>Sam.horvath: /* Tested and recommended build environment */ Update Windows build environments</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__TOC__<br />
<br />
==PREREQUISITES==<br />
<br />
<!-- For all systems be sure git-lfs is properly installed for use with VTKv9 (required for VTKm checkout) --><br />
<br />
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<br />
<br />
<br><br />
<!--<br />
Please check that the following tools are installed on your machine.<br />
<br />
We try to keep current with the most recent releases of these prerequisites, but sometimes it's critical to use the exact versions specified here. If you run into issues please do whatever you can to find a combination that works or contact the developer mailing list for suggestions.<br />
<br />
<br><br />
{{mbox<br />
| type = protection<br />
| text = Qt libraries are '''required'''. Consider reading [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt|Qt requirements]].<br />
| image= [[{{tool|logo|qt}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = CMake is '''required'''.<br />
| image= [[{{tool|logo|cmake}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Git is '''required'''.<br />
| image= [[{{tool|logo|git}}|x40px]]<br />
}}<br />
<br><br />
<br />
{{mbox<br />
| type = protection<br />
| text = SVN is '''required'''.<br />
| image= [[{{tool|logo|svn}}|x40px]]<br />
}}<br />
<br />
<br><br />
--><br />
The prerequisites listed below are required to be able to configure/build/package/test Slicer.<br />
<br />
===Linux===<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
*Qt 5.11: <b>tested and recommended</b><br />
**To build Slicer: install Qt using the distribution package manager.<br />
**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.<br />
*GCC suite<br />
<br />
====Debian====<br />
<br />
*Debian squeeze/wheezy/testing(jessie) users, start by pasting the following lines in a terminal<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
sudo apt-get install build-essential libx11-dev libxt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev libncurses5-dev<br />
sudo apt-get install cmake<br />
sudo apt-get install qt-sdk<br />
<br />
<hr /><br />
<br />
<br />
====Ubuntu====<br />
<br />
=====Common Prerequisites=====<br />
<br />
<br />
sudo apt-get install subversion git-core git-svn<br />
<br />
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<br />
<br />
<br />
sudo apt-get install libosmesa6-dev # Only for Ubuntu < 14.04.3<br />
<br />
{{remark|red|On Ubuntu 14.04.3 LTS, attempting to install <tt>libosmesa6-dev</tt> results in an error.<pre><br />
The following packages have unmet dependencies:<br />
libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is not going to be installed<br />
E: Unable to correct problems, you have held broken packages.<br />
</pre><br />
For more details, see [https://bugs.launchpad.net/ubuntu/+source/mesa-lts-utopic/+bug/1424059 Bug 1424059].}}<br />
<br />
{{remark|green|Slicer compiles successfully without that package, but <tt>VTK_OPENGL_HAS_OSMESA</tt> is disabled.}}<br />
<br />
*For Qt5.5 on Ubuntu 16.04<br />
<br />
sudo apt-get install libgstreamer-plugins-base0.10-dev<br />
<br />
=====CMake=====<br />
<br />
<ol><br />
<li>Open a terminal and copy the command reported below</li><br />
<li>Download stable version of CMake and extract the archive:<br />
<pre><br />
sudo apt-get install curl<br />
mkdir ~/Support && cd ~/Support<br />
curl -O https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.tar.gz<br />
tar -xzvf cmake-3.13.4-Linux-x86_64.tar.gz<br />
</pre><br />
</li><br />
<li>Create symbolic links into <code>~/bin</code><br />
<pre><br />
mkdir -p ~/bin<br />
for name in cmake ctest cpack ccmake cmake-gui; do<br />
ln -s ~/Support/cmake-3.13.4-Linux-x86_64/bin/$name ~/bin/$name<br />
done<br />
</pre><br />
</li><br />
</ol><br />
<br />
{{remark|red|You <b>MUST</b> download the standard CMake binary because the distributed version of CMake cannot be used to build slicer.<br><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.}}<br />
<br />
====CentOS====<br />
<br />
See instructions reported in [https://github.com/Slicer/SlicerBuildEnvironment/blob/master/Docker/qt5-centos7/Dockerfile qt5-centos7/Dockerfile]<br />
<br />
<!--<br />
*CentOS user type:<br />
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<br />
--><br />
<br />
<!--<br />
Todo: This will have to be added in FAQ: Troubleshoot section<br />
''glx-utils'' provides ''glxgears'' that can be used to test rendering<br />
--><br />
===MacOSX===<br />
<br />
*XCode command line tools must be installed:<br />
<br />
xcode-select --install<br />
<br />
*El Capitan is what most developers use.<br />
*CMake 3.12.2 is recommended. Check the minimum required CMake version [https://github.com/Slicer/Slicer/blob/master/CMakeLists.txt#L1 here]<br />
*Large File Storage for git is required. (<tt>brew install git-lvs)</tt><br />
*Qt 5: <b>tested and recommended</b>.<br />
**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.<br />
**For packaging and redistributing Slicer: build Qt using [https://github.com/jcfr/qt-easy-build#readme qt-easy-build]<br />
*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.<br />
<br />
====MacOSX 10.9.4 (Mavericks)====<br />
<br />
''' (1) Make sure to install this update: http://support.apple.com/kb/DL1754'''<br />
<br />
''' (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)<br />
<br />
*Mac Os X >= 10.5 (Leopard)<br />
*[{{tool|download|cmake}} CMake] >= 2.8.9<br />
**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<br />
<!-- 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]).<br />
--><br />
<br />
$ curl -O http://www.cmake.org/files/v2.8/cmake-2.8.11-Darwin64-universal.tar.gz<br />
$ tar -xzvf cmake-2.8.11-Darwin64-universal.tar.gz --strip-components=1<br />
<br />
$ CMake\ 2.8-11.app/Contents/bin/cmake --version<br />
cmake version 2.8.11<br />
<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
*[{{tool|download|svn}} Svn] >= 1.7<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 2.8.9<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.6.5<br />
--><br />
*XCode (for the SDK libs)<br />
**After installing XCode, install XCode command line developer tools:<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
*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).<br />
*Qt 4 >= 4.8.5. We recommend you install the following two packages:<br />
**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]<br />
**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]<br />
**For more details [[Documentation/{{documentation/version}}/Developers/Build_Instructions/Prerequisites/Qt#Mac|here]]<br />
<!--<br />
** 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.<br />
** Xcode with gcc should ork with either version of ITK.<br />
** 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).<br />
--><br />
<br />
====Mac OSX 10.11 (El Capitan)====<br />
<br />
XCode up to version 7 is known to work for Slicer compilation. XCode 8 breaks things on several levels for now. <br />
Remember to install XCode command line tools (see above) if a reinstall for XCode is needed. <br />
<br />
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).<br />
<br />
*Install the '''OS''', '''Xcode''', and '''XQuartz''' (see MacOSX 10.10 above)<br />
*Install '''Qt4''' by running the following two commands:<br />
<pre><br />
brew install qt4<br />
xcode-select --install<br />
</pre><br />
<br />
*TCL does not build correctly on El Capitan as of 2015-12-03, so when building Slicer turn `Slicer_USE_PYTHONQT_WITH_TCL` off.<br />
<br />
====Mac OSX 10.12 (Sierra)====<br />
<br />
Similar to 10.11 (El Capitan), there are new issues with Qt4 (caused by Phonon).<br />
The GitHub user Cartr [https://github.com/Homebrew/homebrew-core/pull/5216 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 [https://github.com/cartr/homebrew-qt4 turned his formula into a tap] that can be installed (see below).<br />
<br />
Follow instructions for 10.11 ''(Installing Xcode, XQuartz, run without TCL)'' but install '''Qt4''' like shown below instead:<br />
<pre><br />
brew install cartr/qt4/qt<br />
xcode-select --install<br />
</pre><br />
<br />
Confirmed with Xcode: <br />
<br />
*Version 8.1 (8B62) and cmake version 3.4.20151021-g8fbc8e<br />
*Version 8.3.3 and cmake 3.5.2<br />
<!--<br />
DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DSlicer_USE_PYTHONQT_WITH_TCL:BOOL=OFF ../Slicer<br />
make -j `sysctl -n hw.ncpu`<br />
--><br />
<br />
<br />
====Mac OSX 10.14 (Mojave)====<br />
<br />
<small>Associated discussion topic is https://discourse.slicer.org/t/building-on-mac-10-14-mojave/4554/21</small><br />
<br />
*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]<br />
<br />
*Install XCode:<br />
<br />
<pre><br />
xcode-select --install<br />
</pre><br />
<br />
<br />
*Build qt from homebrew<br />
<pre><br />
brew install qt<br />
ccmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DQt5_DIR=/usr/local//Cellar/qt/5.13.2/lib/cmake/Qt5 ~/slicer/latest/Slicer<br />
<br />
</pre><br />
<br />
*Explicitly set the SDK when running make<br />
<pre><br />
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk make -j20<br />
</pre><br />
<br />
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].<br />
<br />
===Windows===<br />
<br />
====Common Prerequisites====<br />
<br />
*[{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[{{tool|download|git}} Git] >= 1.7.10<br />
<!--<br />
*[[{{tool|logo|cmake}}|x16px]] [{{tool|download|cmake}} CMake] >= 3.13.4<br />
*[[{{tool|logo|git}}|x16px]] [{{tool|download|git}} Git] >= 1.7.10<br />
* [https://code.google.com/p/msysgit/downloads/list?can=3 ''Git-X.X.X-preview2013XXXX.exe''] recommended.<br />
--><br />
<!--<br />
** Use of [http://code.google.com/p/tortoisegit/ TortoiseGit] is optional.<br />
--><br />
**{{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.<br />
<br />
*Subversion (SVN) client: any SVN client that has command line tools<br />
**[http://www.sliksvn.com/en/download SlikSvn] <!-- or [http://www.cygwin.com cygwin's svn client]-->, or<br />
**[https://tortoisesvn.net/downloads.html TortoiseSVN] - make sure you install ''Command line client tools'' component (disabled by default)<br />
<br />
*NSIS (optional): Needed if packaging Slicer - Click [http://nsis.sourceforge.net/Download here] to download. Make sure you install the language packs.<br />
<br />
*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.<br />
<br />
====Tested and recommended build environment====<br />
<br />
*VS2015 (Visual Studio 14 2015 Win64) Update 3<br />
*VS2017 (Visual Studio 15 2017 Win64)<br />
*VS2019 (Visual Studio 16 2019 Win64)<br />
* Older VS toolsets can be used with newer IDES<br />
**When configuring Visual Studio installer, enable installation of Visual Studio 2017 (v141) or Visual Studio 2015 (v140) toolsets<br />
**Older toolsets must be set in CMake: ''Optional toolset to use (argument to -T)'' need to be set to ''v141'' or ''v140''<br />
**Make sure you enable installation of component ''Programming languages / Visual C++ / Common Tools for Visual C++'' (in some distributions, this option is not enabled by default)<br />
*Qt 5.12.8 or Qt 5.15<br />
*CMake >= 3.13.4<br />
<br />
====Experimental/deprecated build environments====<br />
<br />
*Cygwin (untested, probably does not work)<br />
**Cygwin suite (building with cygwin gcc not supported, but the cygwin shell environment can be used to run git, svn, etc).</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/FAQ/Extensions&diff=61483Documentation/Nightly/FAQ/Extensions2019-10-01T14:31:01Z<p>Sam.horvath: Added extension troubleshooting info</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
<noinclude>__TOC__<br />
={{#titleparts: {{PAGENAME}} | | -1 }}=</noinclude><includeonly><br />
{{#ifeq: {{#titleparts: {{PAGENAME}} | 3 }} | Documentation/{{documentation/version}}/Developers | | ='''User FAQ: {{{1}}}'''=}}<br />
</includeonly><br />
== What is an extension ? ==<br />
{{:Documentation/{{documentation/version}}/Extensions/Description}}<br />
== What is the extensions catalog ? ==<br />
{{:Documentation/{{documentation/version}}/Extensions/Catalog}}<br />
<br />
== Why there are no windows 32-bit extensions available ?==<br />
<br />
* Win 32 has a very limited amount of memory available to an application. <br />
* Many registration and segmentation algorithms fail on that platform because they run out of memory, when used with state of large data.<br />
* Some of these failures are just that, some can crash slicer. Even though the "real" failure is caused by overextending the capabilities of the hardware (in a way the user's fault), it appears to the user that Slicer does not work.<br />
* If you search the archives of Slicer Users there are several such complaints until we started to discourage people to use 32 bit.<br />
<br />
Discussion: http://massmail.spl.harvard.edu/public-archives/slicer-users/2013/006703.html<br />
<br />
== Should I install the nightly version to access to last extension updates ? ==<br />
<br />
If the extension developers contributed updates for the current stable release, you don't have to install the nightly version of Slicer. You can simply update the extension. Consider reading [[#How_to_update_an_already_installed_extension.3F|How to update an already installed extension]].<br />
<br />
On the other hand, if the extension developers stopped to maintain the version of their extension built against the stable release (so that we can use the latest feature that will be in the next Slicer release), downloading the nightly is the only way to get the latest version of the extension.<br />
<br />
== How to update an already installed extension? ==<br />
<br />
Assuming updates extensions are available for your version of Slicer, extensions can either be updated manually or automatically.<br />
<br />
See [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager#Updating_installed_extensions|Updating installed extensions]]<br />
<br />
== How to manually download an extension package? ==<br />
<br />
1) Get revision associated with your install or built Slicer (Menu -> Help -> About). The revision is a number preceded by ''r'' character, for example: if the complete version string is ''4.3.1-2014-09-14 r23677'' the revision is ''23677''<br />
<br />
2) Open the extension catalog (app store). The default Slicer extension catalog is available at: http://slicer.kitware.com/midas3/slicerappstore<br />
<br />
3) Select operating system, bitness and enter revision in the empty textbox between the bitness selector and the searchbox. If no revision is entered then the ''No extensions found'' message will be displayed.<br />
<br />
4) Click ''Download'' button of the selected extension to download the extension package.<br />
<br />
== How to manually install an extension package? ==<br />
<br />
Option 1. Use extension manager as described [[#Installing_an_extension_without_network_connection|above]]<br />
<br />
Option 2. Use Slicer extension called "DeveloperToolsForExtensions"<br />
<br />
Option 3. Fully manual installation:<br />
<br />
* Extract the archive (zip or tar.gz) in a folder. You should then have a folder like:<br />
<br />
/path/to/<slicer_revision>-<os>-<bitness>-<extension_name>-<extension_scm><extension_revision>-YYYY-MM-DD<br />
<br />
containing one or more of the following folders (for more information on folder structure, click [[Documentation/{{documentation/version}}/Developers/DirectoryStructure|here]]):<br />
<br />
lib/Slicer-X.Y/cli-modules<br />
lib/Slicer-X.Y/qt-loadable-modules<br />
lib/Slicer-X.Y/qt-scripted-modules<br />
<br />
* In the Module settings (Menu -> Edit -> Settings), add all existing paths ending with:<br />
<br />
lib/Slicer-X.Y/cli-modules<br />
lib/Slicer-X.Y/qt-loadable-modules<br />
lib/Slicer-X.Y/qt-scripted-modules<br />
<br />
Note: additional module paths can be added temporarily by starting Slicer with the option <code>--additional-module-paths</code>.<br />
<br />
== How to create a custom Slicer version with selected extensions pre-installed? ==<br />
<br />
1) Download and install Slicer<br />
<br />
2) Install all necessary extensions manually (as described above) in <slicer_install_dir>/lib/Slicer-X.Y/...<br />
<br />
3) If all the files in <slicer_install_dir> are copied to any other folder/computer/USB drive/portable storage device then Slicer can be launched by running the Slicer executable in the main directory. No installation or administrative access rights are necessary. Slicer can even be launched directly from a USB drive, without copying files to the computer.<br />
<br />
== Troubleshooting missing extensions ==<br />
<br />
Occasionally, expected extensions may be missing from the extension manager<br />
<br />
=== Missing extensions for the stable release ===<br />
<br />
If an extension you are looking for is missing from the extension manager for the stable release, please post on [https://discourse.slicer.org Discourse] to ask about the current status of the extension<br />
<br />
=== Missing extensions for the nightly preview ===<br />
<br />
Due to the constantly updating nature of the preview release, extensions may be missing at times:<br />
<br />
* Early morning: Typically, the full set of overnight builds will not be available before 9 am EST<br />
* Factory system errors: Occasionally, issues with the factory system will prevent some or all extensions from building. See '''Factory extensions status''' below<br />
* Extension build errors: If the above situations are not applicable, the extension itself may have a build error, please post on [https://discourse.slicer.org Discourse] to ask about the current status of the extension <br />
<br />
=== Factory extensions status ===<br />
<br />
The current status of the Extension Manager is: '''Good'''<br />
<br />
Extensions are being built as expected. When there are persistent issues with the extensions, this space will contain a link to the last preview installer with the full extension set.</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Labs/Slicer5-roadmap&diff=61353Documentation/Labs/Slicer5-roadmap2019-08-13T14:30:20Z<p>Sam.horvath: Update proposed</p>
<hr />
<div>The major version number upgrade to 5 provides an opportunity to make changes that affect the<br />
application, the API, or the code in a way that was not possible in the past seven or so years.<br />
<br />
This page collects community suggestions related to the transition plan for Slicer 4.10 and major changes for Slicer 5.0.<br />
<br />
Related forum post: https://discourse.slicer.org/t/slicer-5-0-deprecation-discussion-wiki/2377<br />
<br />
== Overall Goals ==<br />
<br />
* Improve user experience<br />
** More logical interface<br />
** Perform most common tasks easily<br />
** Easier to discover advanced features<br />
** Improve asynchronous behavior (like loading data in a background thread)<br />
* Defining core and extensions<br />
** Core functionality is:<br />
*** DICOM and other format I/O, Subject management<br />
*** Visualization 2D/3D/4D<br />
*** Segmentation<br />
*** Transforms and Registration<br />
*** Annotations and Markups<br />
*** Programmability and Extensibility<br />
** Move some extensions to core (Sequences, DICOMPlugins...)<br />
** Move some core to extensions (SimpleITK, Editor...)<br />
* Simplify maintenance<br />
** Remove legacy code that adds more complexity than value<br />
** Deprecate support for older build options and platforms (old libs, old compilers, etc)<br />
** Simplify documentation creation and use<br />
** Streamline the build and release process<br />
** Use unmodified upstream libraries<br />
* Developer experience<br />
** Improve API / Scripting documentation organization / search engine optimization<br />
** Simplify/accelerate build process on all platforms (options to use prebuilt sdk for example)<br />
** Use standard packages (Qt, Python, VTK, ITK)<br />
<br />
<hr><br />
<br />
== Specific Change Proposals ==<br />
<br />
=== Slicer 5.0: Backward incompatible changes ===<br />
<br />
==== Build System Simplification ====<br />
<br />
* Pick the most recent reasonable CMake version and remove any complexities in the build system are only there to work around limitations of old CMake versions.<br />
<br />
* Consider any ways to streamline/simplify the configure and build process, even it if may require changing extensions.<br />
<br />
* Look for ways to minimize the effect of long directory path-related build issues. Currently on mac and windows we are pushing the limit of path length unless very short paths are used (e.g. /s5 or d:\s5). Reorganizing the build tree might give us more headroom.<br />
<br />
==== Python3 ====<br />
<br />
Switch to Python3 and use the same compiler as official Python distribution. This would allow installation of any Python package inside Slicer's Python environment.<br />
<br />
Tasks:<br />
* Update of CTK: Build system, CTK Python console and [https://github.com/commontk/CTK/blob/master/CMake/ctkWrapPythonQt.py ctkWrapPythonQt.py] - '''DONE''' {{done}}<br />
* Update [https://github.com/Slicer/Slicer/blob/master/SuperBuild/External_python.cmake External_python.cmake] - '''DONE''' {{done}}<br />
* Update of "C++ to python bridge" classes ([https://github.com/Slicer/Slicer/blob/master/Base/QTCore/qSlicerScriptedUtils_p.h qSlicerScriptedUtils_p.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedLoadableModule.h qSlicerScriptedLoadableModule.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedFileDialog.h qSlicerScriptedFileDialog.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedLoadableModuleWidget.h qSlicerScriptedLoadableModuleWidget.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTCore/qSlicerScriptedFileWriter.h qSlicerScriptedFileWriter.h], ...) - '''DONE''' {{done}}<br />
* Update of install rules and macos fixup - '''DONE''' {{done}}<br />
* Update of python scripts to be compliant with python 3 - '''DONE''' {{done}}<br />
<br />
Some of the issues discovered after integration of Python 3:<br />
* Fix iomodule.c build error with VS2017. See https://github.com/Slicer/Slicer/pull/1118#issuecomment-482436689. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28138 r28138] - '''DONE''' {{done}}<br />
* Fix crash in Debug build. See https://github.com/lassoan/Slicer/tree/python-startup-hang-in-debug-mode. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28141 r28141] - '''DONE''' {{done}}<br />
* <tt>restart()</tt> Python function does not work. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28143 r28143] - '''DONE''' {{done}}<br />
<br />
References:<br />
* discourse post: https://discourse.slicer.org/t/updating-slicer-to-work-with-python-3/4662/14<br />
* GitHub PR: https://github.com/Slicer/Slicer/pull/1118<br />
<br />
==== SceneViews ====<br />
<br />
The scene views feature does not work well for a long time now, and there is no consensus about what should be the scope it supports.<br />
<br />
Suggestion:<br />
* Do not save the state of all nodes: Support only display, view and hierarchy nodes. <br />
* Make SceneViews as stable as possible for these cases and remove support for data notes etc.<br />
* If a node is removed, update associated scene views<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, we should keep the SceneView functionality. All data should be associated with the "master" view, and scene view should be different combination of viewing parameters (layout, camera, visibility, etc ...). A mrb to consider for testing is the [http://slicer.kitware.com/midas3/slicerdatastore/view?itemId=126553&layout=layout LungSegments_scene.mrb]<br />
* Another suggestion from Sonia is that SceneViews could be read-only for certain classes of nodes. It's not clear how that would be implemented, but it could address the instability problems while enabling the use of SceneViews for training.<br />
<br />
==== Undo/Redo ====<br />
Similarly to SceneViews, it is a great feature but in time it started breaking.<br />
Need to decide if we want to keep it, and if yes fix it.<br />
<br />
Potential fix (currently being tested by Kyle Sunderland and Andras Lasso): Add an "undo enabled" flag to vtkMRMLNode, disable it by default, only enable it for nodes that undo/redo has tested to work correctly. Preliminary tests show that the feature largely works, but there are complications with undo/redo of node add/remove actions and node references.<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, would be nice to also have undo/redo for camera settings, field of view, etc ... within a given view. It is easy to inadvertently modify settings ... (e.g when trying to pan using a trackpad with shift+left click but inadvertently using only left click)<br />
<br />
==== Removal of Charts based infrastructure ====<br />
<br />
With Slicer 5.0, the idea is to remove the [[Documentation/Nightly/Developers/Charts|Charts]] infrastructure based on jqPlot, and only keep<br />
the [[Documentation/Nightly/Developers/Plots|Plots]] infrastructure based on VTK Charts.<br />
<br />
Ron's request: enable anti-aliasing (MSAA or FXAA) and use less subtle default colors (https://www.slicer.org/wiki/Slicer4:2012_GenericChartColors) to improve appearance.<br />
<br />
==== Revisit MRML Copy API ====<br />
<br />
Copy method does not perform complete deep-copy in some classes. For Sequences, we need both DeepCopy (for node modifications) and ShallowCopy (for fast replay possible).<br />
<br />
There are also too many variants of node copy methods, which makes it difficult to use them correctly.<br />
<br />
See also https://issues.slicer.org/view.php?id=2608.<br />
<br />
==== Remove remote data support from MRML ====<br />
<br />
MRML theoretically supports downloading files through http, but this feature has not seen much use. This will not likely to change in the future because there is a wide range of data access and authentication protocols, which would not be practical at MRML level.<br />
<br />
It would be better to remove remote data support from MRML to simplify data storage. We can keep useful utility classes, such as cache manager for keeping track of local temporary files (downloaded using SampleData or other modules that download significant amount of temporary data).<br />
<br />
See also https://discourse.slicer.org/t/improving-testing-data-management-for-self-test/5014/4.<br />
<br />
==== Improve layout manager ====<br />
<br />
* Support multiple displays: Currently, it is very hard to leverage multiple displays (need to stretch the Slicer window over multiple screens and align splitter manually to the screen boundary). Allow defining single-display and multi-display layouts. Single-display layouts could be selected for each display independently, while multi-monitor layouts would set views on several displays at once. Keeping a single layout manager (and enhance it with to allow creation of multiple widgets) would make it easier to maintain backward compatibility for existing modules.<br />
* View layout IDs: View layout IDs are currently integer values, which makes it difficult to ensure that modules always choose unique IDs. We should switch to using string IDs. String IDs can may be prefixed with modulename+"." as we do it for singleton tags and node attributes. We may remain somewhat backward compatible by having SetLayoutID(int) method that maps known layout integer IDs to the new string IDs. See discussion here: https://github.com/Slicer/Slicer/pull/1061#discussion_r241825827<br />
<br />
====Coordinate system in files====<br />
<br />
To be consistent with the rest of the world: Save models and markups in LPS coordinate system by default. If no coordinate system is specified in input file, assume LPS.<br />
<br />
====Acquisition transform====<br />
<br />
Enable acquisition transform by default, to show correct loading of tilted gantry images. It has proven to work well.<br />
<br />
====Model Hierarchies====<br />
<br />
Remove Model Hierarchy feature and make sure that Subject Hierarchy covers all use cases. This will impact ModelMaker, which should be converted to a simpler version that only returns models and not semantics. Need to check extensions, especially SlicerDMRI, for any dependencies on Model Hierarchy.<br />
<br />
=== Remove deprecated modules and/or Migrate to extension ===<br />
<br />
==== Editor ====<br />
The module already directs users to Segment Editor, which provides all the functionality of Editor and more, and<br />
is the successor module that will be improved and maintained. Removing it would decrease confusion of both old<br />
and new Slicer users<br />
<br />
* Potentially the hack about modules with names ending with the string "Lib" can also be removed after the Editor module will not require it. It is [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Base/QTCore/qSlicerUtils.cxx?r1=26891&r2=26890&pathrev=26891 around here].<br />
<br />
* '''Make Editor hidden in 4.10, advertise its removal (some extensions still use it), then remove it in 5.0'''. Remove it from toolbar, move Editor to legacy category in 4.10<br />
<br />
* Investigate if the module could easily be moved to an extension<br />
<br />
==== VectorToScalarVolume ====<br />
<br />
The plan would be to improve the Volume module so that vector volume could be converted to scalar volume, similarly to scalar to labelmap conversion option. Then, this module could be removed.<br />
<br />
==== Unused module code ====<br />
<br />
* <s>MultiVolumeRendering: A [https://github.com/Slicer/Slicer/tree/master/Modules/Loadable/MultiVolumeRendering module] that was effectively not developed since 2012, and is not currently compiled with Slicer.</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27087 r27087]<br />
* <s>Measurements: Same argument as MultiVolumeRendering</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27087 r27087]<br />
* <s>AtlasCreator Loadable module logic</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27088 r27088]<br />
<br />
==== CLI modules====<br />
<br />
* Model to Label Map: Has too many limitations and bugs (cannot handle concave structures, can cause Slicer to hang or crash, etc.), and is not maintained any more. It might be better to remove it than to fix it, especially that there is an algorithm for the same thing in Slicer that works much better<br />
** The model node to labelmap node conversion feature could be added as a subject hierarchy plugin, if the route via segmentation node is not convenient enough<br />
<br />
* Review CLI modules<br />
** BlobDetection<br />
** ConnectedComponent<br />
** GrayscaleModelMaker, ModelMaker: The modules are too different to combine them. Each have specific use cases.<br />
** DiffusionTensorTest, ROITest, TestGridTransformRegistration: Already excluded from package by specifying <tt>NO_INSTALL</tt><br />
** Resample Scalar Volume: Resample Scalar/Vector/DWI Volume module (which Crop Volume uses as well) can do everything it does already, except for four extra interpolation options. Probably can be removed<br />
<br />
==== Migrate to extension ====<br />
<br />
Existing [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DMRIInstall/DMRIInstall.py DMRIInstall] scripted module will be re-factored and moved into a <tt>Modules/Scripted/InstallSuggestions</tt> directory.<br />
<br />
Then, after transitioning them to extension, the following module will be added to the "InstallSuggestions" so that the user knows how to install them:<br />
<br />
* BRAINSTools (also add SlicerElastix to the suggestions)<br />
* SimpleITK: Only used in the editor<br />
* EMSegment: already disabled in Slicer-4.10, so it may be completely removed from build scripts instead of moving it to an extension<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, we need to make sure to have at least one non-rigid registration method and one ICP based method (e.g Landmark Registration) available in the main distribution.<br />
<br />
==== PETStandardUptakeValueComputation ====<br />
<br />
Remove PETStandardUptakeValueComputation from Slicer core, as a more advanced version of this is available in an extension: https://github.com/QIICR/Slicer-PETDICOMExtension. See details here: https://github.com/Slicer/Slicer/pull/1068#issuecomment-450905887<br />
<br />
=== Coding Style===<br />
<br />
==== Slicer 5.0: Indentation of curly braces ====<br />
In Slicer the curly braces have a two-space indentation everywhere within functions. As this was inherited from VTK, but VTK changed its convention to align the braces with the statements (if etc.), it could make sense to make the change in Slicer too. This is considered a major change because it affects almost all cxx files.<br />
<br />
==== Simpler VTK smart pointer usage ====<br />
Use <code>vtkNew<type> var;</code> instead of <code>vtkSmartPointer<type> var = vtkSmartPointer<type>::New();</code> and remove now unnecessary <code>.GetPointer()</code> calls.<br />
<br />
=== Usability ===<br />
<br />
==== Volume Rendering Activation Method ====<br />
<br />
We have had lots of issues with people finding the eye icon.<br />
<br />
=== Miscellaneous ===<br />
<br />
==== Tcl codes ====<br />
<s>Most of the TCL code seems to be a heritage from Slicer3. Can they be removed?</s> - Done in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27091 r27091]<br />
<br />
==== Remove self-test modules from the All modules list ====<br />
Users already find the all modules list very long, and as the self tests are for developers only (and can be found in the modules list under the Testing category), they could be removed from the list. Make sure they are available in Developer mode.<br />
<br />
==== Remove BTX/ETX pairs ====<br />
Once VTK7 is no longer supported, the old way for disabling python wrapping is no longer needed. According to my tests (Csaba), wrapping works fine in all of those cases, so the new way (#ifndef __VTK_WRAP__) is not needed either.<br />
<br />
== Additional proposed changes to be discussed ==<br />
<br />
* Bundle IPython package in Slicer installer - Slicer Jupyter extension has been added, do we need more?<br />
** Do we want history across sessions?<br />
** Quick access to script repository<br />
* [https://discourse.slicer.org/t/add-slicer-nightly-to-homebrew-macos/811 Install using brew]<br />
* Add opt-in collection of usage statistics for various features (e.g. could be triggered when a module is entered).<br />
* Enable geometry correction by default (e.g. gantry tilt as [https://discourse.slicer.org/t/actual-size-of-stl-models/5005/21 discussed here]).<br />
* Remove legacy 1.0 pydicom and only bundle latest (see https://pydicom.github.io/pydicom/stable/transition_to_pydicom1.html#). Import name changed from 'dicom' to 'pydicom'<br />
* Remove DICOM Networking (DIMSE) code https://discourse.slicer.org/t/dicom-retrieve-on-windows-10-there-is-no-service-listening-dicom-communications-no-telnet-connection-to-ports</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Labs/Slicer5-roadmap&diff=61352Documentation/Labs/Slicer5-roadmap2019-08-13T14:19:42Z<p>Sam.horvath: Add new setion</p>
<hr />
<div>The major version number upgrade to 5 provides an opportunity to make changes that affect the<br />
application, the API, or the code in a way that was not possible in the past seven or so years.<br />
<br />
This page collects community suggestions related to the transition plan for Slicer 4.10 and major changes for Slicer 5.0.<br />
<br />
Related forum post: https://discourse.slicer.org/t/slicer-5-0-deprecation-discussion-wiki/2377<br />
<br />
== Overall Goals ==<br />
<br />
* Improve user experience<br />
** More logical interface<br />
** Perform most common tasks easily<br />
** Easier to discover advanced features<br />
** Improve asynchronous behavior (like loading data in a background thread)<br />
* Defining core and extensions<br />
** Core functionality is:<br />
*** DICOM and other format I/O, Subject management<br />
*** Visualization 2D/3D/4D<br />
*** Segmentation<br />
*** Transforms and Registration<br />
*** Annotations and Markups<br />
*** Programmability and Extensibility<br />
** Move some extensions to core (Sequences, DICOMPlugins...)<br />
** Move some core to extensions (SimpleITK, Editor...)<br />
* Simplify maintenance<br />
** Remove legacy code that adds more complexity than value<br />
** Deprecate support for older build options and platforms (old libs, old compilers, etc)<br />
** Simplify documentation creation and use<br />
** Streamline the build and release process<br />
** Use unmodified upstream libraries<br />
* Developer experience<br />
** Improve API / Scripting documentation organization / search engine optimization<br />
** Simplify/accelerate build process on all platforms (options to use prebuilt sdk for example)<br />
** Use standard packages (Qt, Python, VTK, ITK)<br />
<br />
<hr><br />
<br />
== Specific Change Proposals ==<br />
<br />
=== Slicer 5.0: Backward incompatible changes ===<br />
<br />
==== Build System Simplification ====<br />
<br />
* Pick the most recent reasonable CMake version and remove any complexities in the build system are only there to work around limitations of old CMake versions.<br />
<br />
* Consider any ways to streamline/simplify the configure and build process, even it if may require changing extensions.<br />
<br />
* Look for ways to minimize the effect of long directory path-related build issues. Currently on mac and windows we are pushing the limit of path length unless very short paths are used (e.g. /s5 or d:\s5). Reorganizing the build tree might give us more headroom.<br />
<br />
==== Python3 ====<br />
<br />
Switch to Python3 and use the same compiler as official Python distribution. This would allow installation of any Python package inside Slicer's Python environment.<br />
<br />
Tasks:<br />
* Update of CTK: Build system, CTK Python console and [https://github.com/commontk/CTK/blob/master/CMake/ctkWrapPythonQt.py ctkWrapPythonQt.py] - '''DONE''' {{done}}<br />
* Update [https://github.com/Slicer/Slicer/blob/master/SuperBuild/External_python.cmake External_python.cmake] - '''DONE''' {{done}}<br />
* Update of "C++ to python bridge" classes ([https://github.com/Slicer/Slicer/blob/master/Base/QTCore/qSlicerScriptedUtils_p.h qSlicerScriptedUtils_p.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedLoadableModule.h qSlicerScriptedLoadableModule.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedFileDialog.h qSlicerScriptedFileDialog.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTGUI/qSlicerScriptedLoadableModuleWidget.h qSlicerScriptedLoadableModuleWidget.h], [https://github.com/Slicer/Slicer/blob/master/Base/QTCore/qSlicerScriptedFileWriter.h qSlicerScriptedFileWriter.h], ...) - '''DONE''' {{done}}<br />
* Update of install rules and macos fixup - '''DONE''' {{done}}<br />
* Update of python scripts to be compliant with python 3 - '''DONE''' {{done}}<br />
<br />
Some of the issues discovered after integration of Python 3:<br />
* Fix iomodule.c build error with VS2017. See https://github.com/Slicer/Slicer/pull/1118#issuecomment-482436689. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28138 r28138] - '''DONE''' {{done}}<br />
* Fix crash in Debug build. See https://github.com/lassoan/Slicer/tree/python-startup-hang-in-debug-mode. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28141 r28141] - '''DONE''' {{done}}<br />
* <tt>restart()</tt> Python function does not work. Fixed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28143 r28143] - '''DONE''' {{done}}<br />
<br />
References:<br />
* discourse post: https://discourse.slicer.org/t/updating-slicer-to-work-with-python-3/4662/14<br />
* GitHub PR: https://github.com/Slicer/Slicer/pull/1118<br />
<br />
==== SceneViews ====<br />
<br />
The scene views feature does not work well for a long time now, and there is no consensus about what should be the scope it supports.<br />
<br />
Suggestion:<br />
* Do not save the state of all nodes: Support only display, view and hierarchy nodes. <br />
* Make SceneViews as stable as possible for these cases and remove support for data notes etc.<br />
* If a node is removed, update associated scene views<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, we should keep the SceneView functionality. All data should be associated with the "master" view, and scene view should be different combination of viewing parameters (layout, camera, visibility, etc ...). A mrb to consider for testing is the [http://slicer.kitware.com/midas3/slicerdatastore/view?itemId=126553&layout=layout LungSegments_scene.mrb]<br />
* Another suggestion from Sonia is that SceneViews could be read-only for certain classes of nodes. It's not clear how that would be implemented, but it could address the instability problems while enabling the use of SceneViews for training.<br />
<br />
==== Undo/Redo ====<br />
Similarly to SceneViews, it is a great feature but in time it started breaking.<br />
Need to decide if we want to keep it, and if yes fix it.<br />
<br />
Potential fix (currently being tested by Kyle Sunderland and Andras Lasso): Add an "undo enabled" flag to vtkMRMLNode, disable it by default, only enable it for nodes that undo/redo has tested to work correctly. Preliminary tests show that the feature largely works, but there are complications with undo/redo of node add/remove actions and node references.<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, would be nice to also have undo/redo for camera settings, field of view, etc ... within a given view. It is easy to inadvertently modify settings ... (e.g when trying to pan using a trackpad with shift+left click but inadvertently using only left click)<br />
<br />
==== Removal of Charts based infrastructure ====<br />
<br />
With Slicer 5.0, the idea is to remove the [[Documentation/Nightly/Developers/Charts|Charts]] infrastructure based on jqPlot, and only keep<br />
the [[Documentation/Nightly/Developers/Plots|Plots]] infrastructure based on VTK Charts.<br />
<br />
Ron's request: enable anti-aliasing (MSAA or FXAA) and use less subtle default colors (https://www.slicer.org/wiki/Slicer4:2012_GenericChartColors) to improve appearance.<br />
<br />
==== Revisit MRML Copy API ====<br />
<br />
Copy method does not perform complete deep-copy in some classes. For Sequences, we need both DeepCopy (for node modifications) and ShallowCopy (for fast replay possible).<br />
<br />
There are also too many variants of node copy methods, which makes it difficult to use them correctly.<br />
<br />
See also https://issues.slicer.org/view.php?id=2608.<br />
<br />
==== Remove remote data support from MRML ====<br />
<br />
MRML theoretically supports downloading files through http, but this feature has not seen much use. This will not likely to change in the future because there is a wide range of data access and authentication protocols, which would not be practical at MRML level.<br />
<br />
It would be better to remove remote data support from MRML to simplify data storage. We can keep useful utility classes, such as cache manager for keeping track of local temporary files (downloaded using SampleData or other modules that download significant amount of temporary data).<br />
<br />
See also https://discourse.slicer.org/t/improving-testing-data-management-for-self-test/5014/4.<br />
<br />
==== Improve layout manager ====<br />
<br />
* Support multiple displays: Currently, it is very hard to leverage multiple displays (need to stretch the Slicer window over multiple screens and align splitter manually to the screen boundary). Allow defining single-display and multi-display layouts. Single-display layouts could be selected for each display independently, while multi-monitor layouts would set views on several displays at once. Keeping a single layout manager (and enhance it with to allow creation of multiple widgets) would make it easier to maintain backward compatibility for existing modules.<br />
* View layout IDs: View layout IDs are currently integer values, which makes it difficult to ensure that modules always choose unique IDs. We should switch to using string IDs. String IDs can may be prefixed with modulename+"." as we do it for singleton tags and node attributes. We may remain somewhat backward compatible by having SetLayoutID(int) method that maps known layout integer IDs to the new string IDs. See discussion here: https://github.com/Slicer/Slicer/pull/1061#discussion_r241825827<br />
<br />
====Coordinate system in files====<br />
<br />
To be consistent with the rest of the world: Save models and markups in LPS coordinate system by default. If no coordinate system is specified in input file, assume LPS.<br />
<br />
====Acquisition transform====<br />
<br />
Enable acquisition transform by default, to show correct loading of tilted gantry images. It has proven to work well.<br />
<br />
====Model Hierarchies====<br />
<br />
Remove Model Hierarchy feature and make sure that Subject Hierarchy covers all use cases. This will impact ModelMaker, which should be converted to a simpler version that only returns models and not semantics. Need to check extensions, especially SlicerDMRI, for any dependencies on Model Hierarchy.<br />
<br />
=== Remove deprecated modules and/or Migrate to extension ===<br />
<br />
==== Editor ====<br />
The module already directs users to Segment Editor, which provides all the functionality of Editor and more, and<br />
is the successor module that will be improved and maintained. Removing it would decrease confusion of both old<br />
and new Slicer users<br />
<br />
* Potentially the hack about modules with names ending with the string "Lib" can also be removed after the Editor module will not require it. It is [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Base/QTCore/qSlicerUtils.cxx?r1=26891&r2=26890&pathrev=26891 around here].<br />
<br />
* '''Make Editor hidden in 4.10, advertise its removal (some extensions still use it), then remove it in 5.0'''. Remove it from toolbar, move Editor to legacy category in 4.10<br />
<br />
* Investigate if the module could easily be moved to an extension<br />
<br />
==== VectorToScalarVolume ====<br />
<br />
The plan would be to improve the Volume module so that vector volume could be converted to scalar volume, similarly to scalar to labelmap conversion option. Then, this module could be removed.<br />
<br />
==== Unused module code ====<br />
<br />
* <s>MultiVolumeRendering: A [https://github.com/Slicer/Slicer/tree/master/Modules/Loadable/MultiVolumeRendering module] that was effectively not developed since 2012, and is not currently compiled with Slicer.</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27087 r27087]<br />
* <s>Measurements: Same argument as MultiVolumeRendering</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27087 r27087]<br />
* <s>AtlasCreator Loadable module logic</s> - Removed in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27088 r27088]<br />
<br />
==== CLI modules====<br />
<br />
* Model to Label Map: Has too many limitations and bugs (cannot handle concave structures, can cause Slicer to hang or crash, etc.), and is not maintained any more. It might be better to remove it than to fix it, especially that there is an algorithm for the same thing in Slicer that works much better<br />
** The model node to labelmap node conversion feature could be added as a subject hierarchy plugin, if the route via segmentation node is not convenient enough<br />
<br />
* Review CLI modules<br />
** BlobDetection<br />
** ConnectedComponent<br />
** GrayscaleModelMaker, ModelMaker: The modules are too different to combine them. Each have specific use cases.<br />
** DiffusionTensorTest, ROITest, TestGridTransformRegistration: Already excluded from package by specifying <tt>NO_INSTALL</tt><br />
** Resample Scalar Volume: Resample Scalar/Vector/DWI Volume module (which Crop Volume uses as well) can do everything it does already, except for four extra interpolation options. Probably can be removed<br />
<br />
==== Migrate to extension ====<br />
<br />
Existing [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DMRIInstall/DMRIInstall.py DMRIInstall] scripted module will be re-factored and moved into a <tt>Modules/Scripted/InstallSuggestions</tt> directory.<br />
<br />
Then, after transitioning them to extension, the following module will be added to the "InstallSuggestions" so that the user knows how to install them:<br />
<br />
* BRAINSTools (also add SlicerElastix to the suggestions)<br />
* SimpleITK: Only used in the editor<br />
* EMSegment: already disabled in Slicer-4.10, so it may be completely removed from build scripts instead of moving it to an extension<br />
<br />
Notes:<br />
* 2018-12-13: Jc: Following discussion with Ron, we need to make sure to have at least one non-rigid registration method and one ICP based method (e.g Landmark Registration) available in the main distribution.<br />
<br />
==== PETStandardUptakeValueComputation ====<br />
<br />
Remove PETStandardUptakeValueComputation from Slicer core, as a more advanced version of this is available in an extension: https://github.com/QIICR/Slicer-PETDICOMExtension. See details here: https://github.com/Slicer/Slicer/pull/1068#issuecomment-450905887<br />
<br />
=== Coding Style===<br />
<br />
==== Slicer 5.0: Indentation of curly braces ====<br />
In Slicer the curly braces have a two-space indentation everywhere within functions. As this was inherited from VTK, but VTK changed its convention to align the braces with the statements (if etc.), it could make sense to make the change in Slicer too. This is considered a major change because it affects almost all cxx files.<br />
<br />
==== Simpler VTK smart pointer usage ====<br />
Use <code>vtkNew<type> var;</code> instead of <code>vtkSmartPointer<type> var = vtkSmartPointer<type>::New();</code> and remove now unnecessary <code>.GetPointer()</code> calls.<br />
<br />
=== Usability ===<br />
<br />
==== Volume Rendering Activation Method ====<br />
<br />
We have had lots of issues with people finding the eye icon.<br />
<br />
=== Miscellaneous ===<br />
<br />
==== Tcl codes ====<br />
<s>Most of the TCL code seems to be a heritage from Slicer3. Can they be removed?</s> - Done in [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27091 r27091]<br />
<br />
==== Remove self-test modules from the All modules list ====<br />
Users already find the all modules list very long, and as the self tests are for developers only (and can be found in the modules list under the Testing category), they could be removed from the list. Make sure they are available in Developer mode.<br />
<br />
==== Remove BTX/ETX pairs ====<br />
Once VTK7 is no longer supported, the old way for disabling python wrapping is no longer needed. According to my tests (Csaba), wrapping works fine in all of those cases, so the new way (#ifndef __VTK_WRAP__) is not needed either.<br />
<br />
== Additional proposed changes to be discussed ==<br />
<br />
* Bundle IPython package in Slicer installer<br />
* [https://discourse.slicer.org/t/add-slicer-nightly-to-homebrew-macos/811 Install using brew]<br />
* Add opt-in collection of usage statistics for various features (e.g. could be triggered when a module is entered).<br />
* Enable geometry correction by default (e.g. gantry tilt as [https://discourse.slicer.org/t/actual-size-of-stl-models/5005/21 discussed here]).<br />
* Remove legacy 1.0 pydicom and only bundle latest (see https://pydicom.github.io/pydicom/stable/transition_to_pydicom1.html#). Import name changed from 'dicom' to 'pydicom'<br />
* Remove DICOM Networking (DIMSE) code https://discourse.slicer.org/t/dicom-retrieve-on-windows-10-there-is-no-service-listening-dicom-communications-no-telnet-connection-to-ports</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Fortran&diff=61342Documentation/Nightly/Developers/Fortran2019-08-05T17:44:14Z<p>Sam.horvath: /* Windows */ Fixed link for miniconda install</p>
<hr />
<div>=== Linux ===<br />
Install a fortran compiler with the package manager, like ''gfortran''.<br />
<br />
=== macOS ===<br />
<br />
- Install Miniconda - See https://conda.io/miniconda.html<br />
./Miniconda3-latest-MacOSX-x86_64.sh -p /Volumes/Dashboards/Support/miniconda3/<br />
Do you wish the installer to prepend the Miniconda3 install location<br />
Answered NO<br />
- To activate of base env.<br />
source /Volumes/Dashboards/Support/miniconda3/bin/activate<br />
<br />
- Add conda-forge<br />
conda config --add channels conda-forge<br />
<br />
-Then create gfortran-env and install gfortran<br />
conda create -n gfortran-env<br />
conda activate gfortran-env<br />
conda install gfortran_osx-64<br />
<br />
Before packaging, we have to fix the installed gfortran libraries with the following script: [https://gist.github.com/phcerdan/146de9398052335d8a76c5b0070715a6 fix_gfortran_lib_rpath.sh].<br />
<br />
The script substitutes ''@rpath'' with the needed full paths. Requires ''atool'' and ''install_name_tool''.<br />
<br />
=== Windows ===<br />
<br />
- Install Miniconda - See https://scikit-ci-addons.readthedocs.io/en/latest/addons.html#install-miniconda3-ps1<br />
<br />
- Install Flang, a fortran compiler targeting llvm: [https://scikit-ci-addons.readthedocs.io/en/latest/addons.html#install-flang-ps1 scikit-ci-addons]</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Fortran&diff=61341Documentation/Nightly/Developers/Fortran2019-08-05T17:23:19Z<p>Sam.horvath: /* Windows */</p>
<hr />
<div>=== Linux ===<br />
Install a fortran compiler with the package manager, like ''gfortran''.<br />
<br />
=== macOS ===<br />
<br />
- Install Miniconda - See https://conda.io/miniconda.html<br />
./Miniconda3-latest-MacOSX-x86_64.sh -p /Volumes/Dashboards/Support/miniconda3/<br />
Do you wish the installer to prepend the Miniconda3 install location<br />
Answered NO<br />
- To activate of base env.<br />
source /Volumes/Dashboards/Support/miniconda3/bin/activate<br />
<br />
- Add conda-forge<br />
conda config --add channels conda-forge<br />
<br />
-Then create gfortran-env and install gfortran<br />
conda create -n gfortran-env<br />
conda activate gfortran-env<br />
conda install gfortran_osx-64<br />
<br />
Before packaging, we have to fix the installed gfortran libraries with the following script: [https://gist.github.com/phcerdan/146de9398052335d8a76c5b0070715a6 fix_gfortran_lib_rpath.sh].<br />
<br />
The script substitutes ''@rpath'' with the needed full paths. Requires ''atool'' and ''install_name_tool''.<br />
<br />
=== Windows ===<br />
<br />
- Install Miniconda - See https://conda.io/miniconda.html<br />
<br />
- Install Flang, a fortran compiler targeting llvm: [https://scikit-ci-addons.readthedocs.io/en/latest/addons.html#install-flang-ps1 scikit-ci-addons]</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/Nightly/Developers/Fortran&diff=61340Documentation/Nightly/Developers/Fortran2019-08-05T17:23:05Z<p>Sam.horvath: Added Miniconda requirement for Windows</p>
<hr />
<div>=== Linux ===<br />
Install a fortran compiler with the package manager, like ''gfortran''.<br />
<br />
=== macOS ===<br />
<br />
- Install Miniconda - See https://conda.io/miniconda.html<br />
./Miniconda3-latest-MacOSX-x86_64.sh -p /Volumes/Dashboards/Support/miniconda3/<br />
Do you wish the installer to prepend the Miniconda3 install location<br />
Answered NO<br />
- To activate of base env.<br />
source /Volumes/Dashboards/Support/miniconda3/bin/activate<br />
<br />
- Add conda-forge<br />
conda config --add channels conda-forge<br />
<br />
-Then create gfortran-env and install gfortran<br />
conda create -n gfortran-env<br />
conda activate gfortran-env<br />
conda install gfortran_osx-64<br />
<br />
Before packaging, we have to fix the installed gfortran libraries with the following script: [https://gist.github.com/phcerdan/146de9398052335d8a76c5b0070715a6 fix_gfortran_lib_rpath.sh].<br />
<br />
The script substitutes ''@rpath'' with the needed full paths. Requires ''atool'' and ''install_name_tool''.<br />
<br />
=== Windows ===<br />
<br />
- Install Miniconda - See https://conda.io/miniconda.html<br />
- Install Flang, a fortran compiler targeting llvm: [https://scikit-ci-addons.readthedocs.io/en/latest/addons.html#install-flang-ps1 scikit-ci-addons]</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Documentation/4.10/Announcements&diff=61200Documentation/4.10/Announcements2019-05-30T21:56:34Z<p>Sam.horvath: /* Slicer 4.10 */ Update to 4.10.2</p>
<hr />
<div><noinclude>{{documentation/versioncheck}}</noinclude><br />
__NOTOC__<br />
<br />
{|align="center" border="1" style="text-align:center; font-size:120%; border-spacing: 0; padding: 0px;" cellpadding="10"<br />
|[[#Slicer 4.10|Slicer 4.10]]<br />
|[[#What is 3D Slicer|What is 3D Slicer]]<br />
|[[#Citing Slicer|Citing Slicer]]<br />
|}<br />
<br />
<br />
= Slicer 4.10 = <br />
<br />
{{documentation/banner<br />
| text = The community of Slicer developers is proud to announce the release of '''Slicer 4.10.2''' is [http://download.slicer.org/ now available for download].<br><br>To learn more, see [https://discourse.slicer.org/t/slicer-4-10-2-summary-highlights-and-changelog/6974 Slicer 4.10.2: Summary, Highlights and Changelog]<br />
| background-color = b7d0b7 }}<br />
<br />
<br><hr><br><br />
<br />
The development of 3D Slicer—including its numerous modules, extensions, datasets, pull requests, patches, issues reports, suggestions—is made possible by users, developers, contributors and commercial partners around the world. This development is funded by various grants and agencies.<br />
<br />
For more details, please see the 3D Slicer [[Documentation/{{documentation/version}}/Acknowledgments|Acknowledgments]] page.<br />
<br />
<br><hr><br><br />
<br />
<i>Please note that Slicer continues to be a research package and is not intended for clinical use.<br><br />
Testing of functionality is an ongoing activity with high priority, however, some features of Slicer are not fully tested.</i><br />
<br />
= What is 3D Slicer =<br />
{{:Documentation/{{documentation/version}}/Slicer}}<br />
<br />
= Citing Slicer =<br />
{{:Documentation/{{documentation/version}}/Acknowledgments/CitingSlicer}}</div>Sam.horvathhttps://www.slicer.org/w/index.php?title=Release_Details&diff=61169Release Details2019-05-22T17:11:16Z<p>Sam.horvath: Added release details for 4.10.2</p>
<hr />
<div><br />
= Slicer 4.10 =<br />
<br />
* Release branch:<br />
** Svn: http://viewvc.slicer.org/viewvc.cgi/Slicer4/branches/Slicer-4-10/<br />
** Git: https://github.com/Slicer/Slicer/tree/master-410<br />
<br />
== Slicer 4.10.2 ==<br />
<br />
* Date: 2019/05/16<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=28257 28257]<br />
** Git: [https://github.com/Slicer/Slicer/commit/1548fde788ae39180b5daf54389ab45b94074aa0 1548fde788ae39180b5daf54389ab45b94074aa0], [https://github.com/Slicer/Slicer/tree/v4.10.2 v4.10.2]<br />
<br />
== Slicer 4.10.1 ==<br />
<br />
* Date: 2019/01/15<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27931 27931]<br />
** Git: [https://github.com/Slicer/Slicer/commit/7d48c57524e798f167653b3af281995c7d70375d 7d48c57524e798f167653b3af281995c7d70375d], [https://github.com/Slicer/Slicer/tree/v4.10.1 v4.10.1]<br />
<br />
== Slicer 4.10.0 ==<br />
<br />
* Date: 2018/10/17<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=27501 27501]<br />
** Git: [https://github.com/Slicer/Slicer/commit/c99aa7619afa679c6fcd6f599785f73d5b3484ae c99aa7619afa679c6fcd6f599785f73d5b3484ae], [https://github.com/Slicer/Slicer/tree/v4.10.0 v4.10.0]<br />
<br />
* Contributors<br />
$ git shortlog -s -n v4.8.0..v4.10.0<br />
482 jcfr<br />
233 lassoan<br />
33 pieper<br />
33 pinter<br />
28 cpinter<br />
20 ihnorton<br />
10 agirault<br />
8 johan.andruejol<br />
<br />
* Impact<br />
$ git diff --stat v4.8.0..v4.10.0 | tail -1<br />
1223 files changed, 54094 insertions(+), 53717 deletions(-)<br />
<br />
= Slicer 4.8 =<br />
<br />
* Release branch:<br />
** Svn: http://viewvc.slicer.org/viewvc.cgi/Slicer4/branches/Slicer-4-8/<br />
** Git: https://github.com/Slicer/Slicer/tree/master-48<br />
<br />
== Slicer 4.8.1 ==<br />
<br />
* Date: 2017/12/19<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=26813 26813]<br />
** Git: [https://github.com/Slicer/Slicer/commit/94a26e017a3aba4a97c17182ffb913d872f897bc 94a26e017a3aba4a97c17182ffb913d872f897bc], [https://github.com/Slicer/Slicer/tree/v4.8.1 v4.8.1]<br />
<br />
== Slicer 4.8.0 ==<br />
<br />
* Date: 2017/10/18<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=26489 26489]<br />
** Git: [https://github.com/Slicer/Slicer/commit/944c364a6dd95f1e57dca9ee6b5e1878951de184 944c364a6dd95f1e57dca9ee6b5e1878951de184], [https://github.com/Slicer/Slicer/tree/v4.8.0 v4.8.0]<br />
<br />
* Contributors<br />
<br />
$ git shortlog -s -n v4.6.0..v4.8.0<br />
437 jcfr<br />
354 lassoan<br />
146 pinter<br />
51 pieper<br />
17 agirault<br />
12 ihnorton<br />
9 johan.andruejol<br />
7 fedorov<br />
3 msmolens<br />
1 bpaniagua<br />
1 cpinter<br />
1 naucoin<br />
<br />
* Impact<br />
$ git diff --stat v4.6.0..v4.8.0 | tail -1<br />
1831 files changed, 127780 insertions(+), 51570 deletions(-)<br />
<br />
<br />
= Slicer 4.6 =<br />
<br />
* Release branch:<br />
** Svn: http://viewvc.slicer.org/viewvc.cgi/Slicer4/branches/Slicer-4-6/<br />
** Git: https://github.com/Slicer/Slicer/tree/master-46<br />
<br />
== Slicer 4.6.2 ==<br />
<br />
* Date: 2016/11/08<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25516 25516]<br />
** Git: [https://github.com/Slicer/Slicer/commit/ffff494cbacadbb7ec23fb0511ad77e96803fdd0 ffff494cbacadbb7ec23fb0511ad77e96803fdd0]<br />
<br />
== Slicer 4.6.1 ==<br />
<br />
This release was skipped. See http://slicer-devel.65872.n3.nabble.com/Patch-release-4-6-2-Re-Patch-release-4-6-1-tt4037549.html<br />
<br />
== Slicer 4.6.0 ==<br />
<br />
* Date: 2016/10/13<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25441 25441]<br />
** Git: [https://github.com/Slicer/Slicer/commit/a4f5de2aef5ef7efe5f11e152c13e3e368bb19a2 a4f5de2aef5ef7efe5f11e152c13e3e368bb19a2]<br />
<br />
* Contributors<br />
<br />
$ git shortlog -s -n v4.5.0-1..v4.6.0<br />
367 jcfr<br />
185 lassoan<br />
49 pinter<br />
33 msmolens<br />
18 pieper<br />
15 johan.andruejol<br />
13 naucoin<br />
11 fedorov<br />
6 alex<br />
<br />
* Impact<br />
$ git diff --stat v4.5.0-1..v4.6.0 | tail -1<br />
1627 files changed, 91685 insertions(+), 65032 deletions(-)<br />
<br />
= Slicer 4.5 =<br />
<br />
== Slicer 4.5.0-1 ==<br />
<br />
* Date: 2015/11/12<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24735 24735]<br />
** Git: [https://github.com/Slicer/Slicer/commit/46a42f4fc6e0528989e392c8b08bb8edc39eeecb 46a42f4fc6e0528989e392c8b08bb8edc39eeecb]<br />
<br />
* Contributors<br />
<br />
$ git shortlog -s -n v4.4.0..v4.5.0-1<br />
626 jcfr<br />
87 lassoan<br />
69 naucoin<br />
51 pinter<br />
39 pieper<br />
29 fedorov<br />
27 alexy<br />
21 msmolens<br />
4 johan.andruejol<br />
2 millerjv<br />
2 pohl<br />
1 cpinter<br />
1 finetjul<br />
<br />
* Impact<br />
$ git diff --stat v4.4.0..v4.5.0-1 | tail -1<br />
1168 files changed, 39591 insertions(+), 33873 deletions(-)<br />
<br />
= Slicer 4.4 =<br />
<br />
== Slicer 4.4.0 ==<br />
<br />
* Date: 2014/11/02<br />
* 4.4.0 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23774 23774]<br />
** Git: [https://github.com/Slicer/Slicer/commit/ec65caed793f1c5ca1d96e06e4fd8d4a8a24d5db ec65caed793f1c5ca1d96e06e4fd8d4a8a24d5db]<br />
<br />
* Contributors<br />
$ git shortlog -s -n v4.3.0..v4.4.0<br />
693 jcfr<br />
161 mwoehlke<br />
86 naucoin<br />
73 pieper<br />
65 finetjul<br />
36 alexy<br />
30 lassoan<br />
24 pohl<br />
22 pinter<br />
17 fedorov<br />
5 hjohnson<br />
2 inorton<br />
2 mccormic<br />
2 millerjv<br />
<br />
* Impact<br />
$ git diff --stat v4.3.0..v4.4.0 | tail -1<br />
2447 files changed, 110725 insertions(+), 92113 deletions(-)<br />
<br />
= Slicer 4.3 =<br />
<br />
== Slicer 4.3.1-1 ==<br />
<br />
* Date: 2013/11/14<br />
* 4.3.1-1 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22704 22704]<br />
** Git: [https://github.com/Slicer/Slicer/commit/3024ed86d1f4635f35e88c9fc5409d94d7e1ded0 3024ed86d1f4635f35e88c9fc5409d94d7e1ded0]<br />
<br />
== Slicer 4.3.1 ==<br />
<br />
* Date: 2013/10/04<br />
* 4.3.1 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22599 22599]<br />
** Git: [https://github.com/Slicer/Slicer/commit/26ad4aa3c5a7a435beff13714fc31e7c287ebaff 26ad4aa3c5a7a435beff13714fc31e7c287ebaff]<br />
<br />
* Impact<br />
$ git diff --stat v4.3.0..v4.3.1 | tail -1<br />
214 files changed, 3202 insertions(+), 1887 deletions(-)<br />
<br />
== Slicer 4.3.0 ==<br />
<br />
* Date: 2013/09/04<br />
* 4.3.0 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22408 22408]<br />
** Git: [https://github.com/Slicer/Slicer/commit/a1f6594fdb9d7b5400253c828302b25df2083532 a1f6594fdb9d7b5400253c828302b25df2083532]<br />
<br />
* Contributors<br />
$ git shortlog -s -n v4.2.0..v4.3.0<br />
384 jcfr<br />
162 pieper<br />
146 finetjul<br />
77 naucoin<br />
74 alexy<br />
37 fedorov<br />
24 hjohnson<br />
18 johan.andruejol<br />
18 mccormic<br />
16 demian<br />
12 sankhesh<br />
11 millerjv<br />
11 pohl<br />
3 christopher.mullins<br />
2 aylward<br />
2 lassoan<br />
2 lorensen<br />
1 haehn<br />
1 inorton<br />
1 jamie.snape<br />
1 matthew.bowman<br />
1 nicky<br />
1 tokuda<br />
* Impact<br />
$ git diff --stat v4.2.0..v4.3.0 | tail -1<br />
2193 files changed, 122562 insertions(+), 85483 deletions(-)<br />
<br />
= Slicer 4.2 =<br />
<br />
== Slicer 4.2.2-1 ==<br />
* Date: 2012/12/08<br />
* 4.2.2-1 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21513 21513]<br />
** Git: [https://github.com/Slicer/Slicer/commit/f292295e32f1fd4f7db9b3ddc8a74c897ca09ef3 f292295e32f1fd4f7db9b3ddc8a74c897ca09ef3]<br />
<br />
== Slicer 4.2.2 ==<br />
* Date: 2012/12/07<br />
* 4.2.2 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21508 21508]<br />
** Git: [https://github.com/Slicer/Slicer/commit/8ea8cf733888ca359605ef590b884f4df702675b 8ea8cf733888ca359605ef590b884f4df702675b]<br />
<br />
== Slicer 4.2.1 ==<br />
* Date: 2012/11/16<br />
* 4.2.1 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21438 21438]<br />
** Git: [https://github.com/Slicer/Slicer/commit/e797ddf5792cba435ef3f4a5dd73e8f2e9f06a3d e797ddf5792cba435ef3f4a5dd73e8f2e9f06a3d]<br />
<br />
== Slicer 4.2.0 ==<br />
* Date: 2012/10/31<br />
* 4.2.0 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21298 21298]<br />
** Git: [https://github.com/Slicer/Slicer/commit/dfe6ab0a0b7f76087f968cffe6dacefd22a4c446 dfe6ab0a0b7f76087f968cffe6dacefd22a4c446]<br />
<br />
* Contributors<br />
$ git shortlog -s -n v4.1.0..v4.2.0<br />
343 jcfr<br />
226 finetjul<br />
200 pieper<br />
106 naucoin<br />
59 fedorov<br />
49 alexy<br />
44 millerjv<br />
39 demian<br />
33 benjamin.long<br />
27 mccormic<br />
25 hjohnson<br />
19 sankhesh<br />
16 Michael.jeulinl<br />
12 christopher.mullins<br />
10 pinter<br />
10 pohl<br />
9 vrnova<br />
8 inorton<br />
4 ungi<br />
3 lorensen<br />
2 joe.snyder<br />
2 lassoan<br />
2 tokuda<br />
* Impact<br />
$ git diff --stat v4.1.0..v4.2.0 | tail -1<br />
1833 files changed, 90186 insertions(+), 45562 deletions(-)<br />
<br />
= Slicer 4.1 =<br />
<br />
== Slicer 4.1.1 ==<br />
* Date: 2012/06/01<br />
* 4.1.1 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20313 20313]<br />
** Git: [https://github.com/Slicer/Slicer/commit/6e4cedd9889d4939185decfee50e2a5bf270a5b6 6e4cedd9889d4939185decfee50e2a5bf270a5b6]<br />
* Contributors - Since all commits have been back-ported, in the original authorship has been lost.<br />
$ git shortlog -s -n 347ac58..v4.1.1<br />
118 jcfr<br />
* Impact<br />
$ git diff --stat 347ac58..v4.1.1<br />
506 files changed, 14426 insertions(+), 12192 deletions(-)<br />
* Changes<br />
** [https://github.com/downloads/Slicer/Slicer/ChangeLog-Slicer-4.1.1.txt ChangeLog-Slicer-4.1.1.txt]<br />
** Summary<br />
*** Extensions Manager fixes<br />
*** Extensions build system fixes<br />
*** Documentation update<br />
* Mantis permalinks<br />
** 39 [http://na-mic.org/Mantis/permalink_page.php?url=http%3A%2F%2Fna-mic.org%2FMantis%2Fsearch.php%3Fproject_id%3D3%26amp%3Bstatus_id%255B%255D%3D80%26amp%3Bstatus_id%255B%255D%3D90%26amp%3Bsticky_issues%3Doff%26amp%3Bfixed_in_version%3DSlicer%2B4.1.1%26amp%3Bsortby%3Dlast_updated%26amp%3Bdir%3DDESC%26amp%3Bhide_status_id%3D-2 Issues resolved] / 39 issue targeted<br />
<br />
== Slicer 4.1.0 ==<br />
* Date: 2012/04/12<br />
* 4.1.0 Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19886 19886]<br />
** Git: [https://github.com/Slicer/Slicer/commit/cdc4b6cdd5adebaba4e8d29a0ab62af200f56b91 cdc4b6cdd5adebaba4e8d29a0ab62af200f56b91]<br />
** RC3 Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19843 19843]<br />
** RC2 Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19693 19693]<br />
** RC1 Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19609 19609]<br />
* Contributors<br />
$ git shortlog -s -n 401..410<br />
349 jcfr<br />
184 finetjul<br />
76 pieper<br />
51 naucoin<br />
41 millerjv<br />
38 fedorov<br />
29 demian<br />
17 hjohnson<br />
17 pohl<br />
8 alexy<br />
7 wjp@bwh.harvard.edu<br />
6 vrnova<br />
6 Michael.jeulinl<br />
5 inorton<br />
5 haehn<br />
3 joe.snyder<br />
3 tokuda<br />
2 lorensen<br />
1 dpace<br />
* Impact<br />
$ git diff --stat 400 401<br />
1853 files changed, 91446 insertions(+), 95322 deletions(-)<br />
* Changes<br />
** [https://github.com/downloads/Slicer/Slicer/ChangeLog-Slicer-4.1.0.txt ChangeLog-Slicer-4.1.0.txt]<br />
** Summary<br />
*** Extension Manager<br />
*** MultiVolume support (MultiVolumeExplorer)<br />
*** Chart support<br />
*** OpenIGTLink, DICOM, Welcome modules added/improved<br />
*** Compare Views, Slice View Controller improved<br />
*** ''Prefer executable CLIs'' option<br />
*** [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19059 ENH: Seeding with no input label map now performs a full brain tractography]<br />
* Mantis permalinks<br />
** 72 [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=80&status_id%5B%5D=90&sticky_issues=off&fixed_in_version=Slicer+4.1.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues resolved]<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&sticky_issues=off&product_version=Slicer+4.1.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues reported]<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=10&status_id%5B%5D=20&status_id%5B%5D=30&status_id%5B%5D=40&status_id%5B%5D=50&sticky_issues=off&product_version=Slicer+4.1.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Open issues]<br />
** Known Issues<br />
*** Extension Manager hidden by default (Need to turn on setting in Application Settings dialog)<br />
<br />
= Slicer 4.0 =<br />
<br />
== Slicer 4.0.1 ==<br />
* Date: 2012/01/06<br />
* Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19033 19033]<br />
** Git: [https://github.com/Slicer/Slicer/commit/e56745aa8a9b5d21e11ece556d13b6499d83d5ed e56745aa8a9b5d21e11ece556d13b6499d83d5ed]<br />
* Contributors<br />
$ git shortlog -s -n 400..401<br />
124 jcfr<br />
84 finetjul<br />
12 naucoin<br />
9 pieper<br />
7 fedorov<br />
6 alexy<br />
4 hjohnson<br />
3 benjamin.long<br />
2 Michael.jeulinl<br />
1 millerjv<br />
1 tokuda<br />
1 wjp@bwh.harvard.edu<br />
1 zach.mullen<br />
* Impact<br />
$ git diff --stat 400 401<br />
6838 files changed, 361906 insertions(+), 2249448 deletions(-)<br />
* Changes<br />
** [https://github.com/downloads/Slicer/Slicer/ChangeLog-Slicer-4.0.1.txt ChangeLog-Slicer-4.0.1.txt], [https://github.com/downloads/Slicer/Slicer/ChangeLog-Slicer-4.0.1-digest.txt ChangeLog-Slicer-4.0.1-digest.txt]<br />
** Summary<br />
*** VTK GPU Raycast mapper fixed on Mac Os X with ATI GPU <br />
*** Install fixed on ubuntu 11.04<br />
*** DWI full tractography install fixed on Mac Os X<br />
*** Faster scene load<br />
*** Drag&Drop files in Slicer<br />
*** Volume rendering method is an application setting<br />
*** Load annotation files<br />
* Mantis permalinks<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=80&status_id%5B%5D=90&sticky_issues=off&fixed_in_version=Slicer+4.0.1&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues resolved]<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&sticky_issues=off&product_version=Slicer+4.0.1&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues reported]<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=10&status_id%5B%5D=20&status_id%5B%5D=30&status_id%5B%5D=40&status_id%5B%5D=50&sticky_issues=off&product_version=Slicer+4.0.1&sortby=last_updated&dir=DESC&hide_status_id=-2 Open issues]<br />
** Known Issues<br />
*** views loose settings on layout change<br />
<br />
== Slicer 4.0.0 ==<br />
* Date: 2011/11/27<br />
* Revisions<br />
** Svn: [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=18777 18777]<br />
** Git: [https://github.com/Slicer/Slicer/commit/8b1733199c02cfea668fd4de6f7b3f22136c0fab 8b1733199c02cfea668fd4de6f7b3f22136c0fab]<br />
* Contributors<br />
$ git shortlog -s -n 400rc2..400<br />
450 jcfr<br />
389 finetjul<br />
159 pieper<br />
158 naucoin<br />
91 wjp@bwh.harvard.edu<br />
62 alexy<br />
56 millerjv<br />
43 haehn<br />
43 fedorov<br />
39 demian<br />
34 hjohnson<br />
23 inorton<br />
20 benjamin.long<br />
14 zach.mullen<br />
11 ilknur.kabul<br />
10 pohl<br />
9 Michael.jeulinl<br />
6 lorensen<br />
3 domibel<br />
2 kedar_p<br />
1 harveerar<br />
1 taylor<br />
* Impact<br />
$ git diff --stat 400rc2 400<br />
4315 files changed, 165575 insertions(+), 233077 deletions(-)<br />
* Target for [http://www.na-mic.org/Wiki/index.php/Events:Slicer4-Review-07-2011#RSNA_2011_Targeted_Objectives RSNA 2011]<br />
* New features<br />
** Application<br />
*** Slice controller popups<br />
*** Compare Views<br />
*** Reformat widget<br />
*** Slice intersection<br />
*** Crosshair widget<br />
*** Volume Rendering presets<br />
*** Colors/Modules search<br />
** Modules<br />
*** Facelift of Volume Rendering, Editor, Models, Tractography Display, Sceneviews...<br />
*** Data probe (instead of corner annotations)<br />
*** Crop<br />
*** EMSegment<br />
*** Brainsfit<br />
** Under the hood<br />
*** Speed improvement<br />
*** 99% tcl/tk free<br />
*** Online documentation (wiki)<br />
* Missing Features<br />
** Extensions (Plastimatch...)<br />
** DICOM module<br />
** DICOM to DWI module<br />
** More annotations types (angle, bspline...)<br />
** Status report<br />
* Mantis permalinks<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=80&status_id%5B%5D=90&sticky_issues=off&fixed_in_version=Slicer+4.0.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues resolved] in 4.0.0<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&sticky_issues=off&product_version=Slicer+4.0.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Issues reported] in 4.0.0<br />
** [http://na-mic.org/Mantis/search.php?project_id=3&status_id%5B%5D=10&status_id%5B%5D=20&status_id%5B%5D=30&status_id%5B%5D=40&status_id%5B%5D=50&sticky_issues=off&product_version=Slicer+4.0.0&sortby=last_updated&dir=DESC&hide_status_id=-2 Open issues]<br />
* Known issues<br />
** No VTK GPU Raycast VR on Mac<br />
** views looses settings on layout change<br />
** Broken ROI annotations: http://www.na-mic.org/Bug/view.php?id=1628<br />
** Doesn't start on some Linux machines (e.g. Ubuntu 11.10): delete the file libqsvg.so in the directory Slicer-4.0.0-linux-amd64/lib/QtPlugins/imageformats)<br />
<br />
== Slicer 4.0.0 gamma ==<br />
* Note: gamma for developers.<br />
* Slicer 4.0.0 gamma-RC2 (2011/06/20)<br />
** svn [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=17159 17159]<br />
** git [https://github.com/Slicer/Slicer/commit/702cf25cb71972c3809315b62c4f7c81a86795c9 702cf25cb71972c3809315b62c4f7c81a86795c9]<br />
* Slicer 4.0.0 gamma-RC1 (2011/06/13)<br />
** svn [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=17005 17005]<br />
** git [https://github.com/Slicer/Slicer/commit/57839c4ad2a82f9ddaeb9242ffca76dff1af2032 57839c4ad2a82f9ddaeb9242ffca76dff1af2032]<br />
* Contributors<br />
$ git shortlog -s -n 400betaRC2..400gammaRC2<br />
571 jcfr<br />
301 finetjul<br />
165 naucoin<br />
78 pieper<br />
67 alexy<br />
37 haehn<br />
37 fedorov<br />
35 lorensen<br />
19 harveerar<br />
13 partyd<br />
8 millerjv<br />
6 dpace<br />
5 domibel<br />
4 zach.mullen<br />
4 demian<br />
4 inorton<br />
4 matthew.bowman<br />
4 mscully<br />
3 hjohnson<br />
1 francois_budin<br />
* Impact<br />
$ git diff --stat 400betaRC2 400gammaRC2<br />
2617 files changed, 109115 insertions(+), 357477 deletions(-)<br />
** Known issues<br />
*** Crash when loading DTI images.<br />
* New features<br />
** Modules<br />
*** Support for "Command Line Executables"<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:SlicerWithVolumeRendering.png Volume Rendering](New)<br />
**** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerVolumeRenderingModule-DualView.png Dual View]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerSampleDataModule.png Sample Data](New)<br />
*** Volumes<br />
**** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerDiffusionTensorVolumeDisplayWidget.png DWI/DTI support].<br />
**** Control over the slider range when editing Window/Level.<br />
*** Data<br />
**** Option menu (Insert transform, Edit properties, Delete...) on right click.<br />
*** Annotations<br />
**** [http://wiki.slicer.org/slicerWiki/index.php/File:QMRMLROIWidget.png ROI annotations] (New)<br />
** Application<br />
*** [http://www.commontk.org/index.php/File:CtkVTKMagnifyView.png Magnify view]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerExtensionsWizard.png Extension Manager]<br />
*** Dynamic Layouts<br />
*** [http://www.commontk.org/index.php/File:CtkErrorLogWidget.png Error&Warnings Logger]<br />
** Misc.<br />
*** [http://www.cdash.org/slicer4/index.php?project=Slicer4 Automatic package submission system]<br />
*** CMake configuration template for building extensions <br />
*** Mac Bundle<br />
*** Python testing<br />
* What is missing?<br />
** Speed improvement<br />
** Status report<br />
** "Compare Views"<br />
** UI for DICOM loading<br />
** Reformat widget<br />
** Crosshair widget<br />
** Slice intersections<br />
** Volume Rendering presets<br />
** More annotation types<br />
** ...<br />
<br />
== Slicer 4.0.0 beta ==<br />
* Beta for developers.<br />
* Slicer 4.0.0 beta-2 (2011/01/08)<br />
** svn [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=15784 15784]<br />
** git [https://github.com/Slicer/Slicer/commit/25765eff42efb5c33056896af5601ab6a79d003f 25765eff42efb5c33056896af5601ab6a79d003f]<br />
** Known issues:<br />
*** Can't load volumes (.nrrd) using "Add Data" dialog<br />
* Slicer 4.0.0 beta-1 (2010/12/18)<br />
** svn 15678<br />
** git de67f79dfb745dc7534197eb0012d61c3c91ee30<br />
** Known issues:<br />
*** Can't load models (.vtk) using "Add Data" dialog<br />
* Contributors<br />
$ git shortlog -s -n 400alpha.400betaRC2<br />
283 jcfr<br />
191 finetjul<br />
107 haehn<br />
85 pieper<br />
28 dpace<br />
20 naucoin<br />
18 partyd<br />
12 wjp@bwh.harvard.edu<br />
11 alexy<br />
9 pohl<br />
6 fedorov<br />
5 zach.mullen<br />
4 hjohnson<br />
3 lorensen<br />
2 ygao<br />
2 mscully<br />
2 millerjv<br />
2 domibel<br />
1 aylward<br />
1 tokuda<br />
* Impact<br />
git diff --stat 400alpha..400betaRC2<br />
2178 files changed, 91605 insertions(+), 71850 deletions(-)<br />
* New features<br />
** Modules<br />
*** [http://www.na-mic.org/Wiki/index.php/File:SlicerAM_QtAnnotation.png Annotation]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerColorModuleWidget.png Color]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerEditorModule.png Editor]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerEndoscopyModule.png Endoscopy]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerModelsModule.png Models]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerSceneViewsModule.png Scene views]<br />
*** Progress for [http://wiki.slicer.org/slicerWiki/index.php/File:QCLIModule-LinearRegistration.png CLI] modules<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerExtensionsWizard.png Extensions Manager]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QMRMLThreeDViewsWidget.png Manipulate 3D View]<br />
** Support for [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerEndoscopyModule.png Python modules]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QMRMLSliceWidget.png Corner annotations]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerSettingsDialog.png Application Settings]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:LabelStatistics-Slicelet-2011-01-09.png LabelStatistics]<br />
* What is missing?<br />
** Layouts (Compare, Tabbed, Dual 3D view...)<br />
** UI for DICOM loading<br />
** Volume Rendering<br />
** Cache&Remote I/O Manager (Download Sample Data)<br />
** Logger<br />
** Reformat widget<br />
** DWI support in the Volumes module<br />
<br />
== Slicer 4.0.0 alpha ==<br />
* Alpha release for developers<br />
* Date: 2010/09/09<br />
* Revisions<br />
** svn [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=14976 14976]<br />
** git [https://github.com/Slicer/Slicer/commit/b21afba04d282e44af2c0e40668f9d91aef9b2ad b21afba04d282e44af2c0e40668f9d91aef9b2ad]<br />
* Contributors<br />
git shortlog -s -n 3..400alpha<br />
989 jcfr<br />
595 finetjul<br />
462 pieper<br />
403 naucoin<br />
170 ibanez<br />
157 partyd<br />
145 fedorov<br />
131 vrnova<br />
116 haehn<br />
97 alexy<br />
93 millerjv<br />
89 wjp@bwh.harvard.edu<br />
69 hjohnson<br />
50 pohl<br />
49 taox<br />
49 tokuda<br />
48 casey.goodlett<br />
43 francois_budin<br />
40 hliu<br />
37 lorensen<br />
29 lassoan<br />
18 sylvain<br />
16 hayes<br />
13 aylward<br />
10 pkarasev<br />
9 barre<br />
8 maddah<br />
8 vmagnotta<br />
7 Yong<br />
7 domibel<br />
6 clisle<br />
5 ygao<br />
4 awiles<br />
4 rjosest<br />
4 blezek<br />
3 johan.andruejol<br />
2 demian<br />
1 lantiga<br />
1 harveerar<br />
1 jvs<br />
1 lauren<br />
* Impact<br />
git diff --stat 3 400alpha<br />
4987 files changed, 1940991 insertions(+), 178447 deletions(-)<br />
* Features<br />
** Modules<br />
*** Annotation<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerCamerasModule.png Cameras]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QCLIModule-LinearRegistration.png CLI]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerDataModule.png Data]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerSliceControllersModule.png Slices]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerROIModule.png ROI]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerTractographyModule.png Tractography]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerTransformsModuleUI.png Transforms]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerVolumesModule.png Volumes]<br />
*** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerWelcomeModule.png Welcome]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerDataDialog.png Add]/[http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerSaveDataDialog.png Save] Data, [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerVolumesIODialog.png Add Volume], load/import scene dialogs<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QMRMLThreeDView.png 3D]/[http://wiki.slicer.org/slicerWiki/images/archive/9/92/20110109024032!QMRMLSliceWidget.png slice] views<br />
** Layouts: Conventional, FourUp, 3D/Red/Yellow/Green only layouts<br />
** [http://www.commontk.org/index.php/File:CtkPythonShell.png Python console]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QSlicerActionsDialog.png Keyboard shortcuts]<br />
** [http://wiki.slicer.org/slicerWiki/index.php/File:QMRMLSlicesControllerToolBar.png Manipulate Slice Views]<br />
<br />
== Slicer 4 ==<br />
* First commit<br />
** date 2009/10/07 <br />
** svn [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=10581 10581]<br />
** git [https://github.com/Slicer/Slicer/commit/553df44bbfb766a24edeb48622694f5303737322 553df44bbfb766a24edeb48622694f5303737322]</div>Sam.horvath