Ding Li
Ding Li

Reputation: 723

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?

Upvotes: 0

Views: 237

Answers (2)

Dirk is no longer here
Dirk is no longer here

Reputation: 368389

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.

Upvotes: 1

Marek Fiołka
Marek Fiołka

Reputation: 4949

Use the devtools package for this. Each package you want to add to your own package add the command use_package

library(devtools)
use_package("RcppParallelw", min_version = T)

The use_package function will automatically add any entries needed in DESCRIPTION for you. Additionally, the min_version = T option will ensure that your package requires RcppParallelw at a version not lower than you currently have installed.

Upvotes: 0

Related Questions