We use Jenkins to build our applications. You can have Jenkins slaves for different platforms. We also use cabal-dev to sandbox the builds, separating the environments for different executables. This solution does require one server for every OS you develop for, but I guess you need that anyway, for testing.
Erik On Thu, Jul 12, 2012 at 11:43 AM, Ivan Perez <ivanperezdoming...@gmail.com> wrote: > Hi, > I work developing multi-platform applications in Haskell. This poses > the following problem: I cannot compile binaries for windows from > linux (AFAIK). I "solved" this problem with the following > sledgehammer: I installed windows in a VM, I installed GHC, I > installed all the C/C++ headers & binaries of the libraries that I use > (Gtk, OpenGL, SDL, OpenCV, etc.) their Haskell counterparts, and I > created several scripts that connect to the VM using SSH, push the > changes to the repo, cabal clean & cabal install all my packages in > sequence without me having to even login into the windows machine. I > did this because I was unable to get GHC to run properly in Wine at > that time (over 2 years ago). > > This solution is still unsatisfactory because: > 1) It's slow, even though Windows itself works fine (well, as well as > windows can work, but it runs at a decent spped, I can play games and > all). > 2) When I update a library with lots of dependencies, or GHC itself, > I have to rebuild almost everything. This is particularly painful with > big packages like Gtk, for instance. Because I have to tell cabal > where headers and libraries are located, updating a package is almost > never an automatic process. I haven't always been able to make GHC > "just pick them up" properly with pkg-config. > 3) When I make a change in a library with lots of dependencies, > recompiling all the packages can take several hours. > > I don't think it's a problem with my machine: I'm giving a fair amount > of resources to windows, and I use a 3Ghz quadcore with 8GB of RAM. > > Another relevant fact is: I use this for commercial purposes. I have > customers, each requiring a completely different program, they do not > have infinite budgets and, if there's a problem in the compilation > process and something requires my attention and manual intervention > too often, my salary per hour can easily drop to a ridiculous amount. > If I'm going to redo this, I'd rather just redo it once. > > Any suggestions? How do you solve this kind of problem in your work > environment? > > Cheers, > Ivan > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe