使用 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 它。
我正在维护遗留代码库,被迫使用一些肮脏的 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 它。