|
Loading...
|
xcode-users@lists.apple.com
[Prev] Thread [Next] | [Prev] Date [Next]
Re: Where to install custom framework to support a plug-in architecture? Erik Stainsby Mon Feb 13 21:00:41 2012
And I think I figured it out. I added Copy Files and Copy Headers to the application Build Phases, dragged the framework into each and away she went. ~ Erik On 2012-02-13, at 11:25 AM, Chris Hanson wrote: > You can (and should) put it in the app bundle itself. > > Dynamic libraries (dylibs) on Darwin have an "Install Name" embedded into > them. This Install Name is copied into anything that links the dylib, so it > can be located at run time by the dynamic loader (dyld). > > For system frameworks, this is the full path at which the framework lives - > for example, the dylib inside Foundation.framework has its full path as its > Install Name. > > For app frameworks, though, you can build them with an Install Name that will > cause them to be *searched for* at run time - one that starts with @rpath. > > For your framework's target, add this build setting to cause its Install Name > to have an @rpath prefix rather than the path from its INSTALL_PATH build > setting: > > DYLIB_INSTALL_NAME_BASE = @rpath > > In your application, you need to add an additional build setting that tells > dyld where to look up things that start with @rpath. This is what the > Runpath Search Paths build setting is for. Here's a simple setting for your > application: > > LD_RUNPATH_SEARCH_PATHS = @executable_path/../Frameworks > > This path will actually be built into your application binary, and will cause > your application to search for anything that starts with @rpath in its > embedded Frameworks directory. > > How does this affect your plug-ins? Well, just like your application, your > plug-ins when linking against your framework will copy its Install Name into > them. Then when you go to load a plug-in, dyld will fix up its linkage, > notice an Install Name that starts with @rpath, and then search for what > matches that @rpath -- and it'll find your framework! > > Why? Because dyld always looks for @rpath matches in the Runpath Search > Paths of the executable for the running process -- which is your application! > So you don't even need to specify any additional settings for your plug-ins, > just link them against the framework. > > -- Chris > > On Feb 11, 2012, at 10:32 PM, Erik Stainsby wrote: > >> I'm trying to set up a lightweight custom framework against which I can hang >> a plugin architecture ~ dynamic bundle loading. >> >> Where would you place such a framework ? I have been targeting >> ~/Library/Frameworks for the moment, but suspect there is a scheme which >> would allow this to all be contained with the Application Support context >> for my app or in the app bundle itself. But of course, the examples I can >> find all refer to XC3. I'm quite happy to read documentation if anyone can >> point me at something reasonably current. >> >> Clues gratefully appreciated. >> Erik >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Xcode-users mailing list ([EMAIL PROTECTED]) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/xcode-users/cmh%40me.com >> >> This email sent to [EMAIL PROTECTED] > _______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list ([EMAIL PROTECTED]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/alexiscircle%40gmail.com This email sent to [EMAIL PROTECTED]
- Where to install custom framework to support a plug-in architecture? Erik Stainsby 2012/02/11
- Re: Where to install custom framework to support a plug-in architecture? Chris Hanson 2012/02/13
- Re: Where to install custom framework to support a plug-in architecture? Erik Stainsby 2012/02/13
- Re: Where to install custom framework to support a plug-in architecture? Chris Hanson 2012/02/13
- Re: Where to install custom framework to support a plug-in architecture? Erik Stainsby 2012/02/13
- Re: Where to install custom framework to support a plug-in architecture? Erik Stainsby 2012/02/13 <=