Skip to content

Commit 344c069

Browse files
authored
Merge pull request #139 from jhlegarreta/MiscellaneousFixesInIntroductionAndInstallation
ENH: Miscellaneous fixes in introduction and installation
2 parents 4c7999b + a5f9673 commit 344c069

File tree

2 files changed

+43
-113
lines changed

2 files changed

+43
-113
lines changed

SoftwareGuide/Latex/Introduction/Installation.tex

Lines changed: 7 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ \chapter{Configuring and Building ITK}
1717
systems, compilers, and hardware platforms including Microsoft Windows, Linux on
1818
various architectures, UNIX, macOS, and Mingw-w64. Dedicated community members and
1919
Kitware are committed to providing long-term support of the most prevalent
20-
development environments (Visual Studio, macOS, and Linux) for building ITK:
20+
development environments (e.g. Clang and Visual Studio) for building ITK.
2121

2222
Compiler variants will be supported for the duration that the associated operating
2323
system vendors commit to in their long-term stable platforms. For example the gcc
@@ -26,92 +26,19 @@ \chapter{Configuring and Building ITK}
2626
the Visual Studio series support will follow lifecycle deprecation of the compiler
2727
versions.
2828

29-
% List updated according to information provided here:
30-
% https://www.itk.org/Wiki/ITK_Release_4/Modern_C++#Fully_Committed_to_Support
31-
32-
For example as of 2019 the following time schedule is expected for supporting
33-
these compiler environments.
34-
29+
For example, the following development and compiler environments are supported
30+
in ITK for the date at which the document was generated:
3531
%%
3632
%% The following compilers should have nightly dashboard in the "Expected builds"
3733
%% to ensure that support is maintained.
3834
%%
3935
\begin{itemize}
40-
\item GCC
41-
\begin{itemize}
42-
\item 4.8.2 (From 2015-until 2020) %% June 26, 2015 -- build_name "Ubuntu-g++-4.8.2-Release"
43-
%\item 5.x %% Release date April 22, 2015
44-
%\item 6.x %% April 27, 2016
45-
%\item 7.x %% May 2, 2017
46-
\end{itemize}
47-
\item Visual Studio % https://en.wikipedia.org/wiki/Microsoft_Visual_Studio
48-
\begin{itemize}
49-
\item 2015 [v14.X]
50-
\item 2017 [v15.X]
51-
\end{itemize}
52-
%% -we have no nightly builds
53-
%% \item Intel Compiler Suite %% https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler
54-
%% \begin{itemize}
55-
%% \item 11.x % Released in 2008
56-
%% \item 12.x (including macOS release) % Released in 2011
57-
%% \item 13.x %Released in 2012
58-
%% \item 14.x %Released in 2013
59-
%% \item 15.x %Released in 2014
60-
%% \item 16.x %Released in 2015
61-
%% \item 17.x does not compile cleanly with macOS % Released in 2016
62-
%% \item 18.x % $Released in 2018
63-
%% \end{itemize}
64-
65-
%% -- we have no nightly builds in Expected, only Exotic builds, and those are nto passing
66-
%% \item Win32-mingw-gcc-4.5
67-
\item Apple Clang
68-
\begin{itemize}
69-
\item Apple clang-600.0.56 (From 2013 - until 2019) %% mini9.nlm build_name "MacOSX-Xcode6"build perhaps has this compiler -- listed as unkown
70-
\item Apple LLVM version 8.1.0 (clang-802.0.42) (From 2016 - until 2021) %% Released in 2016, build_name "MacOSX-Clang-Ninja-Release"
71-
\end{itemize}
72-
\item Clang
73-
\begin{itemize}
74-
\item 3.3 (From 2013 - until 2018) % 17 Jun 2013 -- no build.
75-
%%\item 4.0 % 13 March 2017
76-
%%\item 5.0 % 7 September 2017
77-
\end{itemize}
36+
\item GCC 4.8 and newer
37+
\item Visual Studio 2015, 2017, 2019, toolsets 14.x, 15.0, 16.0
38+
\item Apple Clang 7.0 and newer
39+
\item Clang 6 and newer
7840
\end{itemize}
7941

