From: Alan Gutierrez (alan-jamboost_at_[hidden])
Date: 2004-12-27 13:01:21
* Andre Hentz <ahentz_at_[hidden]> [2004-12-27 12:47]:
> Alan Gutierrez wrote:
> > * Alan Gutierrez <alan-jamboost_at_[hidden]> [2004-12-27 03:05]:
> >> I've noticed that there is no "bundle" rule for OS X (darwin).
> >> If developed, could one be patched into Boost.Build? Or is that
> >> best kept in my specific project?
> >> In fact, there is very little GUI support in Boost.Build, and
> >> as I develop rules for resource compilers, would they belong in
> >> Boost.Build to be used by other GUI developers, or is GUI
> >> development specific to my project.
> >> Or are they there and I can't find them?
> > For a start I'd like to create the bundle directory structure.
> > mkdir -p "$(FULL_PATH_TO_EXE).app/Contents/MacOS"
> > cp "$(FULL_PATH_TO_EXE)" "$(FULL_PATH_TO_EXE).app/Contents/MacOS"
> > That would create a minimal EXE.
> > What method should I pursue?
> > * Creating a top level rule called bundle?
> > - Probably necessary so's to specify other bundle resources.
> > * Hooking exe?
> I don't think you should change the EXE rule. One may want to provide a
> 'unbundled' version of some executables. Most of my MacOSX executables
> are not in a bundle but I do have one that is.
> As for the contents of a (very simple) bundle:
> Info.plist <-- at least includes the locations
> of executable and icon
> MacOS/ <-- executable here (or a link to it)
> Resources/ <-- application icon here
Oddly, I didn't find documentation of bundle structure as part
of the documentation of the CFBundle API. I didn't look much
futher, and the chatter I Googled implied that it might be
undocumented. The xcodebuild script is probably definitive.
Good thing it's a shell script.
> Perhaps the usage should look like:
> exe myexe : $(SOURCES).cpp ;
> bundle myexe.app : myexe : <icon>myexe.icns ;
I don't know Jam nomenclature, so I don't know if exe means
"executable" or "application", is it a component, or does it
constitute the entire redistributable?
It seemed to me like an extra step, but it looked like resources
were included in the exe target for Windows, which makes sense,
because they are linked in. I didn't know if people would want
the same experience on OS X.
So, I'm leaning toward a bundle rule, too. (I'm still just
learning the Boost.Build syntax, but it helps to have a specific
task in hand when studying.)
-- Alan Gutierrez - alan_at_[hidden]
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk