Skip to content

Update Windows toolchain and docker fo CI

As a CamiTK developer
I would like to have a new toolchain on windows and a new docker image for CI
So that I spend less time on installing and building CamiTK CE
As a CEP developer on Windows
I would like to have a simpler way to install the toolchain and develop my extension
So that I spend less time on the setup and have less difficulties to develop on Windows

Description / Overview

Windows setup is fastidious and can have side effect on the installation (or the local installation can have side effect on the CEP development, e.g. installation of some LaTeX software provides Qt DLL that conflict with the CamiTK setup).

Some package/dev environment setup systems exist on Windows

This issue contains many aspect and:

  • must answer the question : Should we move to msys2 or vcpkg or stay on chocolatey+MSVC?
  • must provide a new toolchain documentation
  • must provide a new docker image for CI
  • (if possible) must provide a new documentation on how to use the docker image to develop on windows without installing software

See:

If MSys2 is adopted:

  • All dependencies library should be available (xerces-c,...), including some that are not directly used in CCE but are known to be used/supported in CEPs (e.g., opencv, SDL2,...)
  • MSC++ will not be used as the default compiler on windows (subsidiary question: does it have other side effects? Any impact on the future python binding?)
  • that reinforce the recommendation of vscode as an ide on all platform (see #181), including windows mingw for vscode documentation

Additional questions

  • impact CI performance (subsidiary question: is there a way to optimize the docker handling by windows? Is win11 better than win10 for handling containerized toolchain?)
  • can the window docker image be used to build and run CEPs by CEP developers. That would certainly ease the setup process and will have zero impact on the developer installation. Iit is probably easy to build a CEP from vscode + devcontainer using the window docker image, but it might be harder/not possible/not efficient to run camitk-imp from the docker container → that remain to be tested!
  • CMake macros. Some CamiTK CMake code (configuration and CI) depends on checking if the compiler is MSVC. There might be some problems to fix there as well if changing to mingw64.
  • using mingw64 might automatically close #64 (closed) (declimport/declexport). But then another decision will have to be taken about what to do with legacy code (remove the macros for managing declimport/declexport or not). And also a decision has to be taken for using the CMake property from now on...

Acceptance tests

  • window docker image for CI (updated or renewed)
  • update website setup documentation
  • update support policy web page
  • in the develop branch check CMakeLists.txt for minimal version and check if update is required
  • update release documentation to add a step that uses the Windows toolchain and solve the compiler/linker warnings before adding the release tag (same as the clang)
  • in the develop branch move version requirements for the tests (VTK and ITK version) and update test file if required. For instance : component-stl-level3-2, vtkimage... (search for REQUIRES "${VTK_VERSION}9.1.0 and REQUIRES "${ITK_VERSION}5.3.0
  • Internal document to explain the decision
  • (optional) re-generate the CamiTK5.2 package using the new image (to test the release process for future release)
Edited by Emmanuel Promayon