[Pythonmac-SIG] Private frameworks - BINGO!
Jack Jansen
Jack.Jansen@oratrix.com
Fri, 23 Aug 2002 22:22:21 +0200
Just after sending my previous mail I though I'd have a look at
how OmniGraffle links to its frameworks (by using "otool -l"),
and it uses the "@executable_path/../Frameworks/" construct
we've discussed here before.
Feeling adventurous I decided to first move one of its
frameworks off into the void. As expected it didn't start. Then
I moved that framework into /Library/Frameworks and, lo and
behold, everything works!! So, this may point us to a way to
have our cake and eat it too.
Some problems remain, though. I think that building everything
with the @executable_path would work equally well as what we
currently have *if you install the framework in one of the
standard locations*. It will also immediately solve the
BuildApplication problem: in that case we will copy selected
parts of the normal Python framework into a private framework in
the output application.
Unfortunately it doesn't necessarily solve the problem we're
looking at: installing the whole bunch in a random location. The
reason is that we have a number of programs that refer to the
framework: PythonIDE.app, PythonLauncher.app (although it
currently has a hardcoded path it could link against the
framework, even if only to obtain it's pathname) and the hidden
Python.app. And then there's the python commandline tool, also
hidden inside the framework at the moment.
We could solve this be sprinkling symlinks all over the place,
but I'm not sure I like that....
Hmm, maybe it isn't such a good idea after all. But feel free to
ponder about it and come up with nifty solutions....
--
- Jack Jansen <Jack.Jansen@oratrix.com>
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution --
Emma Goldman -