Каждая из стандартных парадигм сборки имеет свой собственный способ определения зависимостей.Во всех этих случаях процесс сборки попытается установить ваши зависимости автоматически в некоторых контекстах.
В ExtUtils::MakeMaker
вы передаете ссылку на хеш в * 1007Поле * в WriteMakefile
:
# Makefile.PL for My::Module
use ExtUtils::MakeMaker;
WriteMakefile (
NAME => 'My::Module',
AUTHOR => ...,
...,
PREREQ_PM => {
'Some::Dependency' => 0, # any version
'Some::Other::Dependency' => 0.42, # at least version 0.42
...
},
...
);
В Module::Build
вы передаете хэш-ссылку в поле build_requires
:
# Build.PL
use Module::Build;
...
my $builderclass = Module::Build->subclass( ... customizations ... );
my $builder = $builderclass->new(
module_name => 'My::Module',
...,
build_requires => {
'Some::Dependency' => 0,
'Some::Other::Dependency' => 0.42,
},
...
);
$builderclass->create_build_script();
В Module::Install
вы выполняете одну или несколько команд requires
перед вызовом команды для записи Makefile:
# Makefile.PL
use inc::Module::Install;
...
requires 'Some::Dependency' => 0;
requires 'Some::Other::Dependency' => 0.42;
test_requires 'Test::More' => 0.89;
...
WriteAll;