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

#### 4.3.1.7 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.