我正在开发一个可以在 Win32 和 *nix 上运行的 CPAN 发行版。然而,为了让它在 Win32 上工作,它需要另一个只能安装在 Win32 上的 CPAN 发行版(模块)。
这样做的问题是,通过将该模块声明为依赖项,它无法安装在 *nix 机器上。但它不会在 *nix 机器上真正使用/需要,只有在 Win32 上运行时。
我的发行版ExtUtils::MakeMaker
在自动生成的 hash 中使用和配置依赖项%WriteMakefileArgs
。
我尝试Makefile.PL
根据运行它的操作系统进行编辑以添加或删除依赖项。但是,这实际上不适用于 and 的生成META.json
,META.yml
它们是根据我最终执行的操作系统生成的make dist
。如果我在 Windows 上运行它,那么只会将 Win32 依赖项添加到这些文件中并破坏 *nix 安装。如果我在 *nix 上运行它,则不会添加依赖项,并且在测试分发时它可能会破坏 Win32 上的安装。
有没有办法为特定操作系统定义不同的依赖项,以使应用程序在安装发行版时喜欢CPAN
或CPANminus
可以在每个操作系统上成功运行?