【问题标题】:ExtUtils::MakeMaker: how do I specify a binary executable prerequisite for test and/or installation?ExtUtils::MakeMaker: 如何为测试和/或安装指定二进制可执行先决条件?
【发布时间】:2017-12-19 03:21:47
【问题描述】:

我正在使用ExtUtils::MakeMakerMakefile.PL 为Perl 包创建Makefile

Perl 包(和测试)依赖于 Perl 包通过 Perl 的 system() 调用的可执行文件。

有什么方法可以使用ExtUtils::MakeMaker 将可执行文件指定为先决条件。

【问题讨论】:

  • 作为一种解决方法,您始终可以添加一个00dependencies.t 测试,如果可执行文件不存在,该测试将失败。它会做更多的工作,直到它到达那里,但它会成功地阻碍安装。

标签: perl cpan


【解决方案1】:

只需在Makefile.PL 中的任意位置添加此行:

system("$executable", "--version") == 0 or die "$executable: $?";

您可能还想在$PATH 以外的其他位置搜索$executable,并且可能希望更好地诊断错误,但这基本上是您应该做的。对于libintl-perl,我什至在Makefile.PL 中编译和链接C 代码。

不幸的是,您无法轻松将该技术移植到Module::Build,同样的原因您也无法将其与Dist::Zilla 或类似的构建工具一起使用。

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 2011-08-18
    • 2019-04-05
    • 2010-10-12
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多