Как сделать так, чтобы "dzil test" передавал аргументы командной строки в Makefile.PL?

Для одного из моих модулей Perl на основе XS, который зависит от библиотеки C, я использую Dist::Zilla вместе с MakeMaker::Awesome плагин для создания моего Makefile.PL,

Чтобы передать параметры Makefile.PL (особенно INC а также LIBS), Я использовал для установки PERL_MM_OPT переменная окружения, которая до сих пор работала нормально.

Теперь я хочу использовать Devel::CheckLib проверить наличие библиотеки C. Devel::CheckLib также поддерживает INC а также LIBS когда поставляется через командную строку, но он не читает эти параметры из PERL_MM_OPT,

Как я могу сделать dzil test передать аргументы командной строки Makefile.PL?

Из быстрого взгляда на источник MakeMaker::Runner плагин это, кажется, не поддерживается. Есть ли другой обходной путь?

1 ответ

Решение

Передача аргументов Makefile.PL просто не поддерживается dzil и, вероятно, никогда не будет. В качестве обходного пути я добавляю содержимое PERL_MM_OPT в локальную копию @ARGV прежде чем позвонить в Devel::CheckLib:

{
    local @ARGV;
    unshift(@ARGV, ExtUtils::MakeMaker::_shellwords($ENV{PERL_MM_OPT} || ''));
    check_lib_or_exit(...);
}

Некрасиво, но работает.

Другие вопросы по тегам