In contrast to data files and fonts, plugins aren't automatically linked to your executable when you require them in the preprocessor commands. The following code, for example, will not force the linker to link "jpeg2000" into your executable:
@REQUIRE "jpeg2000" |
If you want to have jpeg2000.hwp
linked into your executable, you have to set
the Link
tag to True
. The code looks like this then:
@REQUIRE "jpeg2000", {Link = True} |
In that case, jpeg2000.hwp
will be linked to your executable and the user
won't need to keep a copy of jpeg2000.hwp
because it has already been linked
into the executable.
Alternatively, you can also use the ‘-linkplugins’ console argument to link plugins into your executable. See Console arguments for details.
Note that plugins can only be linked to executables, not to applets, since applets are platform-independent and plugins are not.
Before you can use the plugin linker, you first have to copy the plugins you would
like to link into a directory named LinkerPlugins
. On AmigaOS and compatibles,
this directory needs to be created in Hollywood's installation directory, i.e. you
need to create Hollywood:LinkerPlugins
. On all other systems, you have to create
the LinkerPlugins
directory in the directory where Hollywood has been installed,
i.e. next to the Hollywood executable. Keep in mind that on macOS this will be
inside the application bundle, i.e. in HollywoodInterpreter.app/Contents/Resources/LinkerPlugins
.
Furthermore, you have to create the following architecture subdirectories inside the
LinkerPlugins
directory:
arm-android-v7a arm64-android-v8a arm-ios arm-linux m68k-amigaos m881-amigaos ppc-amigaos ppc-linux ppc-macos ppc-morphos ppc-warpup x86-aros x86-macos x86-linux x86-windows x86-windows-console x64-linux x64-macos x64-windows x64-windows-console |
After that, you have to copy the plugins you want to link to these subdirectories.
You need to copy plugins for all the architectures you want to compile executables
for. If you don't do that, the linker won't be able to find the plugins to link.
Note that the linker will look for plugins only inside the LinkerPlugins
directory.
It won't look anywhere else, in particular not in the standard plugins location.
Note that when creating executables for the m881-amigaos
architecture, the
linker will also look for plugins in the m68k-amigaos
directory because
both architectures are completely compatible. The same is true for ppc-warpup
which will also take both, the m68k-amigaos
and m881-amigaos
architectures, into account. Also, x86-windows-console
and x86-windows
are compatible as are x64-windows-console
and x64-windows
.
Important note: Make sure to carefully read the license of every plugin you link to your executable because many licenses are very restrictive when it comes to static linking. For example, if you link a plugin that is licensed under the LGPL license, then your complete project automatically becomes LGPL as well and you must provide all sources and data files. So make sure to study plugin licenses before you link them to your executables. You have been warned.