Search code examples
rrcppr-packagercpparmadillorcppparallel

Add RcppParallel requisites to the NAMESPACE of an R package automatically when compiling the package


I'm using RcppParallel in my own R package.

I know that I need to add Imports: RcppParallel to the DESCRIPTION file and importFrom(RcppParallel, RcppParallelLibs) to the NAMESPACE file.

My current workflow to compile my R package is:

  1. run Rcpp::compileAttributes()
  2. run devtools::document()
  3. manually add importFrom(RcppParallel, RcppParallelLibs) to the NAMESPACE file
  4. run devtools::install("MyPackage",quick = T,upgrade="never")

My question is what changes should I make to my R package, so that I can skip the manual step 3? I already add Imports: RcppParallel to the DESCRIPTION file and why does importFrom(RcppParallel, RcppParallelLibs) not show up in the NAMESPACE file after step 2?


Solution

  • In one of your C++ source files add this to an existing entry

    //' @importFrom RcppParallel RcppParallelLibs
    

    When you run Rcpp::compileAttributes() this gets carried over to an R file where the roxygen2 package, when running in 'full mode' also rewriting NAMESPACE will add the entry.