This is what I am describing. Apple is still using the NeXT bundle layout that 
is currently used by GNUstep, but only on iOS. On OS X the new Cocoa layout 
(that one with the Contents directory) is used. My suggestion was, once again, 
while keeping compatibility, default to the Cocoa layout, meanwhile extend this 
Cocoa layout to support something like fat bundles, or a single bundle with 
multiple binaries that is designed to work under different architectures and 
libraries, regardless whether the binary itself is fat or not.

To accomplish this, a trick used by Apple themselves can be employed and 
extended. Apple stored binaries in Contents/MacOS folder inside the bundle. For 
GNUstep, we just don't use that folder, instead, we use Contents/GNUstep-(host 
triplet)-(library combo, if not gnu-gnu-gnu).

This can result in a bundle that can be used on both Apple and GNUstep systems 
right out of the box, like this following filesystem layout:

MyApp.app
./Contents
./Contents/MacOS # OS X binary, linked against Apple Cocoa
./Contents/Resources # shared resources
./Contents/GNUstep-i386-linux-pc # 32-bit x86 Linux binary
./Contents/GNUstep-x86_64-linux-unknown # 64-bit x86-64 Linux binary
./Contents/GNUstep-i386-mingw-gnu # 32-bit x86 Windows binary, linked against 
mingw
./Contents/GNUstep-i386-cygwin-gnu # 32-bit x86 Windows binary, linked against 
Cygwin

发自我的 iPhone

在 2013-5-23,3:08,Luboš Doležel <lu...@dolezel.info> 写道:

> 
>> You can already do that with GNUstep if configure gnustep-make with
>> "--disable-flattened --enable-multi-platform". I've successfully used
>> that for quite some time to provide a shared GNUstep setup to i386
>> and amd64 machines on a network share.
>> 
>> Cheers,
>> 
>> Niels
> 
> What about the "Contents/" directory used on OS X? I've already had trouble 
> with this.
> 
> All OS X apps have a Contents directory right under *.app and GNUstep 
> couldn't cope with that last time I tried.
> 
> -- 
> Luboš Doležel
> 
> _______________________________________________
> Gnustep-dev mailing list
> Gnustep-dev@gnu.org
> https://lists.gnu.org/mailman/listinfo/gnustep-dev

_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to