80-
81-
Table~\ref{tab:CompileSupportTimeline} prints the compiler support timeline in
82-
ITK at the time of writing this guide.
83-
84-
\begin{table}[h]
85-
\begin{center}
86-
\resizebox{\textwidth}{!}{
87-
\begin{tabular}{c c c c c c c c c c c c c c c c c}
88-
\toprule
89-
Compiler & 2011 & 2012 & 2013 & 2014 & 2015 & 2016 & 2017 & 2018 & 2019 & 2020 & 2021 & 2022 & 2023 & 2024 & 2025 & 2026 \\
90-
\midrule
91-
Visual Studio 10 & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{yellow} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & & \\
92-
GCC 4.2 & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{yellow} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & & & & & \\
93-
GCC 4.4 & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{yellow} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & \cellcolor{red} & & \\
94-
GCC 4.9 & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{itkTableCellGreen} & \cellcolor{yellow} & \cellcolor{red} \\
95-
\bottomrule
96-
\end{tabular}
97-
}
98-
\end{center}
99-
\itkcaption[ITK Compiler Support Timeline]{ITK Compiler Support Timeline.
100-
\label{tab:CompileSupportTimeline}}
101-
\end{table}
102-
103-
\textbf{Legend}:
104-
105-
\begin{table}[h]
106-
\begin{center}
107-
\begin{tabular}{l}
108-
\cellcolor{itkTableCellGreen}Fully supported \\
109-
\cellcolor{yellow}Phase out \\
110-
\cellcolor{red}If community supported \\
111-
\end{tabular}
112-
\end{center}
113-
\end{table}
114-
11542
If you are currently using an outdated compiler this may be an excellent excuse
11643
for upgrading this old piece of software! Support for different platforms is
11744
evident on the ITK quality dashboard (see Section \ref{sec:CDash} on page

SoftwareGuide/Latex/Introduction/Introduction.tex

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ \chapter{Welcome}
2222
materials, which provide cookbook recipes that concisely demonstrate how to
2323
achieve a given task, the Doxygen pages, which document the specific algorithm
2424
parameters, and the knowledge of the many ITK community members (see Section
25-
\ref{sec:AdditionalResources} on page \pageref{sec:AdditionalResources}.)
25+
\ref{sec:AdditionalResources} on page \pageref{sec:AdditionalResources}).
2626

