Re: Jam, Visual Studio, XBox 360
Jon Watte <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <[email protected]> |
Another observation: The "re-use idle hardware" sales pitch is a good sales pitch, but not really the best way to use parallel builds. If it turns out you get good productivity boosts from parallel builds, buying a rack or two of cheap compute blades and putting them in a closet will likely get you a lot more power, more cheaply and easily managed, than trying to re-use random heterogenous desktops all over the office. Sincerely, jw -- Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable. On Mon, Feb 8, 2010 at 9:04 AM, Grant Mark <[email protected]> wrote: > 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 > _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com