discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Frameworks questions re layout and bundling


From: Philip George
Subject: Re: Frameworks questions re layout and bundling
Date: Fri, 7 May 2021 16:10:55 -0400

Just to have something concrete to look at, I've included 2 tree diagrams of frameworks using Apple's layout (minus modules and code signatures)...

Development (with headers)

└──── Quasi.framework
├──── Quasi -> Versions/Current/Quasi
├──── Headers -> Versions/Current/Headers
├──── Resources -> Versions/Current/Resources
└──── Versions
├──── A
│     ├──── Quasi
│     ├──── Headers
│     │     ├──── Quasi.h
│     │     ├──── QZThat.h
│     │     └──── QZThis.h
│     └──── Resources
│           └──── Info.plist
└──── Current -> A


Deployment (without headers)

└──── Quasi.framework
├──── Quasi -> Versions/Current/Quasi
├──── Resources -> Versions/Current/Resources
└──── Versions
├───── A
│     ├──── Quasi
│     └──── Resources
│           ├──── Info.plist
│           ├──── that.png
│           └──── this.aif
└──── Current -> A

On the development side, because I can tell clang to look for the headers/library in whatever directories I want, I don't think sharing the same layout with the macOS side will be a problem. I'll just need someone to talk about how umbrella headers are supposed to work in GNUstep.

On the deployment side, I don't think layout will be a problem as long as:

- it can be bundled
- the entire app folder structure can be moved anywhere on the filesystem and still be able to find its frameworks (optional, since the use-case isn't too common for linux)
- i understand what in the Info.plist file will need to be changed from the macOS version

So hopefully I can get some clarification on those four things in this thread.


Noel





On Thu, May 6, 2021 at 10:34 AM blackstripe <trivial@blackstripe.net> wrote:
>
> A few questions about frameworks in GNUstep...
>
> 1: Layout
>
> I know framework layout is unusual in gnustep, but I haven't seen a clear example of what it actually should look like — only discussion of it being different (in the wiki or faq i believe, but it provided no example).
>
> Is there any way to force macOS-style layout?
>
>
> 2: Bundling
>
> Is is possible to bundle a framework such that (a) the framework stays with the surrounding app, and (b) can be moved anywhere on the file system (with the surrounding app)? (presumably some link references will have to be made relative using something like patchelf)
>
>
> 3: Umbrella headers
>
> This project is shared with the macOS/Xcode side, so I would of course like the existing umbrella header to work as-is on the GNUstep side. Is this possible and how do I set that up?
>
>
> 4: Clang
>
> What arguments need to be passed into clang to facilitate all of this?
>
>
> - Noel
>
>

reply via email to

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