neurospin / neuro-forge

Provisioning of neuroimaging workspace for image processing and data analysis
1 stars 0 forks source link

Make neuro-forge compatible with Windows #23

Open sapetnioc opened 1 day ago

sapetnioc commented 1 day ago

The goal of having a native Windows version is not only to make neuro-forge software available without using WSL2 but also to assess the possibility to compile on systems without gcc but with clang (Windows and Mac). If it works on Windows it is likely that it will also work on Mac.

For the base neuro-forge infrastructure, minimal changes in the project are required to make it work on Windows (there is a win-64 branch for that). But package creation and publication is more complex.

First, rsync does not exists on Windows therefore package publication will have to be done on another system for now.

Then, neuro-forge needs a system to select packages to create according to platform. For instance gadgetron can only be built on Linux. I do not know if rattler-build has a standard way to specify a target platform that neuro-forge could use. I will investigate the use of a variants.yaml file. An other possibility (not very clean but easy to implement) would be to add a neuro-forge specific comment in the recipe.yaml to disable building on some platforms.

Finally, recipes may have to be adapted according to the various target platforms. rattler-build recipes can do that.

sapetnioc commented 1 day ago

There is a possibility to add custom information in an extra dictionary in rattler-build's recipe.yaml file. neuro-forge will consider a neuro-forge entry in extra. If it contains a platforms item, the building platform must be included in this list for the package to be build.

For instance, to restrict a package to be build only on a Linux host, one can use:

extra:
    neuro-forge:
        platforms: ["linux-64"]