Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#2271 closed enhancement (fixed)

Support VC++ 2013

Reported by: historic_bruno Owned by: Itms
Priority: Should Have Milestone: Alpha 18
Component: Build & Packages Keywords:
Cc: Patch:

Description

Known issues:

  • Build Boost libs for VC++ 2013

Change History (17)

comment:1 by ben, 10 years ago

In 14210:

Changes update-workspaces.bat to not generate a vc2013 workspace by default, since the game won't successfully build yet, refs #2271

comment:2 by Niek, 10 years ago

Are the Boost libs not obsolete with the upgrade to C++11?

in reply to:  2 comment:3 by historic_bruno, 10 years ago

Replying to niektb:

Are the Boost libs not obsolete with the upgrade to C++11?

Some Boost libraries might be, but I doubt we can replace it all (Filesystem, for instance).

Relevant to this ticket: Boost 1.56 was released about a month ago and should have VS 2013 support, I will test it.

comment:4 by Itms, 10 years ago

I tried the 1.55 Boost libs just before 1.56 release and I managed to compile and run 0ad on VS2013. However I had not time to test it thoroughly and I wanted to have some input from you Ben, given that I know little on the libraries side (but I didn't have either the opportunity to talk with you).

comment:5 by historic_bruno, 10 years ago

In any case, I don't want to do anything about this until A17 is released, it is of little benefit to the release.

comment:6 by Itms, 10 years ago

Milestone: BacklogAlpha 18
Priority: Nice to HaveShould Have

Ok, I tried to update our Windows boost libraries to 1.56, using the bcp tool to create a minimal subset of libs.

Everything seems to work, so I'm going to commit the update, but first, a quick overview:

  • bcp failed to detect one file we need to include, which was, on our side, included with a #include SOME_DEFINE. That's worth noticing, and fortunately only one file was missing.
  • bcp added some libs we didn't use previously, like atomic (it's the first in the list, many more were possibly added), and subsequently added some precompiled libs to the list.
  • About precompiled libs, I didn't make any change: filesystem and system were updated. I didn't add the ones bcp proposed (see previous bullet point)
  • bcp didn't add system to the list of precompiled libs, and I didn't remove it. I'll see if removing it changes things.

I assume this stems from bcp adding everything needed by every compilation platform. Still, the number of included files was reduced.

Side note: Compilation on VS2008 seems broken, even on the current SVN revision. I'll create a ticket later, when I gather some useful data.

comment:7 by Itms, 10 years ago

In 15881:

Remove Boost 1.53 libs for Windows. Refs #2271.

comment:8 by Itms, 10 years ago

In 15882:

Add Boost 1.56 libs for Windows, libraries subset created using the bcp tool. Refs #2271

comment:9 by Itms, 10 years ago

Ok, the VS2013 build seems to work fine, so I'm going to revert r14210.

I'll close the ticket, but don't hesitate to post here for any problem related to the VS2013 build, because it's not thorough testing I'm doing.

comment:10 by Itms, 10 years ago

Owner: set to Itms
Resolution: fixed
Status: newclosed

In 15883:

Add back the VS2013 project files to the files generated by update-workspaces.bat on Windows, as Boost libs were updated to 1.56.

Fixes #2271, addresses r14210.

comment:11 by Stan, 10 years ago

Does it change anything performance wise or exe size wise ?

comment:12 by historic_bruno, 10 years ago

Almost certainly not.

comment:13 by Timothy Hamlett, 10 years ago

The biggest difference I see so far is that the build has a progress bar.... At least it works, and that's better. It also compiles much faster.

Last edited 10 years ago by Timothy Hamlett (previous) (diff)

comment:14 by Timothy Hamlett, 10 years ago

The debug build worked, the release build did not work. I still got errors. (I'll post them here later.)

comment:15 by Stan, 10 years ago

You had the progress bar in VS2012 =)

comment:16 by Timothy Hamlett, 10 years ago

Doing a clean build worked, except for these errors (not really that important, i think)

Warning	1	warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library	O:\build\workspaces\vc2013\vfs_path.obj	lowlevel
Warning	2	warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library	O:\build\workspaces\vc2013\file_stats.obj	lowlevel
Warning	3	warning LNK4199: /DELAYLOAD:libiconv.dll ignored; no imports found from libiconv.dll	O:\build\workspaces\vc2013\LINK	Collada
Warning	4	warning LNK4199: /DELAYLOAD:icuuc.dll ignored; no imports found from icuuc.dll	O:\build\workspaces\vc2013\LINK	pyrogenesis
Warning	5	warning LNK4199: /DELAYLOAD:icuin.dll ignored; no imports found from icuin.dll	O:\build\workspaces\vc2013\LINK	pyrogenesis
Warning	6	warning LNK4199: /DELAYLOAD:gloox-1.0.dll ignored; no imports found from gloox-1.0.dll	O:\build\workspaces\vc2013\LINK	pyrogenesis
Warning	7	warning LNK4199: /DELAYLOAD:icuuc.dll ignored; no imports found from icuuc.dll	O:\build\workspaces\vc2013\LINK	test
Warning	8	warning LNK4199: /DELAYLOAD:icuin.dll ignored; no imports found from icuin.dll	O:\build\workspaces\vc2013\LINK	test
Warning	9	warning LNK4199: /DELAYLOAD:gloox-1.0.dll ignored; no imports found from gloox-1.0.dll	O:\build\workspaces\vc2013\LINK	test

comment:17 by historic_bruno, 10 years ago

Those warnings occur in every Windows build. They are annoying though, I'll see if I can't get rid of them somehow :)

Note: See TracTickets for help on using tickets.