使用 devtools::test 时避免重新生成 RcppExports

Avoid regenerating RcppExports when using devtools::test

我正在维护遗留代码库,被迫使用一些肮脏的 hack 来绕过一些 game-breaking issues。黑客需要我手动编辑 RcppExports 文件。是的,这听起来很愚蠢,但它确实有效,而且我不会经常更改界面,所以它会坚持下去。

我用 devtools::test 测试我的包,它在后台调用 testthat::test_dir,后者又调用 devtools::load_all 到 "simulate what happens when a package is installed and loaded with library()"。这不知何故导致我手工制作的 RcppExports 文件被清除并被一些自动生成的东西取代,从而导致很多错误。

所以我在这里,寻找另一个 hack 来解决由 hack 引起的问题。有什么建议吗?

很好,如评论所述。 Rcpp 属性是匹配 // [[...]] 的属性, 这就是 compileAttributes 用来决定要 wtite/overwrite 哪些文件的内容。 但是,整个机制是可选的(尽管推荐)。 如果无论如何都必须切换到手动调整, 然后您可以删除属性并重命名先前生成的导出。 这样 Rcpp 将停止将该代码视为它创建的东西, 所以它将停止 updating/overwriting 它。