如何创建具有外部依赖关系的CRAN ready R包(libxml2)

时间:2016-09-19 08:48:07

标签: 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做什么?

1 个答案:

答案 0 :(得分:3)

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

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

  • 对于Windows,需要从xml2复制文件tools/winlibs.Rdependencies { // Single target that includes all FirebaseUI libraries compile 'com.firebaseui:firebase-ui:0.5.3' } 。这是一个简单的脚本,可以在Windows上构建R包时自动下载并静态链接libxml2 from rwinlib

这些构建脚本经过测试,几乎可以在任何平台上运行。