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
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.