Wednesday, November 12, 2008

Compiling Dia under Windows

This week I was forced to compile Dia (opensource diagram drawing program) from sources under Windows XP. I have found recently updated How To (see this). But soon I have ran into troubles.

First of all, they suppose you have Microsoft(r) Visual C++ 6.0. I haven't any. And although it's quite obsolete version, I was unable to find some free download location. But I had success with similar - Microsoft(r) Windows Server(r) 2003 R2 Platform SDK (here). Simply downloaded, installed and started commandline using newly created SetEnv.bat in Program Files / Microsoft Platform SDK for Windows Server 2003 R2.

Later I had some source code related issues (additional blank line in MakeFile causing troubles), which disappeared after few days from repository, so they are ok right now.

Another problem was compile error saying something about missing cast from gunichar2 to W32::LPCWSTR. I manually edited the source adding forced cast and recompilation was ok.

Currently I'm still unable to compile some plugins, namely gnomeprint (since I couldn't find any build of libgnomeprint for Windows) and autocomplete (don't know it's purpose, so far working without it), so I removed them from the MakeFile.

At this point, I was able to build the dia (= run the whole make without any significant error), but Dia was unable to start. First errors where caused by missing DLLs, so I copied some of them from the GTK dir. Later errors were connected to the MSVCR80.DLL and the dia-app.dll, solved this by copying some files from the dia\app source dir. I think this had to be done by the make, but from some reason wasn't (saying no errors even in DEBUG mode).

Finally, dia started (only with some warning about problems with homedir, but after quick look into the sources, it seems no to be anything fatal). I'm not sure, whether these are general issues, or only some troubles caused by different compiler. If you have similar problems, feel free to share them in the comments.

PS: I have forgotten to mention, that there is also one plugin still preventing Dia to start - it's called custom (probably some custom shapes). I have simply deleted it.