[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NSBundle - supporting foreign bundles
From: |
Chan Maxthon |
Subject: |
Re: NSBundle - supporting foreign bundles |
Date: |
Thu, 23 May 2013 06:20:52 +0800 |
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
- Re: NSBundle - supporting foreign bundles, (continued)
- Re: NSBundle - supporting foreign bundles, Luboš Doležel, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Chan Maxthon, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Niels Grewe, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Chan Maxthon, 2013/05/22
- Message not available
- Re: NSBundle - supporting foreign bundles, Niels Grewe, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Chan Maxthon, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Niels Grewe, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Chan Maxthon, 2013/05/22
- Message not available
- Re: NSBundle - supporting foreign bundles, Chan Maxthon, 2013/05/22
- Re: NSBundle - supporting foreign bundles, Luboš Doležel, 2013/05/22
- Re: NSBundle - supporting foreign bundles,
Chan Maxthon <=
- Re: NSBundle - supporting foreign bundles, Gregory Casamento, 2013/05/22
Fwd: Re: NSBundle - supporting foreign bundles, Luboš Doležel, 2013/05/28