[ITK-users] [ITK] Recommended approach for cross-platform deploying ITK+Vtk+Qt5

Matt McCormick matt.mccormick at kitware.com
Mon Jul 31 10:36:25 EDT 2017


Hi Pablo,

Good questions -- C++ ITK/VTK/Qt package development on GitHub CI
services is non-trivial.

A common issue is timeout's, and a strategy is to use pre-built
binaries of ITK/VTK/Qt.


Regarding Linux package development, CircleCI is recommended with a
custom Docker image that has ITK / VTK / Qt pre-built. Since glibc is
forward compatible but not backwards compatible, a base image that
uses the oldest version of glibc will generate the most compatible
image. For many projects, we use CentOS 5 with a newer GCC, but I
think only Qt4 can be built with this and not Qt5.

The build can be generated on one Linux Docker image for glibc
purposes and tested on another that provides the graphical context.
See the CommonTK AppLauncher configuration as an example [1]. This
uses the thewtex/opengl Docker image [2] to provide a portable,
reproducible, CPU-based graphical testing environment [2].

The CTK AppLauncher is also of interest as an alternative to
windowsqtdeploy, etc. It is cross-platform, and provides the setup to
use shared libraries and avoid Qt LGPL licensing issues.


For Windows builds, the dockcross/windows-x64 (uses MXE/MinGW-x64)
image could work nicely. A derived image that builds the MXE packages
for ITK / VTK / Qt could be created [3]. Since dockcross also comes
with WINE for testing, it may also be possible to use thewtex/opengl
for testing on CircleCI (although I have never tried this).


For macOS builds, TravisCI has Homebrew installed on their images, and
ITK / VTK / Qt can be installed via Homebrew [4].


HTH,
Matt


[1] https://github.com/commontk/AppLauncher/blob/5b592f1baaa7dd41d68e1cd56a2a82e298196ebe/circle.yml

[2] https://github.com/thewtex/docker-opengl

[3] http://mxe.cc/

[4] https://blog.kitware.com/kitware-packages-on-os-x-with-homebrew/

On Sun, Jul 30, 2017 at 8:02 AM, Andras Lasso <lasso at queensu.ca> wrote:
> Currently, Slicer does not use AppVeyor for continuous integration on
> Windows. Also, the full test suite of Slicer takes several hours to run, so
> CircleCI only checks for build errors.
>
>
>
> Andras
>
>
>
> From: Pablo Hernández
> Sent: Sunday, July 30, 2017 6:58
> To: Insight-users
> Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying
> ITK+Vtk+Qt5
>
>
>
> Hi,
> I wonder what is the recommended approach for deploying a cross-platform
> application involving ITK+Vtk+Qt nowadays with all the available tools:
> docker containers, travis-ci, appveyor, circle-ci etc.
>
> Is it still recommended to create a SuperBuild with all your dependencies as
> ExternalProjects in CMake? How do you reduce the time it takes to build?
> The build time for all my dependencies (Vtk (with qt5), ITK, boost) plus my
> small app is surpassing the 60min limit in both, AppVeyor and Travis-CI. To
> alleviate this, do you use docker?.
>
> My main concern is Windows, I have seen that @thewtex and @jcfr have a repo
> with closs-platform buildings ( https://github.com/dockcross/dockcross ),
> there is a Windows64 there with Mingw that might help. I have no idea if I
> can generate windows binaries from AppVeyor using docker, or instead, I
> generate them using that docker image with Wine+MinGw in Travis-CI.
>
> Instead of CPack from CMake I have been thinking to use windowsqtdeploy,
> linuxqtdeploy from Qt...
>
> I have been looking to Slicer source code to see how they are doing it, and
> it seems super structured, but not 100% sure how they generate their nightly
> packages ( I guess it involves these docker images:
> https://github.com/thewtex/SlicerDocker, but also in Windows?)
>
> Maybe this is the not best forum to ask, but if you have any recommendations
> for deploying a small GUI app based on ITK, I will be extremely grateful to
> hear them. Thanks!
>
> Cheers,
> Pablo
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>


More information about the Insight-users mailing list