Alien-Build
view release on metacpan or search on metacpan
lib/alienfile.pm view on Meta::CPAN
requires $module => $version;
configure time requirement:
configure {
requires $module;
requires $module => $version;
};
system requirement:
sys {
requires $module;
requires $module => $version;
};
share requirement:
share {
requires $module;
requires $module => $version;
};
specifies a requirement. L<Alien::Build> takes advantage of dynamic requirements, so only
modules that are needed for the specific type of install need to be loaded. Here are the
different types of requirements:
=over
=item configure
Configure requirements should already be installed before the alienfile is loaded.
=item any
"Any" requirements are those that are needed either for the probe stage, or in either the
system or share installs.
=item share
Share requirements are those modules needed when downloading and building from source.
=item system
System requirements are those modules needed when the system provides the library or tool.
=back
=head2 plugin
plugin $name => (%args);
plugin $name => $arg;
Load the given plugin. If you prefix the plugin name with an C<=> sign,
then it will be assumed to be a fully qualified path name. Otherwise the
plugin will be assumed to live in the C<Alien::Build::Plugin> namespace.
If there is an appropriate negotiate plugin, that one will be loaded.
Examples:
# Loads Alien::Build::Plugin::Fetch::Negotiate
# which will pick the best Alien::Build::Plugin::Fetch
# plugin based on the URL, and system configuration
plugin 'Fetch' => 'http://ftp.gnu.org/gnu/gcc';
# loads the plugin with the badly named class!
plugin '=Badly::Named::Plugin::Not::In::Alien::Build::Namespace';
# explicitly loads Alien::Build::Plugin::Prefer::SortVersions
plugin 'Prefer::SortVersions' => (
filter => qr/^gcc-.*\.tar\.gz$/,
version => qr/([0-9\.]+)/,
);
=head2 probe
probe \&code;
probe \@commandlist;
Instructions for the probe stage. May be either a code reference, or a command list.
Multiple probes and probe plugins can be given. These will be used in sequence,
stopping at the first that detects a system installation. L<Alien::Build> will use
a share install if no system installation is detected by the probes.
=head2 configure
configure {
...
};
Configure block. The only directive allowed in a configure block is
requires.
=head2 sys
sys {
...
};
System block. Allowed directives are: requires and gather.
=head2 share
share {
...
};
System block. Allowed directives are: download, fetch, decode, prefer, extract, build, gather.
=head2 start_url
share {
start_url $url;
};
Set the start URL for download. This should be the URL to an index page, or the actual tarball of the source.
=head2 digest
[experimental]
share {
( run in 0.642 second using v1.01-cache-2.11-cpan-fa01517f264 )