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

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


This document was generated using texi2html 1.76.