Re: Jam, Visual Studio, XBox 360
Alen Ladavac <[email protected]>
| Newsgroups | gmane.games.devel.sweng |
|---|---|
| Organization | Croteam |
| Message-ID | <[email protected]> |
[I wanted to write more about this, but I see you've already got the correct suggestions :). So just this...] > 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. What we do is to have a configuration file called .jamlocalconfig in the solution root (user-local, not submitted), which is read by the jam scripts. For the above problem we use: PlatformRemap-Win32 = Linux ; which self-explains the way it works. :) Other useful ones include: JOBS = 3 ; INSTRUMENTEDBUILD = 1 ; XENON_DEPLOY_TARGETS = myxbox ; etc, etc. Btw, we haven't switched to JamPlus yet, but use our own customized Jam with home-brew Lua scripts that generate vcprojs, similar to what Grant described earlier. But I guess it would still apply. HTH, Alen Monday, February 8, 2010, 10:34:20 PM, you wrote: > 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. I presume the only > work around for this is to generate a lot of configurations like: > Win32_Debug|Win32 > Win32_Release|Win32 > Wii_Debug|Win32 > Wii_Relase|Win32 > PS3_Debug|Win32 > PS3_Release|Win32 > 360_Debug|Win32 * > 360_Release|Win32 * > *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). It seems MS has added custom platform > support for Visual Studio 2010 - but right now nothing seems to quite > fit together. > Any clues? I guess I could do a custom parse at the end of this process, > to fix up the .sln/.vcproj so the platform/configuration names are > 'valid', but at that stage I'd start to question whether I'd be better > off just rolling my own code to do the lot from scratch (rather than > rely on third party code to do half the job, and try to pick up the > pieces after). > Steve > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of > Grant Mark > Sent: 08 February 2010 17:04 > To: [email protected] > Subject: Re: [Sweng-Gamedev] Jam, Visual Studio, XBox 360 > 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 -- Best regards, Alen mailto:[email protected] _______________________________________________ Sweng-Gamedev mailing list [email protected] http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com