[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3.1.8 Meta-Information Embedding

The Crystal Space `configure' script option `--enable-meta-info-embedding' controls whether or not the build system embeds the plugin meta-information into plugin modules (if supported by the platform), and whether or not the plugin loader looks for embedded meta-information. If this option is disabled, or if embedding is not supported by the platform, then the meta-information is laid down alongside the built plugin module (`.so' or `.dll') in a text file with the same name as the plugin module, except with extension `.csplugin'. The meta-information embedding option is enabled, by default.

The platform-specific plugin loaders are capable of reading plugin meta-information when it is embedded and when it exists in a stand-alone `.csplugin' resource. Even when configured for embedding, the plugin loaders will still be able to recognize and utilize external `.csplugin' resource. This means that Crystal Space-based projects with unsophisticated build systems, which are incapable of embedding meta-information into the plugin module, can still create usable plugins by simply placing a copy of the `.csplugin' file alongside the plugin executable (`.so' or `.dll').

External projects which are based upon Crystal Space's Jam build system (`CS/mk/jam') inherit, for free, the capability of embedding meta-information within plugin modules (if supported by the platform). Simply grab the newer `.jam' files from `CS/mk/jam', and add a few definitions to the project's `Jamconfig' file. The exact set of definitions is platform-specific, so consult the appropriate Jam file (`unix.jam', `win32.jam', or `macosx.jam') to determine precisely which which definitions are required. Here is a list of definitions required at the time of writing:

Unix

EMBED_META = yes
LIBBFD.AVAILABLE = yes
OBJCOPY.AVAILABLE = yes
CMD.OBJCOPY = objcopy

Windows

EMBED_META = yes

MacOS/X

EMBED_META = yes


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated using texi2html 1.76.