As far as I know, the clang compiler takes care of all this if you pass --framework to include/link a specific framework and -F to tell it where the frameworks are. Thats all it should take to link a framework in this style.
Philip George wrote on 07.05.21 20:10: > 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 <triv...@blackstripe.net > <mailto:triv...@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 > > > >