Crystal Space 2.0.0: 4.3.1.8 Meta-Information Embedding

[ < ] | [ > ] |  | [ << ] | [ 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`

This document was generated using texi2html 1.76.