|
From: | Gregory Casamento |
Subject: | Re: NSBundle - supporting foreign bundles |
Date: | Wed, 22 May 2013 20:05:20 -0400 |
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 <address@hidden> 写道:
>
>> 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
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev
_______________________________________________
Gnustep-dev mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/gnustep-dev
[Prev in Thread] | Current Thread | [Next in Thread] |