On Fri, Mar 20, 2009 at 7:50 PM, Scott Ritchie scott@open-vote.org wrote:
For a while now I've been hoping someone would tackle a pet project of mine. It occurred to me that it would be a great summer of code project.
Basically, I want a magic script that can convert a visual studio project file into a winelib-aware, scons-powered, linux-compatible build system. This would make it very easy for a Windows-only Visual Studio project to be ported.
Now, normally, someone writing portable code would probably want to use scons from the start instead of Visual Studio, but Winelib throws a monkey wrench into this process by making formerly non-portable code suddenly Linux compatible.
As a good example application to test, the program eMule would be a good candidate - it's open source, works great in Wine, is built with Visual Studio, and has no good native equivalents.
I've added a work in progress wiki page on the Wine wiki here: http://wiki.winehq.org/SconsWine
I'm not sure whether this will function better as an scons summer of code project or a Wine one, nor am I sure where a student would be able to find a good mentor. Accordingly, I'm emailing both mailing lists, and hoping for some feedback, particularly if it doesn't sound feasible.
Thanks, Scott Ritchie
I replied later in this thread but I wanted to again make the case for a plugin to Monodevelop.
There are a few good reasons for starting with monodevelop. The website is at http://monodevelop.com/Main_Page
- Can read and write visual studio solution and project files. Enables a user to modify the project under MD without breaking VS. (Supports nested projects that Greg Noel mentioned recently). Consider the value of enabling a user to maintain their existing solution and project files. Having to convert build files means maintaining parallel build systems. - IDE similar to Visual studio, code completion etc (also has a command line build tool) - Plugin based architecture. Has a gui plugin manager that would make it easy for users to install a winelib plugin. - Written in c#, simplifies things like memory management
If the goal is to make porting to winelib easier, consider the value of providing a similar IDE experience to that on windows.
A lot of the discussion has focused on things like reading/writing or converting file formats. Using MD means having an existing path to follow in parsing and building the solutions and projects. I'm sure there are more important aspects to deal with other than the mechanics of file formats.
Chris