2727
The Insight Toolkit is an open-source software system. This means that the
2828
community surrounding ITK has a great impact on the evolution of the software.
@@ -54,27 +54,26 @@ \section{How to Learn ITK}
5454
The key to learning how to use ITK is to become familiar with its palette of
5555
objects and the ways to combine them. There are three categories of
5656
documentation to help with the learning process: high level guidance material
57-
(the Software Guide), "cookbook" demonstrations on how to achieve concrete
57+
(the Software Guide), ``cookbook'' demonstrations on how to achieve concrete
5858
objectives (the examples), and detailed descriptions of the
5959
application programming interface (the
6060
Doxygen\footnote{\url{https://itk.org/Doxygen/index.html}} documentation). These
6161
resources are combined in the three recommended stages for learning ITK.
6262

6363
In the first stage, thoroughly read this introduction, which provides an
6464
overview of some of the key concepts of the system. It also provides guidance
65-
on how to build and install the software. After running your first "hello
66-
world" program, you are well on your way to advanced computational image
65+
on how to build and install the software. After running your first ``hello
66+
world'' program, you are well on your way to advanced computational image
6767
analysis!
6868

6969
The next stage is to execute a few examples and gain familiarity with the
7070
available documentation. By running the examples, one can gain confidence
7171
in achieving results and is introduced the mechanics of the software system.
72-
There are three example resources,
72+
There are two example resources,
7373
\begin{enumerate}
7474
\item the \code{Examples} directory of the ITK source code repository
7575
\footnote{See Section~\nameref{sec:DownloadingITK} on
7676
page~\pageref{sec:DownloadingITK})}.
77-
\item the Examples pages on the ITK Wiki \footnote{\url{https://itk.org/Wiki/ITK/Examples}}
7877
\item the Sphinx documented ITK Examples \footnote{\url{https://itk.org/ITKExamples}}
7978
\end{enumerate}
8079
To gain familiarity with the available documentation, browse the sections
@@ -116,55 +115,59 @@ \section{Software Organization}
116115

117116
The \code{ITK} repository contains the following subdirectories:
118117
\begin{itemize}
119-
\item \code{ITK/Modules} --- the heart of the software; the location
120-
of the majority of the source code.
121118
\item \code{ITK/Documentation} --- migration guides and Doxygen infrastructure.
122119
\item \code{ITK/Examples} --- a suite of simple, well-documented
123120
examples used by this guide, illustrating important
124121
ITK concepts.
125-
\item \code{ITK/Testing} --- a collection of the MD5 files, which are
126-
used to link with the ITK data servers to download test data. This test data is
127-
used by tests in \code{ITK/Modules} to produce the ITK Quality Dashboard using
128-
CDash.
122+
\item \code{ITK/Modules} --- the heart of the software; the location
123+
of the majority of the source code.
124+
\item \code{ITK/Testing} --- a collection of the test files, including
125+
raw binary, and MD5 and SHA512 hash files, which are used to link
126+
with the ITK data servers to download test data. This test data is
127+
used by tests in \code{ITK/Modules} to produce the ITK Quality
128+
Dashboard using CDash.
129129
(see Section \ref{sec:CDash} on page \pageref{sec:CDash}.)
130-
\item \code{Insight/Utilities} --- the scripts that support source code development. For example, CTest and Doxygen support.
131-
\item \code{Insight/Wrapping} --- the wrapping code to build interfaces between the C++ library and various interpreted languages (currently Python is supported).
130+
\item \code{ITK/Utilities} --- the scripts that support source code
131+
development. For example, CTest and Doxygen support.
132+
\item \code{ITK/Wrapping} --- the wrapping code to build interfaces
133+
between the C++ library and various interpreted languages (currently
134+
Python is supported).
132135
\end{itemize}
133136

134137
The source code directory structure---found in \code{ITK/Modules}---is
135138
the most important to understand.
136139
\begin{itemize}
140+
\item \code{ITK/Modules/Bridge} --- classes used to connect with the
141+
other analysis libraries or visualization libraries, such as
142+
OpenCV\footnote{\url{http://opencv.org}} and
143+
VTK\footnote{\url{http://www.vtk.org}}.
144+
\item \code{ITK/Modules/Compatibility} --- collects together classes
145+
for backwards compatibility with ITK Version 3, and classes that are
146+
deprecated -- i.e. scheduled for removal from future versions of ITK.
137147
\item \code{ITK/Modules/Core} --- core classes, macro definitions,
138148
type aliases, and other software constructs central to ITK. The classes
139149
in \code{Core} are the only ones always compiled as part of ITK.
140-
\item \code{ITK/Modules/ThirdParty} --- various third-party libraries
141-
that are used to implement image file I/O and mathematical algorithms.
142-
(Note: ITK's mathematical library is based
143-
on the VXL/VNL software
144-
package\footnote{\url{http://vxl.sourceforge.net}}.)
150+
\item \code{ITK/Modules/External} --- a directory to place in development
151+
or non-publicized modules.
145152
\item \code{ITK/Modules/Filtering} --- image processing filters.
146153
\item \code{ITK/Modules/IO} --- classes that support the reading
147154
and writing of images, transforms, and geometry.
148-
\item \code{ITK/Modules/Bridge} --- classes used to connect with the
149-
other analysis libraries or visualization libraries, such as
150-
OpenCV\footnote{\url{http://opencv.org}} and
151-
VTK\footnote{\url{http://www.vtk.org}}.
155+
\item \code{ITK/Modules/Numerics} --- a collection of numeric modules, including
156+
FEM, Optimization, Statistics, Neural Networks, etc.
152157
\item \code{ITK/Modules/Registration} --- classes for registration of
153158
images or other data structures to each other.
159+
\item \code{ITK/Modules/Remote} --- a group of modules distributed outside
160+
of the main ITK source repository (most of them are hosted on \url{github.com})
161+
whose source code can be downloaded via CMake when configuring ITK.
154162
\item \code{ITK/Modules/Segmentation} --- classes for segmentation of
155163
images or other data structures.
164+
\item \code{ITK/Modules/ThirdParty} --- various third-party libraries
165+
that are used to implement image file I/O and mathematical algorithms.
166+
(Note: ITK's mathematical library is based
167+
on the VXL/VNL software
168+
package\footnote{\url{https://vxl.github.io}}).
156169
\item \code{ITK/Modules/Video} --- classes for input, output and processing
157170
of static and real-time data with temporal components.
158-
\item \code{ITK/Modules/Compatibility} --- collects together classes
159-
for backwards compatibility with ITK Version 3, and classes that are
160-
deprecated -- i.e. scheduled for removal from future versions of ITK.
161-
\item \code{ITK/Modules/Remote} --- a group of modules distributed outside
162-
of the main ITK source repository (most of them are hosted on \url{github.com})
163-
whose source code can be downloaded via CMake when configuring ITK.
164-
\item \code{ITK/Modules/External} --- a directory to place in development
165-
or non-publicized modules.
166-
\item \code{ITK/Modules/Numerics} --- a collection of numeric modules, including
167-
FEM, Optimization, Statistics, Neural Networks, etc.
168171
\end{itemize}
169172

170173
The Doxygen documentation is an essential resource when working with ITK, but

0 commit comments

Comments
 (0)