Support Policy
This document lists the tool chain and dependencies that are currently maintained (and recommended) for using CamiTK in a stable development environment.
Operating Systems
The CamiTK project team is currently using the following platforms on a daily/regular basis (all these platforms are used during continuous integration):
- Linux
- the latest stable version of Debian (aka
Debian stable
orstable
, currently Debian 12 bookworm). It is the base of many distributions - the latest LTS version of ubuntu (aka
Ubuntu LTS
orLTS
, currently Ubuntu 22.04 LTS - Jammy Jellyfish): it is one of the most used distribution among developers and is also the base of many other distributions
- the latest stable version of Debian (aka
- Windows
- Windows 10 and 11: it is the dominent OS on desktop computers and some drivers are only supported on Windows (and also there is not really any other version of Windows on the market!). The latest available major version should be supported.
MacOS is known to work, but there is unfortunately no simple way of maintaining a proper/automatic CI system for MacOS.
Debian unstable (aka sid
) is also tested weekly: it is the base for Debian testing (the future Debian stable) and the future Ubuntu where all official packaging should start.
Toolchain
The following toolchain is used by the CamiTK team:
What | Tool |
---|---|
Application Lifecycle Management | gitlab |
Source Versioning | git (in gitlab) |
Configuration & Build | CMake |
Automatic test | CMake |
Test report and dashboard | CDash and gitlab, gitlab-runner inside dockers (for both Linux and Windows) |
C++ Compiler | Linux = gcc Windows = msvc |
Packager | Debian package (.deb), zip archive |
Source distribution | gitlab |
Binary distribution | camitk website |
C++ Standard version
The latest CXX standard version supported by CamiTK is C++17.
Although CamiTK Community Edition is fully compatible with C++17, the currently enforced version (as stated in the CMake configuration) is C++14.
This is due to the use of XSD CXX and MSVC. This pre-compiled version of XSD CXX on Windows was build using an older version of MSVC. The code generated by XSD CXX from the CamiTK XML Schema therefore produces auto_ptr
(now deprecated). This in turns generates a FTBFS error on Windows.
But do feel free to enforce C++17 on your project (if you don’t use XSD CXX), it should work without any problem (even on Windows).
CMake version
The minimum required version of CMake is 3.13. CMake versions up to 3.25 were tested and are known to work. Newer versions should work as well (although they might produce warnings).
Libraries
The following list are the libraries dependencies required by the four CamiTK Community Edition CEP:
SDK
Name | Min Version(s) |
---|---|
Qt | >= 5.11 |
VTK | >= 7.1.1 |
XSD Code Synthesis | >= 4.0.0 |
xerces-c == 3.2 is itself a dependency of xsdcxx, and therefore is also required
Imaging CEP
Name | Min Version(s) |
---|---|
ITK | >= 4.13.2 |
gdcm | >= 3.0.6 |
Modeling CEP
This CEP has no external dependencies.
Tutorials CEP
This CEP has no external dependencies.
Validation Status Table
This table present all the toolchain and dependencies that are currently used in the CI docker images or that have been manually tested and certified to work.
Category | Name | OS | Version | Manual Validation | CI pipeline Validation |
---|---|---|---|---|---|
Toolchain | git | stable | 2.39.2 | OK | OK |
LTS | 2.34.1 | OK | OK | ||
Win10 | 2.31.1 (64-bit) | OK | OK | ||
CMake | stable | 3.25.1 | OK | OK | |
LTS | 3.22.1 | OK | OK | ||
Windows | 3.17.3 | OK | OK | ||
gitlab-runner | Linux | 15.10 | N/A | OK | |
Windows | 13.10 | N/A | OK | ||
gcc | stable | 11.3.0 | OK | OK | |
LTS | 10.4.0 | OK | OK | ||
clang | LTS | 11.1 | OK | not used in CI yet | |
MSVC++ | Win10 | 14.26 in Visual Studio 2019 version 16.6 (MSVC2019 v14.26.28801)1 | OK | OK | |
SDK Libraries | Qt | stable | 5.15.8 | OK | OK |
LTS | 5.15.3 | OK | OK | ||
Win10 | 5.15.02 (LTS) | OK | OK | ||
VTK | LTS | 7.1.1 | OK | OK | |
stable | 9.1.0 | OK | OK | ||
Win10 | 8.2.0 | OK | OK | ||
xerces-c | stable | 3.2.4 | OK | OK | |
LTS | 3.2.3 | OK | OK | ||
Win10 | 3.2.3 | OK | OK | ||
xsd cxx | stable | 4.0.0 | OK | OK | |
LTS | 4.0.0 | OK | OK | ||
Win10 | 4.0.0 | OK | OK | ||
Imaging CEP Libraries | ITK | stable | 5.2.1 | OK | OK |
LTS | 5.2.1 | OK | OK | ||
Win10 | 4.13.2 | OK | OK | ||
gdcm | stable | 3.0.21 | OK | OK | |
LTS | 3.0.10 | OK | OK | ||
Win10 | 3.0.6 | OK | OK |
1 Identifying the MSVC++ version (as an independent tool from Visual Studio) is difficult. See the wikipedia article, Microsoft Visual Studio workload and component IDs Microsoft documentation, the C++ build tools in the Visual Studio Build Tools component directory and Microsoft Visual Studio release notes for more information
2 VTK 8.2.0 has to be patched to compile with Qt 5.15.0 (it is missing a #include
)
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.