Introduction to the 'Windows build system' GSoC 2011 project
Hello all! With Google Summer of Code 2011 already in its third week, I'd like to briefly introduce what I'll be working on the coming months. My project is named rather broadly 'Improve Mapnik Windows build system'. Building Mapnik on Windows is quite involved, especially (but not exclusively) when using Visual Studio. Making this a lot easier is the main focus of my project. I am exploring ways to make Windows support as painless as possible both for Mapnik developers and users who want to run Mapnik on Windows, or use it in their (C++) applications.
Although Mapnik itself isn't hard to build, the long list of libraries that are used makes getting a working Mapnik binary on Windows non-trivial. To address this, I'm building a system that will allow us to generate Visual Studio project files for all the libraries that are used by Mapnik and for various versions of Visual Studio. This system consists of a tool that takes a specification of the characteristics of the build steps of a library and generates .vcproj files out of it. It also generates solution files with dependencies between the projects and will let us ship Mapnik with a complete working set of Visual Studio build files so that writing an application that uses Mapnik for its map rendering will be as simple as downloading the Mapnik source, downloading and unzipping the dependent library sources into the right directoy and hit 'Build' in the VS IDE. It will let developers choose whether to use static or dynamic libraries and provides hooks for customisation, in situations where needed.
Over the last couple of months since first posting rough build instructions for Visual Studio on the Mapnik trac wiki, I've received a number of emails from people trying to get it to work and with problems they encountered. For one this shows that there is an interest in using Mapnik on Windows and from Visual Studio, and secondly it helps me to see what kind of problems developers run into. So if you are a developer using or wanting to use Mapnik on Windows or with Visual Studio, don't hesitate to contact me with your experiences - it's very helpful! If possible /cc the mapnik-developers list so others can learn what you are working on.
Apart from this, there are some other points planned for improving the build system and Windows support for Mapnik. First there is checking the build of Mapnik 2 on Windows, so that it will work well when it's released. Then there is setting up an automated build environment so that we can be alerted sooner rather than later when some change brakes something in the build on one of the supported platforms.
Another thing that will help Windows developers is a way to use Mapnik from .Net languages. Although a full .Net wrapper is too much work besides all the other issues, hopefully I can make a meaningful start and open the door for .Net developers to leverage Mapnik in their applications.
As you can see, lots of plans. And again, if you have an interest in any of these topics, please let me or the mailing list know. Feedback from users is crucial to measure if I'm going in the right direction.Posted by Roel on 09 June 2011.