ase-lab/RoutingHTTPServerFramework — pull request #1 by mralexgray (2013-11-08 03:59:51+00:00)
Title: fixed all incomplete linkages, added runpath, ldflags, and copy phases t...

fixed all incomplete linkages, added runpath, ldflags, and copy phases to let consumers access sub-umbrella classes.

this is the first of my pull requests that go all the way down to linker chain to Lumberjack... quite a nested bonanza this was.. without these commits... consumers of the umbrella (`RoutingHTTPServerFramework`) are not able to access the otherwise invisible symbols included wherein. these commits add the following, I will summarize here instead of on each one.. All these settings names are approximate and off the top of my head.

This framework...
RoutingHTTPServerFramework
INSTALL_NAME @rpathif it is right underneath the App, or @executable_path, or @loader_path... it's always a little different depending on who and where they are embedding it.
`RUNPATH_SEARCH_PATHS` `@loader_path/Frameworks` (so it can find `CocoaAsycSocket`)
New Framework copy phase... for `CocoaHttpServer`...
Add `#import to main header.
Add `-sub_umbrella CocoaHttpServer` to export the symbols upward...

`CocoaHttpserver` - Gets new header `CocoaHttpserver.h` that imports all files into `RoutingHTTPServerFramework` with one line.
INSTALL_NAME @loader_path/Frameworks
`RUNPATH_SEARCH_PATHS` `@rpath` (so it can find `CocoaAsycSocket`)
New Framework copy phase... for `CocoaAsyncSocket`...
Add `-sub_umbrella CocoaAsycSocket` to export the symbols upward...

`CocoaAsycSocket`
`INSTALL_NAME` `@loader_path/Frameworks`
`RUNPATH_SEARCH_PATHS` `@rpath` (so it can find lumberjack)
New Framework copy phase... for lumberjack...
Add `-sub_umbrella CocoaLumberjack` to export the symbols upward...

CocoaLumberjack
`INSTALL_NAME` `@loader_path/Frameworks` (So it knows it is going to be embedded.

Ugh, I don't have the energy to proof read this much.. (it is missing a few steps here and there.. check the commit) but as you can see it gets less complicated until you get to the bottom of the dependency chain... But all of the changes are really necessary to make it build and actually work! Hope you manage to pull this so this can actually be a viable option for people.. especially since it is so confusing. I am a framework dork and had to look on the weirdest corners of the Internet to gain the knowledge I do have about them. `LD` is weird, and apple down't want people making umbrella -frameworks like this.. so there's no info on how to do it (even though it's the best way, IMHO.) Cheers!

ps... this commit looks meager.. but i forked and committed the changes to all 4? frameworks that needed to changes, so check those too, and commit them back up so i can merge back with upstream master!

![131107-0001](https://f.cloud.github.com/assets/262517/1498251/0adac152-482a-11e3-9aa7-85f0a183bd1b.png)