如何创建具有外部依赖项 libxml2 的 CRAN 就绪 R 包

Rik*_*d N 4 r cran r-package

我创建了一个 R 包,我想提交给 CRAN。它包含需要用普通 C 编译的代码,并且此代码依赖于libxml2库。

我目前的解决方案是让 Linux 和 Mac 用户安装该libxml2-dev包,让他们编译和安装 R 源包。

对于 Windows,我创建了一个特殊的二进制 R 包,其中包含所需的二进制依赖项。在阅读 CRAN 指南时,我看到只能上传源包,并且它们可能不包含任何二进制文件。

在这些指导方针之后,我的问题是:

  1. Mac/Linux 可以让用户在安装 R 包之前安装 libxml2-dev 还是有其他解决方案?
  2. 对于无法直接为最终用户安装 libxml2 的 Windows,我应该怎么做?

Jer*_*oen 6

如上所述,您可以复制xml2包的功能:

  • 要在 Linux/MacOS 上运行,请复制文件configure/src/Makevars.in. 请注意,macOS 默认包含 libxml2 的副本,因此您可以-lxml2像在 Linux 上一样安全地链接到。

  • 对于Windows需要复制的文件src/Makevars.win,并tools/winlibs.R从XML2。这是一个简单的脚本,在 Windows 上构建 R 包时,它会自动从 rwinlib下载并静态链接libxml2

这些构建脚本经过测试可以在(几乎)任何平台上工作。