Windows support

Issue #47 new
Jacob Hinkle created an issue

This is a big issue, but I have begun to assess what will be involved. See this wiki page.

I think cygwin is the easiest way to get up and running. Most of the prereqs can be isntalled through the cygwin package manager. Only boost needed manual installation, but amounts to downloading a tarball and unzipping. If I can figure out how to automatically install cygwin packages from bash inside cygwin, then I may just write a script that installs everything needed, including git, then checks out pyca and configures/builds it. None of that is complicated once the cygwin-specific part is done.

I'll post related issues with reference to this one, but currently I don't have visual C++ to test using their compiler within cmake to compile kernels. Reading briefly online it seems this is the only way, since cygwin gcc is for some reason unable to compile cuda kernels. Also my version of ITK is not building, but I think that should be straightforward to fix. I'll post my findings to the wiki page as we go.

I'm creating a windows branch of pyca until I get a solid strategy for compilation on windows. We need slightly more than raw developer-level ease of use for this, so I'll consider this issue addressed when I'm able to pick up a clean windows install and follow the step by step wiki instructions to building and running the pyca example code.

When this is addressed, it may be version worthy. With all the other updates (memory manager, etc), we should have that talk soon anyway.

Comments (11)

  1. Sam Preston

    Since it looks like visual studio will be necessary to get the cuda kernels compiled (and because VS is the preferred way for most people to compile windows code) it would be good to keep a list of the *nix-specific parts of the build -- I know there are a few bash scripts, a hack to create a Makefile-specific target, and the use of the command-line C preprocessor for parsing .tpl files, but there are probably some things I can't think of. If we have a list of these things, at least we know what we'd have to change for a pure windows build.

  2. Jacob Hinkle reporter

    I just added one little hack to GenPythonModule.sh so far: it's cygwin specific. Unfortunately, it looks like ITK has deprecated cygwin support

    I am going to try getting the prereqs installed using mingw instead. This may or may not be a huge PITA. I don't have visual studio right now so i'm hoping this works.

  3. Jacob Hinkle reporter

    With npz support, ITK is truly optional. I am checking that a merge of the windows and SplatWorld branches works in cygwin, albeit with reduced functionality.

  4. Sam Preston

    It may be time to set the USE_ITK CMake variable to false by default. No sense complaining about missing ITK for everyone.

  5. Jacob Hinkle reporter

    Planning to check out visual studio express compilation using cmake when i get some spare time. If there's no showstoppers there, then the most no-fuss option on windows is to use Enthought's python distribution, which allows easy installation of scipy/numpy/matplotlib, along with cuda/itk/cmake windows distributions and VSE to tie it all together and build pyca.

  6. Sam Preston

    That would be awesome, having CMake generate a working visual studio solution file is the right way to build on Windows. As I mentioned before, I know there will be some things that will have to be reworked to build without cygwin (shell scripts and commands that are called by the make system), but it may work as-is with cygwin installed.

  7. Jacob Hinkle reporter

    Ideally we'd even have a precompiled python package, that could be incorporated into enthought's repo at some point. maybe v0.2

  8. Sam Preston

    Yeah, the problem we keep running into with this is the dependence on cuda -- I don't think we can just distribute the cuda runtime as part of the package and have it work, so it's dependent on the version of cuda the user has installed.

  9. Log in to comment