gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSBundle - supporting foreign bundles


From: Gregory Casamento
Subject: Re: NSBundle - supporting foreign bundles
Date: Wed, 22 May 2013 20:05:20 -0400

Something like this currently exists in GNUstep.  There is a nib flattened mode which allows for different architectures and library combinations.

On Wednesday, May 22, 2013, Chan Maxthon wrote:
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


--
Gregory Casamento
Open Logic Corporation, Principal Consultant
yahoo/skype: greg_casamento, aol: gjcasa
(240)274-9630 (Cell)
http://www.gnustep.org
http://heronsperch.blogspot.com

reply via email to

[Prev in Thread] Current Thread [Next in Thread]