shogun icon indicating copy to clipboard operation
shogun copied to clipboard

Provide a Windows installer

Open jondo opened this issue 10 years ago • 14 comments

jondo avatar Sep 30 '14 08:09 jondo

@jondo do you use windows? We lack of someone who is able to build such a thing.

karlnapf avatar Oct 13 '14 12:10 karlnapf

I also cannot do it - but please keep this open as a (possibly low priority) feature request.

jondo avatar Oct 13 '14 16:10 jondo

Ok got it

karlnapf avatar Oct 24 '14 23:10 karlnapf

Is it possible to build Shogun on Windows? Specifically the Ruby bindings

macumber avatar Jun 30 '16 17:06 macumber

I think it is possible if you know what you are doing and are ready to spend a few nights hacking cmake. Otherwise, sadly, no. We want to change this but the priority compared to other features is dropping .... sorry

karlnapf avatar Jun 30 '16 19:06 karlnapf

I have experience with SWIG and Cmake but I can't get a starting build of the non-Ruby components. I tried initializing a build environment using Ruby's DevKit then generating Unix Makefiles but the build failed right away on Eigen.

macumber avatar Jun 30 '16 20:06 macumber

The first big step would be to build libshogun without any plugins. THAT would already be giant step forward. Interested? We can definitely help!

karlnapf avatar Jun 30 '16 20:06 karlnapf

Here is what I did to set up my environment:

"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsal
l.bat"

"c:\DevKit\devkitvars.bat"
Adding the DevKit to PATH...

"c:\Program Files (x86)\CMake\bin\cmake-gui.exe" # configure Unix Makefiles, Disable meta examples

"gcc --version"
gcc (rubenvb-4.7.2-release) 4.7.2

SET PATH=%PATH%;C:\Git-1.9.5\Git\bin

SET PATH=%PATH%;"C:\Program Files\TortoiseSVN\bin"

# "c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" shogun.sln

Here is summary of configuration:

===================================================================================================================
Summary of Configuration Variables

-- The following OPTIONAL packages have been found:

 * GDB
 * OpenMP
 * Threads
 * Doxygen (required version >= 1.8.6)

-- The following REQUIRED packages have been found:

 * PythonInterp

-- The following OPTIONAL packages have not been found:

 * CCache
 * Mosek
 * BLAS
 * LAPACK
 * GLPK
 * CPLEX
 * ARPACK
 * Eigen3 (required version >= 3.1.2)
 * ViennaCL (required version >= 1.5.0)
 * NLopt
 * LpSolve
 * ColPack
 * Sphinx
 * LibXml2
 * HDF5
 * CURL
 * ZLIB
 * BZip2
 * LibLZMA
 * SNAPPY
 * LZO
 * Spinlock
 * Protobuf

-- The following REQUIRED packages have not been found:

 * OpenCL

===================================================================================================================
Enabled Integration
  OpenCV Integration is OFF      - enable with -DOpenCV=ON
===================================================================================================================
Enabled Interfaces
  libshogun is ON
  python modular is OFF      - enable with -DPythonModular=ON
  octave modular is OFF      - enable with -DOctaveModular=ON
  java modular is OFF    - enable with -DJavaModular=ON
  perl modular is OFF    - enable with -DPerlModular=ON
  ruby modular is OFF    - enable with -DRubyModular=ON
  csharp modular is OFF      - enable with -DCSharpModular=ON
  R modular is OFF       - enable with -DRModular=ON
  lua modular is OFF     - enable with -DLuaModular=ON


------------------------------------
Shogun will be built GPL3 compatible
------------------------------------


Enabled legacy interfaces
  cmdline static is OFF      - enable with -DCmdLineStatic=ON
  python static is OFF   - enable with -DPythonStatic=ON
  octave static is OFF   - enable with -DOctaveStatic=ON
  matlab static is OFF   - enable with -DMatlabStatic=ON
  R static is OFF        - enable with -DRStatic=ON
===================================================================================================================
To compile shogun type
  make

To install shogun to C:/Program Files (x86)/shogun type
  make install

or to install to a custom directory
  make install DESTDIR=/my/special/path
  (or rerun cmake with -DCMAKE_INSTALL_PREFIX=/my/special/path) to just change the prefix
===================================================================================================================
Configuring done

Here is the build error I get:

E:\shogun\build>make
[  0%] Built target Eigen3
[  1%] Generating version header
[  1%] Built target version
Scanning dependencies of target class_list
**[  1%] Generating E;c:\DevKit\shogun\src\shogun\base\class_list.cpp**
/bin/sh: C:/Users/dmacumbe/AppData/Local/Continuum/Miniconda2/python.exe: Bad fi
le number
make[2]: *** [../src/shogun/base/class_list.cpp] Error 126
make[2]: *** Deleting file `../src/shogun/base/class_list.cpp'
make[1]: *** [src/shogun/CMakeFiles/class_list.dir/all] Error 2
make: *** [all] Error 2

Seems like there is some code generation happening and the paths are messed up on windows:

**[ 1%] Generating E;c:\DevKit\shogun\src\shogun\base\class_list.cpp**

What is the right channel for communication if I work on this further? Make a fork of shogun and talk there?

macumber avatar Jun 30 '16 21:06 macumber

  • channel of communication: irc and github
  • way of sharing information, github gist
  • yeah fork shogun, and send pull requests against our develop branch, we can then discuss your suggestions there
  • @vigsterkr might have some comments on the particular errors you have there
  • messed up path names should be easy to fix actually

karlnapf avatar Jun 30 '16 22:06 karlnapf

Cool thanks, I tried building with MSVC and saw some totally different errors. Code referencing a dead repo 'http://msinttypes.googlecode.com/svn/trunk' and other errors. Do you have any idea how out of state MSVC builds are? Is it best to try cross-compiling with gcc?

macumber avatar Jun 30 '16 22:06 macumber

Taking a crack at it https://github.com/macumber/shogun/tree/build_windows

macumber avatar Jun 30 '16 23:06 macumber

I think we had a cygwin build running previously http://buildbot.shogun-toolbox.org/waterfall I did not do that, but @sonney2k maybe he has ideas. Come say hello in irc

karlnapf avatar Jul 01 '16 10:07 karlnapf

we should resurrect this bug as starting with 8fdf278dca78f98d4e06058a5ce3defd560d697d we natively support MS Windows build. i reckon we should create a package and publish it on (nuget)[https://www.nuget.org] using appveyor

vigsterkr avatar Jan 28 '17 09:01 vigsterkr

There is a vcpkg port for Windows. Would be great to have some CI running to make sure examples work fine there.

jjYBdx4IL avatar Jun 28 '22 18:06 jjYBdx4IL