<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr">Hi Andreas, now that you mention, do you know how Slicer deals with
<b>Windows</b> for continuous integration? concretely in terms of:
<div>- deploy </div>
<div>- build</div>
<div>- test<br>
</div>
<div><br>
</div>
<div>Particularly interested in the deploying part right now. Do they use their own servers for deployment?<br>
Pablo</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Aug 3, 2017 at 12:29 PM, Pablo Hernández <span dir="ltr">
<<a href="mailto:pablo.hernandez.cerdan@outlook.com" target="_blank">pablo.hernandez.cerdan@outlook.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><span class="">
<div dir="ltr">Hi Matt, this is super helpful.<br>
I created a Dockerfie with all the dependencies, but I used Ubuntu 16.04 as base... so, I should compile with an older glib...<br>
I will definitely check AppLauncher.<br>
<br>
Thanks!<br>
<br>
Pablo<br>
<br>
<br>
<br>
</div>
</span>
<div class="gmail_extra"><br>
<div class="gmail_quote"><span class="">On Tue, Aug 1, 2017 at 2:36 AM, <a href="mailto:matt.mccormick@kitware.com" target="_blank">
matt.mccormick@kitware.com</a> <span dir="ltr"><<a href="mailto:matt.mccormick@kitware.com" target="_blank">matt.mccormick@kitware.com</a>></span> wrote:<br>
</span>
<div>
<div class="h5">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Pablo,<br>
<br>
Good questions -- C++ ITK/VTK/Qt package development on GitHub CI<br>
services is non-trivial.<br>
<br>
A common issue is timeout's, and a strategy is to use pre-built<br>
binaries of ITK/VTK/Qt.<br>
<br>
<br>
Regarding Linux package development, CircleCI is recommended with a<br>
custom Docker image that has ITK / VTK / Qt pre-built. Since glibc is<br>
forward compatible but not backwards compatible, a base image that<br>
uses the oldest version of glibc will generate the most compatible<br>
image. For many projects, we use CentOS 5 with a newer GCC, but I<br>
think only Qt4 can be built with this and not Qt5.<br>
<br>
The build can be generated on one Linux Docker image for glibc<br>
purposes and tested on another that provides the graphical context.<br>
See the CommonTK AppLauncher configuration as an example [1]. This<br>
uses the thewtex/opengl Docker image [2] to provide a portable,<br>
reproducible, CPU-based graphical testing environment [2].<br>
<br>
The CTK AppLauncher is also of interest as an alternative to<br>
windowsqtdeploy, etc. It is cross-platform, and provides the setup to<br>
use shared libraries and avoid Qt LGPL licensing issues.<br>
<br>
<br>
For Windows builds, the dockcross/windows-x64 (uses MXE/MinGW-x64)<br>
image could work nicely. A derived image that builds the MXE packages<br>
for ITK / VTK / Qt could be created [3]. Since dockcross also comes<br>
with WINE for testing, it may also be possible to use thewtex/opengl<br>
for testing on CircleCI (although I have never tried this).<br>
<br>
<br>
For macOS builds, TravisCI has Homebrew installed on their images, and<br>
ITK / VTK / Qt can be installed via Homebrew [4].<br>
<br>
<br>
HTH,<br>
Matt<br>
<br>
<br>
[1] <a href="https://github.com/commontk/AppLauncher/blob/5b592f1baaa7dd41d68e1cd56a2a82e298196ebe/circle.yml" rel="noreferrer" target="_blank">
https://github.com/commontk/Ap<wbr>pLauncher/blob/5b592f1baaa7dd4<wbr>1d68e1cd56a2a82e298196ebe/<wbr>circle.yml</a><br>
<br>
[2] <a href="https://github.com/thewtex/docker-opengl" rel="noreferrer" target="_blank">
https://github.com/thewtex/doc<wbr>ker-opengl</a><br>
<br>
[3] <a href="http://mxe.cc/" rel="noreferrer" target="_blank">http://mxe.cc/</a><br>
<br>
[4] <a href="https://blog.kitware.com/kitware-packages-on-os-x-with-homebrew/" rel="noreferrer" target="_blank">
https://blog.kitware.com/kitwa<wbr>re-packages-on-os-x-with-homeb<wbr>rew/</a><br>
<div>
<div class="m_-6356684895196144287h5"><br>
On Sun, Jul 30, 2017 at 8:02 AM, Andras Lasso <<a href="mailto:lasso@queensu.ca" target="_blank">lasso@queensu.ca</a>> wrote:<br>
> Currently, Slicer does not use AppVeyor for continuous integration on<br>
> Windows. Also, the full test suite of Slicer takes several hours to run, so<br>
> CircleCI only checks for build errors.<br>
><br>
><br>
><br>
> Andras<br>
><br>
><br>
><br>
> From: Pablo Hernández<br>
> Sent: Sunday, July 30, 2017 6:58<br>
> To: Insight-users<br>
> Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying<br>
> ITK+Vtk+Qt5<br>
><br>
><br>
><br>
> Hi,<br>
> I wonder what is the recommended approach for deploying a cross-platform<br>
> application involving ITK+Vtk+Qt nowadays with all the available tools:<br>
> docker containers, travis-ci, appveyor, circle-ci etc.<br>
><br>
> Is it still recommended to create a SuperBuild with all your dependencies as<br>
> ExternalProjects in CMake? How do you reduce the time it takes to build?<br>
> The build time for all my dependencies (Vtk (with qt5), ITK, boost) plus my<br>
> small app is surpassing the 60min limit in both, AppVeyor and Travis-CI. To<br>
> alleviate this, do you use docker?.<br>
><br>
> My main concern is Windows, I have seen that @thewtex and @jcfr have a repo<br>
> with closs-platform buildings ( <a href="https://github.com/dockcross/dockcross" rel="noreferrer" target="_blank">
https://github.com/dockcross/d<wbr>ockcross</a> ),<br>
> there is a Windows64 there with Mingw that might help. I have no idea if I<br>
> can generate windows binaries from AppVeyor using docker, or instead, I<br>
> generate them using that docker image with Wine+MinGw in Travis-CI.<br>
><br>
> Instead of CPack from CMake I have been thinking to use windowsqtdeploy,<br>
> linuxqtdeploy from Qt...<br>
><br>
> I have been looking to Slicer source code to see how they are doing it, and<br>
> it seems super structured, but not 100% sure how they generate their nightly<br>
> packages ( I guess it involves these docker images:<br>
> <a href="https://github.com/thewtex/SlicerDocker" rel="noreferrer" target="_blank">
https://github.com/thewtex/Sli<wbr>cerDocker</a>, but also in Windows?)<br>
><br>
> Maybe this is the not best forum to ask, but if you have any recommendations<br>
> for deploying a small GUI app based on ITK, I will be extremely grateful to<br>
> hear them. Thanks!<br>
><br>
> Cheers,<br>
> Pablo<br>
><br>
</div>
</div>
> ______________________________<wbr>_______<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">
http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
><br>
> Kitware offers ITK Training Courses, for more information visit:<br>
> <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">
http://www.kitware.com/product<wbr>s/protraining.php</a><br>
><br>
> Please keep messages on-topic and check the ITK FAQ at:<br>
> <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FA<wbr>Q</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">
http://public.kitware.com/mail<wbr>man/listinfo/insight-users</a><br>
><br>
</blockquote>
</div>
</div>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</body>
</html>