I am submitting a patch to allow basic support to build for the iPhone platform. It currently only generate valid solution for libraries (there is no such thing as a command line tool on the iPhone :-) )
Also, I added a really function called xcodebuildsettings. This let you specify the xcode build settings like you normally do in a .xcconfig file. This alone brings a lot to the xcode generator. You can use it like the "defines" or "files" keyword.
An example on how to use it:
"ARCHS = (i386, x86_64)",
"VALID_ARCHS = (i386, x86_64)",
"SDKROOT = macosx10.5",
"ONLY_ACTIVE_ARCH = NO",
With this I am able to change the SDKROOT and also I am able to generate a Universal Binary (intel only 32bit-64bit excluding ppc). This is only the tip of the iceberg, you can do many other things like exclude file in certain configs only:
'EXCLUDED_SOURCE_FILE_NAMES = ("*Proxy*", "Command*")'
I also change the way xcode id were generated to use only math.random calls and no os.time() call. Same functionality can be achieved by calling math.randomseed(1234) at the beginning of your premake4.lua script. This way if you generate twice in a row the same projects and it produce the same results.
I hope to see my change in next release of premake4. I have just finished migrated all my xcode project to premake and my teammate found premake4 so amazing that we want to migrate all the rest of our codebase too as soon as possible (Wii, PS3, XBox, Windows).
Let me know if you have any concerns with my changes or you want to discuss about it.