Alien-Build
view release on metacpan or search on metacpan
patch
Directory with patches, if available. This will be undef if there are
no patches. When initially installing an alien this will usually be a
sibling of the alienfile, a directory called patch. Once installed
this will be in the share directory called _alien/patch. The former
is useful for rebuilding an alienized package using af.
prefix
The install time prefix. Under a destdir install this is the same as
the runtime or final install location. Under a non-destdir install
this is the stage directory (usually the appropriate share directory
under blib).
root
The build root directory. This will be an absolute path. It is the
absolute form of ./_alien by default.
stage
The stage directory where files will be copied. This is usually the
root of the blib share directory.
system_probe_class
After the probe step this property may contain the plugin class that
performed the system probe. It shouldn't be filled in directly by the
plugin (instead if should use the hook property probe_class, see
below). This is optional, and not all probe plugins will provide this
information.
system_probe_instance_id
After the probe step this property may contain the plugin instance id
that performed the system probe. It shouldn't be filled in directly
by the plugin (instead if should use the hook property
probe_instance_id, see below). This is optional, and not all probe
plugins will provide this information.
plugin_instance_prop
my $href = $build->plugin_instance_prop($plugin);
This returns the private plugin instance properties for a given plugin.
This method should usually only be called internally by plugins
themselves to keep track of internal state. Because the content can be
used arbitrarily by the owning plugin because it is private to the
plugin, and thus is not part of the Alien::Build spec.
runtime_prop
my $href = $build->runtime_prop;
Runtime properties are used during the install and runtime phases
(either under share or system install). This should include anything
that you will need to know to use the library or tool during runtime,
and shouldn't include anything that is no longer relevant once the
install process is complete.
alien_build_version
The version of Alien::Build used to install the library or tool.
alt
Alternate configurations. If the alienized package has multiple
libraries this could be used to store the different compiler or
linker flags for each library. Typically this will be set by a plugin
in the gather stage (for either share or system installs).
cflags
The compiler flags. This is typically set by a plugin in the gather
stage (for either share or system installs).
cflags_static
The static compiler flags. This is typically set by a plugin in the
gather stage (for either share or system installs).
command
The command name for tools where the name my differ from platform to
platform. For example, the GNU version of make is usually make in
Linux and gmake on FreeBSD. This is typically set by a plugin in the
gather stage (for either share or system installs).
ffi_name
The name DLL or shared object "name" to use when searching for
dynamic libraries at runtime. This is passed into FFI::CheckLib, so
if your library is something like libarchive.so or archive.dll you
would set this to archive. This may be a string or an array of
strings. This is typically set by a plugin in the gather stage (for
either share or system installs).
ffi_checklib
This property contains two sub properties:
ffi_checklib.share
$build->runtime_prop->{ffi_checklib}->{share} = [ ... ];
Array of additional FFI::CheckLib flags to pass in to find_lib for
a share install.
ffi_checklib.system
Array of additional FFI::CheckLib flags to pass in to find_lib for
a system install.
Among other things, useful for specifying the try_linker_script
flag:
$build->runtime_prop->{ffi_checklib}->{system} = [ try_linker_script => 1 ];
This is typically set by a plugin in the gather stage (for either
stage (for either share or system installs).
libs_static
The static library flags. This is typically set by a plugin in the
gather stage (for either share or system installs).
perl_module_version
The version of the Perl module used to install the alien (if
available). For example if Alien::curl is installing libcurl this
would be the version of Alien::curl used during the install step.
prefix
The final install root. This is usually they share directory.
version
The version of the library or tool. This is typically set by a plugin
in the gather stage (for either share or system installs).
hook_prop
my $href = $build->hook_prop;
Hook properties are for the currently running (if any) hook. They are
used only during the execution of each hook and are discarded after. If
no hook is currently running then hook_prop will return undef.
name
The name of the currently running hook.
version (probe)
Probe and PkgConfig plugins may set this property indicating the
version of the alienized package. Not all plugins and configurations
may be able to provide this.
probe_class (probe)
Probe and PkgConfig plugins may set this property indicating the
plugin class that made the probe. If the probe results in a system
install this will be propagated to system_probe_class for later use.
probe_instance_id (probe)
Probe and PkgConfig plugins may set this property indicating the
plugin instance id that made the probe. If the probe results in a
system install this will be propagated to system_probe_instance_id
for later use.
METHODS
checkpoint
$build->checkpoint;
Save any install or runtime properties so that they can be reloaded on
a subsequent run in a separate process. This is useful if your build
needs to be done in multiple stages from a Makefile, such as with
ExtUtils::MakeMaker. Once checkpointed you can use the resume
constructor (documented above) to resume the probe/build/install]
process.
root
my $dir = $build->root;
This is just a shortcut for:
my $root = $build->install_prop->{root};
Except that it will be created if it does not already exist.
install_type
my $type = $build->install_type;
This will return the install type. (See the like named install property
above for details). This method will call probe if it has not already
been called.
is_system_install
my $boolean = $build->is_system_install;
Returns true if the alien is a system install type.
is_share_install
my $boolean = $build->is_share_install;
Returns true if the alien is a share install type.
download_rule
my $rule = $build->download_rule;
This returns install rule as a string. This is determined by the
environment and should be one of:
warn
Warn only if fetching via non secure source (secure sources include
https, and bundled files, may include other encrypted protocols in
the future).
digest
Require that any downloaded source package have a cryptographic
signature in the alienfile and that signature matches what was
downloaded.
encrypt
Require that any downloaded source package is fetched via secure
source.
digest_or_encrypt
Require that any downloaded source package is either fetched via a
secure source or has a cryptographic signature in the alienfile and
that signature matches what was downloaded.
( run in 0.848 second using v1.01-cache-2.11-cpan-3d66aa2751a )