Main Site Contents Up Previous Next

Mac OS X Frameworks

On Mac OS X, the Application Tree provides an extra leaf – Mac OS X Frameworks

Add Framework Definition

Add a Mac OS X Framework definition.

Remove Framework Definition

Remove the selected Mac OS X Framework definition.

Under Mac OS X, when Shared Libraries are included, the shared libraries and any Perl XS bundles that rely on the libraries must be encoded to load from your distributed application rather than the absolute locations encoded when the libraries were built.

Given that if you have included a shared library (or written a rule script that includes it) you will know which modules need the shared library, the Mac OS X Frameworks panel allows you to create hints that tell Cava Packager which shared libraries are related and required by which module XS bundles.

For example, to handle the wxWidgets libraries that Cava Packager requires, there is a Framework entry that matches all included shared libraries beginning with the pattern 'libwx_' against the module root 'Wx'. What this means is that every included shared library beginning with the pattern libwx_ will have its identity and dependencies on all other libraries beginning with pattern libwx_ updated to relative rather than absolute locations. Then, all XS modules beginning with Wx in the perl @INC tree will have every dependency on shared libraries beginning 'libwx_' updated to relative rather than absolute locations.

Essentially, if you include a shared library, you also need a Framework rule for each Perl module tree that uses the shared library. The shared library pattern can be the entire library name (before the version.dylib part) for single libraries. It is convenient in the case of wxWidgets libraries to define a short pattern which all the libraries share, as they all have inter-dependencies on each other. The short pattern allows Cava Packager to fix all the dependencies within the shared libraries themselves.

Contents Up Previous Next

Cava Packager Copyright © 2006-2012 Mark Dootson