Skip to content

Wip/jehan/cross build ci

Jehan requested to merge Jehan_ZeMarmot/siril:wip/Jehan/cross-build-CI into master

Ok so here is the CI build for Windows!

I also took the opportunity to fix another bug in your build system, when building kplot (this bug stayed hidden when I was building locally by pure chance! But on a much more restricted build environment in the CI, it popped up in my face!). That's the second commit as you can see, which is not about the CI but the build system (if you prefer me to make a separate MR for this, just tell me).

Artefacts

In the end of the CI build, in the Windows 64 job, you will have 3 folders in the job artefacts:

  • _build/: the build artefacts for siril (kplot included)
  • _deps/: right now only build artefacts for librtprocess/ which is the only dependency which is not pre-built (note that the CI still use the submodule inside the Siril repository, but simply the build is done in its own step, as it should to do it properly).
  • siril/: in there is the install prefix. This is the only folder you need to care about for running/testing Siril on Windows.

Of course, in case the build fails, maybe only _deps/ will be present (if failure occurred during librtprocess/ build).

Running Siril

I have actually tested Siril in a Windows VM. When I say "tested", I only mean I started it, a GUI looking OK popped up. I didn't really play with it much to see if any issue arises. But well, it seems to have compiled well enough. :-)

To make it work, you still have 2 commands to run on Windows, after installation of the siril/ folder, from the siril/bin/ folder, otherwise the executable won't run:

glib-compile-schemas.exe ..\share\glib-2.0\schemas
gdk-pixbuf-query-loaders.exe --update-cache

(see man glib-compile-schemas gdk-pixbuf-query-loaders to know more)

About glib-compile-schemas.exe, I am not sure if it has to be run on Windows and from the install path (i.e. can it be prepared before-hand using the linux glib-compile-schemas?), and just shipped together.

About gdk-pixbuf-query-loaders.exe, the reason is that it creates a cache file with absolute paths, which is why it needs to be done at install time (check out the generated file siril/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache, it will have a bunch of absolute paths in Windows style). Now since it is just a text file, it is very possible to generate it yourself at install time for instance. Or maybe it could even work with relative paths, hence prepared at build, never tested to edit it manually.

In any case, you don't have to actually keep these 2 executables in the target machine once these commands are done at install time.

Merge request reports