Re: Jam, Visual Studio, XBox 360
Joshua Jensen <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Message-ID | <[email protected]> |
----- Original Message ----- From: Craft, Steven Date: 2/8/2010 2:34 PM > Thanks for your reply. Someone has suggested I check out JamPlus, which > is able to generate a Visual Studio solution that builds with a Jamfile. > I have also managed to add the Wii platform into a Jamfile, so I can > generate a Visual Studio solution that builds on either Wii or Win32. A > problem I now have, is although this system is able to generate both Wii > and Win32 in one solution, the Wii will not build, as I have set it up > to add itself as another platform (in the dropdown box with Win32, Xbox > 360, x64, and so on) but Visual Studio (2005 and 2008) appear to not > like building any platforms except ones MS has added. JamPlus is capable of non-native and native platform generation within a Visual Studio solution, but a tiny piece of code slipped through the tests and prevented non-native platform generation from working correctly. The Git repository has been updated for this, but no new build has been released yet. Thanks, Steve, for finding this. > *Although the two 360 configurations could use '360_Debug|Xbox 360' and > '360_Release|Xbox 360' respectively. This isn't an overly neat solution, > and I'm not actually sure if it is possible at all with JamPlus (I'm not > sure if you can set up debug/release style configurations that build on > completely different platforms). You can. It works out of box. You can even name your configurations something altogether different (see the jamplus/tests/platform/groovyplatform/ sample), and Visual Studio will use that configuration name. > It seems MS has added custom platform > support for Visual Studio 2010 - but right now nothing seems to quite > fit together. > I didn't know they had done that. I'll have to look into it, since JamPlus has Visual Studio 2010 project generation support. > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of > Grant Mark > > The Visual Studio project files themselves are not in source control - > users > are expected to generate this locally on their machine using our tools. > JamPlus expects the same for its project generation. It actually adopts an out-of-source build philosophy, where you build the solution and projects into an alternative location. Out of box, all intermediates and outputs are within the confines of that out-of-source location, too. > 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. > JamPlus has a rule called C.Lump that does this. JamPlus' generated .vcproj files are makefile projects, so there isn't a need to exclude files from the build. Visual Studio's makefile project (even in VS2010) only supports a Build, Rebuild, and Clean build step on the entire project. You can't build an individual .cpp from within the IDE, although you can from the command line. Lumped (unity) builds generally prevent individual .cpp compilation anyway. > 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). > JamPlus' generated .vcproj files are only for the visuals. The contents (or lack of contents) in the project do not affect the build. A project called !UpdateWorkspace may be built to refresh the Visual Studio projects with whatever changes others have provided. > 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? > It is very useful to do this, although stock Perforce Jam really needs to be patched to make it a solid build system. JamPlus brought together a bunch of those patches and some of its own. Features like built-in lumping for source files, batch compilation, and the ability to automatically know a .cpp file needs to be rebuilt when a set of #defines change helps productivity. I've worked with studios where it is very common to send out the following mail to everyone: "Be sure to run a clean, or you'll break (and you won't even know it until you've played for an hour)." A good build system should figure it out for you, and it should do so very fast. > 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 > What do you mean by "projects generated are good enough for submission"? > Also, if anyone has an opinion on Jam in general, I'd like to hear them! > I've worked with Jam for years now, and it (JamPlus and other derivatives I've applied the same patches to) handles my large code and asset builds very well. Josh Josh _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com