SDL macosx debugger continued

SDL on macosx folks…

I was digging through the archives to see if the gdb problem with
macosx had been addressed, and it had, but this made me wonder about if
the frameworks are being packaged correctly.

First, a little background -
My personal revelation on this issue happened when I started
researching embedded frameworks for a project I’m working on. I had
created a Framework for Lua (a library used for AI) and I wanted to
embed it into the project rather than install it into a location like
/Library/Frameworks. This research led me here:
http://developer.apple.com/techpubs/macosx/DeveloperTools/
ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/
Frameworks/chapter_19_section_3.html
and here
http://cocoadevcentral.com/articles/000042.php
An embedded framework should be the only one built with
@executable_path/…/Frameworks as its install location, which is
Apple’s way of identifying the location when the file is dragged around
into different folders. This framework is expected to be built into
the application when it is installed. The Apple documentation appears
to be not-so-good, as they advise not copying on build, but you can’t
debug if you do that. I plan to send a doc bug report on this.

An embedded SDL is a nice thing to have for developers who want to
follow Apple’s guidelines and embed all Frameworks for an app into the
app (therefore allowing drag and drop installation). The bad thing
about it is that you can have 15 different copies of SDL lying around.

Personally, I think the Framework currently marked as library only
should contain the Headers to follow Apple’s example of including
Headers in all frameworks. This is different than most dynamic library
bundling, which has user and developer version (with the developer
having the headers). If you really wanted to, you could make three
frameworks, a developer framework with headers, a developer embedded
framework, and a user framework without the headers. It seems silly to
have a user framework without headers when the application needs to be
built to embed the framework from a developer standpoint (otherwise you
don’t have the headers).

Before I truly understood this, I was using the headers from
$HOME/Library/Frameworks/SDL.framework and the library from
/Library/Frameworks/SDL.framework to get it to work.

Anyhow, my work is done here - back to coding :slight_smile: