4.1-beta1

I have completed a first pass at the new cross-compiling platform API. I haven't had much occasion in my work to target multiple architectures like this, so I am relying on those of you that do to make sure I'm going about it the right way.

I realize that not everyone is comfortable pulling code from SVN so I rolled it up as a beta release and put it out on SourceForge. Download it, give the new platform API a try, and let me know what you think. It is a lot easier to change things now than it will be once it gets released, so pass along any questions or concerns you have, about the code or the documentation, no matter how trivial they might seem, okay?

This new feature allows you to cross-compile, or to target an architecture other than the one you are currently running on. So, for instance, you can create a 64-bit build even though you are running on 32-bit hardware, assuming that you have the proper libraries and compiler support installed. In addition to 32- and 64-bit targets I've also added support for Mac OS X universal binaries and, for Visual Studio users, Xbox 360 support.

Support for this new feature is currently limited to the Visual Studio 2005/2008 and GMake actions. I will add it to the other C/C++ actions before the 4.1 release but I want to make sure I've got the API right first. So please, give it a try and let me know what you think!

Update: Platforms now work for Code::Blocks and CodeLite, available as 4.1-beta2.

Awesome!! How's Xcode support coming along?

Xcode was bumped to 4.2, see the 4.1 development announcement for details. It will definitely be in 4.2, and will not be bumped again. I need it for my own work and the delay is holding me up.

Nice. Just want to say that Premake has been of great value to our project so far. We started with 3.0, and porting to 4.0 simplified the scripts a lot. Although we have a big solution, creating and managing projects is a breeze. Lua really is perfect for this kind of configuration work. Just specify some templates for libs, tools, plug-ins and tests, and creating a new project can be as short as one line of code! Anything more in terms of new features is now pure icing on the cake. Anyways, your work is highly appreciated :)

Cheers! -Johannes

Many thanks for the positive feedback.

I tested the beta and the performance compared to 4.0 is pretty bad...

For a solution consisting of 80 projects premake is building configurations for about 8 minutes on a Macbook Pro. I also tested it on Windows with similar results. I can try to do a profile run with Shark if that helps to find the problem.

I haven't done any performance testing on 4.1 yet (obviously) — I'm looking into it now. Can Shark be used with Lua code? Do you have a link to how its done?

Thanks for looking into it. I created a tracker item, in which I mentioned that I poked around in the debugger and that the bottleneck is obviously inside the Lua code. Shark can't be used with Lua code, I just hoped a profile would pin down the problem, which it didn't...

I could try Lua Profiler. Never used that one before, though.

I've put a copy of the Pepperfish profiler into SVN trunk/tests, and also added a stress test. I'll make further notes on your bug report.