Re: Jam, Visual Studio, XBox 360

"Grant Mark" <[email protected]>
Newsgroups gmane.games.devel.sweng
Message-ID <[email protected]>
Hi Steve,

While we don't actually use Jam, our build pipeline is similar to what
you're trying to achieve:
 * Visual Studio project generated for all target platforms/configs (ie.
debug|win, debug|x360, and so on)
 * "Unity" source code collation
 * Distributed builds using Incredibuild (win/x360) and SN-DBS (ps3).

The Visual Studio project files themselves are not in source control - users
are expected to generate this locally on their machine using our tools. The
Visual Studio project file is a fairly flexible XML document which allows
you to provide per-platform and per-config compiler and linker settings, so
you can maintain all of your config/platform-specific settings. I imagine
there is some sturdy MSDN documentation on it... (:-/)

Essentially our tool scans the source folder for cpp files and collates them
into large "unity" cpp files (ie. a cpp file that includes individual
project cpp files), then spits out a .sln and .vcproj. The generated vcproj
will compile only these files; the actual individual files are added as
well, but are flagged as "Excluded from project". The magic is all in the
generation of the sln/proj file, which uses additional "template" files
where our platform/config specific settings are defined. 

With that in place, we're able to launch the same builds from within Visual
Studio or from the command-line (buildconsole.exe for Incredibuild,
vsibuild.exe for SN-DBS) - both have their own parameters but it basically
boils down to the same thing: <solution file> <config|platform> <project>
<build/rebuild>.

Whenever someone adds a new file to the project, they are free to check it
in without having to modify any project or solution files. Whenever someone
grabs the latest revision, they'll need to regenerate their project to have
any new files automatically inserted into their unity cpp's. If they don't,
the errors are fairly obvious (linker or file not found on #include are the
typical ones). 

Having never actually used Jam, I'm not sure where it'd fit in to the above
equation - you may be able to use it to emulate our sln/vcproj generation
step somehow?

Sorry if that's not specific enough but I can't go into too much detail
unfortunately. Hope that's of some use.

Cheers,
Grant

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Craft,
Steven
Sent: 08 February 2010 10:07
To: [email protected]
Subject: [Sweng-Gamedev] Jam, Visual Studio, XBox 360

Hi there,

I have seen some discussions touching on this area, but instead of
hijack said threads I thought I'd start a new one. I currently have to
maintain two (main) code building pipelines, one Visual Studio based
(for PC and 360), and one Makefile based (for Wii and PS3). I am
considering giving Incredibuild a go (I have about 50 programmers here,
and lots of non programmers, so a lot of cumulative processing power)
and have read Bizarre Creations case study of how they used Incredibuild
in conjunction with Jam to give them a unified build environment across
multiple platforms, including the ability to generate Visual Studio
projects from their jamfiles. I was wondering if anyone else does this?
I was interesting in whether this can be done with already available
software, or if they had to write their own. I'd be particularly
interested if it is possible to have this setup in a way that the Visual
Studio projects generated are good enough for submission, and include
the ability to set all the optimization options and so forth. Bizarre do
not list Wii as a platform they have integrated in this way, but
certainly I am very keen on finding a solution that works for all
platforms, and allows the end user to build for any platform using the
same system. So with Jam I'd like Visual Studio to call that when you
click build, and also be able to call Jam from the command line for
constant integration/disc build systems.

I don't really want many users messing around with project specific
settings, the only main change most users need to make to the build
system is adding new source files (as they introduce them), and I can
see with Jam it is quite straight forward to separate out this part of
the build from the compiler settings and so on, so that's good. If they
could update that file, and then regenerate the Visual Studio project
files and carry on working, that'd be good.

Also, if anyone has an opinion on Jam in general, I'd like to hear them!

Best regards,

Steve

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.