Building FreeOrion in Visual Studio From Scratch

Questions, problems and discussion about compiling FreeOrion.

Moderators: Oberlus, Oberlus

Post Reply
Message
Author
User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Building FreeOrion in Visual Studio From Scratch

#1 Post by tbullock » Mon Jan 23, 2006 3:32 am

Hi again,

As I mentioned in my introduction I am working on a visual howto manual for configuring visual studio to build FreeOrion (almost) entirely from source. I have decided to use this thread as my worklog, however the actual data files will (until they are complete) live on my home webserver. The link to the document will be available at http://myvpn.game-host.org/freeorion.html. If you notice an error, please send me a PM (or even better and ICQ message which I will see much sooner) so I can correct it as soon as possible.

Whenever I update the document, I will also update this thread with a note to that extent.

Thanks,
-Ted Bullock
Last edited by tbullock on Tue Feb 07, 2006 5:53 am, edited 1 time in total.

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Update

#2 Post by tbullock » Tue Jan 24, 2006 1:15 am

Hey there,

I updated the document to cover eXpat, FreeType and just started onto libjpeg.

Currently at 37 pages.

Enjoy!

-Ted Bullock
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

libjpeg

#3 Post by tbullock » Tue Jan 24, 2006 6:11 am

Hey again,

I had a few problems with libjpeg not importing properly in VS2005, I don't know if this would have been a problem in VS2002/2003. However I converted the libjpeg makefile into a VS6 project file which can be imported into any subsequent version.

I am hosting the repackaged libjpeg zip file on my webserver (located in my house) http://myvpn.game-host.org/jpeg-6b-repackaged.zip.

For anybody following my document I suggest that you download this repackaged source just to save time and effort.
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Another Update

#4 Post by tbullock » Tue Jan 24, 2006 10:47 pm

Hello,

I finished the section on libjpeg, Log4cpp (including some workarounds) and have started on SDL.

Currently at 44 pages.

-Ted Bullock
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Another Update - SDL, Little CMS and libpng

#5 Post by tbullock » Sun Feb 05, 2006 11:26 pm

Greetings,

I finished adding sections on SDL, Little CMS and libpng.

Please enjoy responsibly.

Now at 55 pages.

Also now that FreeOrion is on SubVersion, I will have some updates to do. Also I have been re-thinking how do some of the sections, especially the boost, python and libjpeg sections (and libtiff section too but I haven't pulished that yet).
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Update! Feeling productive I guess.

#6 Post by tbullock » Mon Feb 06, 2006 5:26 am

Added libtiff and libmng

Also removed references to library dependancies in each of the higher level libraries as I was encountering some duplication of object code as two libraries with the same dependancy were merged into another higher level library.

Now at 66 pages.

Fun stuff, getting fairly close to completion too.

-Ted
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Reworked for visual studio 2005 Express edition

#7 Post by tbullock » Fri Feb 10, 2006 1:46 am

Since Visual Studio Express Edition (VS2005EE) is free until Nov 6, 2005 I have re-worked my manual to cover using it rather than one of the more robust versions.

Also updated to reflect change to Subversion

VS2005EE will install nicely next to other versions of visual studio.

Lastly, I am going to make all the dependancy libraries available on my website http://myvpn.game-host.org/freeorion.html in the future as part of a get started quick process.

Anyways, that's it from me for now.

-Ted
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Added DevIL Image Libary

#8 Post by tbullock » Wed Feb 22, 2006 5:00 am

I have added the DevIL image libary to the document. Also I have been working on the Graphviz library, however it is poorly organized and is difficult to work with.

Although the document does not refer to Graphviz yet, you can download a repackaged version of the graphviz library from my website.

(note I accidently posted this on the main programming forum page)
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12422
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

#9 Post by Geoff the Medio » Sun Mar 05, 2006 5:25 am

Ted, due to some recent changes with FO (adding boost serialization), it doesn't compile with MSVC 2003 anymore, so I need to switch to MSVC 2005 Express. Unfortunately, I'm informed that MSVC 2005 Express uses irregular registry keys which SCons cannot find, so MSVC 2005 Express can't be used to compile GG with SCons... which is a problem because I need to compile GG and FO using the same version of MSVC, because each version of MSVC has to compile and use its own version of the Boost libraries, and mixing two versions of Boost in one program causes problems...

SO... if you could figure out the GG part of your guide, it would be quite useful, even for persons such as me with no interest in compiling everything from scratch. I realize you were asking about GG here and were waiting for noelte, but... I guess just don't give up please...? I'd rather not have to buy MSVC 2005, if I can avoid it, and having things be doable with a (temporarily) $-free compiler is probably in general.

Thanks...

User avatar
noelte
Juggernaut
Posts: 872
Joined: Fri Dec 26, 2003 12:42 pm
Location: Germany, Berlin

#10 Post by noelte » Sun Mar 05, 2006 11:55 am

Hmm, not sure yet if you need 2005. When building gg i ended up with trouble in PluginInterface regarding libltdl. Don't know how to go on at the moment. I will ask zach, i hope he can help. I have the impression, that GG at SVN isn't complete/valid.
Press any key to continue or any other key to cancel.
Can COWs fly?

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12422
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

#11 Post by Geoff the Medio » Sun Mar 05, 2006 1:36 pm

This isn't a problem with GG; it's a problem with FO. MSVC 2003 can't compile the new serialization stuff from boost that was just added to FO. It dies, giving fatal error C1204: "compiler limit : internal structure overflow". This is a known bug with 2003. There is apparently a hotfix from Microsoft, but they won't let you download it easily... I already emailed, but they just gave me a phone number. So, I might give them a call at some point to see about getting it, but it's a rather big roadblock for anyone who wants to compile using MSVC 2003.

User avatar
noelte
Juggernaut
Posts: 872
Joined: Fri Dec 26, 2003 12:42 pm
Location: Germany, Berlin

#12 Post by noelte » Sun Mar 05, 2006 4:05 pm

Hmm, don't know, but i think i already compiled FO successfully. All three parts can't be linked becauseof the missing GiGi libs. So, to me, only libltdl prevents me from succeeding ....
Press any key to continue or any other key to cancel.
Can COWs fly?

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

#13 Post by tbullock » Mon Mar 06, 2006 4:16 am

Ok, all I should need to finish this off is a fairly up to date file list for GG. Along with the various preprocessor flags needed to compile it in windows.

(Which files/directories go with each GG component project)

I notice that the GG root is now in the FreeOrion SVN database, so as long as the GG filestructure doesn't change drastically in the short term, then I should be able to get the document finished relatively quickly.

-Ted
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

User avatar
tbullock
Space Floater
Posts: 23
Joined: Tue Jan 17, 2006 8:50 pm
Location: Calgary, Alberta

Progress Update

#14 Post by tbullock » Wed Mar 22, 2006 6:36 pm

Alright,

So I have a had a lot of progress in getting this together. Actually I got everything compiled again yesterday (this time with only minimal code duplication across binaries).

That said, it crashes as soon as I start the executable.

I will run it through the debugger later tonight to see why this is.

Anyhow, thought I would post this update.

Also, I will rework my document as soon as I get it all figured out on my end.

-Ted Bullock
Nothing in this world can take the place of persistence

Talent will not
Genius will not
Education will not

Persistence and determination alone are omnipotent
The slogan press on has solved and will always solve the problems of the human race

Post Reply