compileAttributes: Compile Rcpp Attributes for a Package

View source: R/Attributes.R

compileAttributesR Documentation

Compile Rcpp Attributes for a Package


Scan the source files within a package for attributes and generate code as required. Generates the bindings required to call C++ functions from R for functions adorned with the Rcpp::export attribute.


compileAttributes(pkgdir = ".", verbose = getOption("verbose"))



Directory containing the package to compile attributes for (defaults to the current working directory).


TRUE to print detailed information about generated code to the console.


The source files in the package directory given by pkgdir are scanned for attributes and code is generated as required based on the attributes.

For C++ functions adorned with the Rcpp::export attribute, the C++ and R source code required to bind to the function from R is generated and added (respectively) to src/RcppExports.cpp or R/RcppExports.R. Both of these files are automatically generated from scratch each time compiledAttributes is run.

In order to access the declarations for custom Rcpp::as and Rcpp::wrap handlers the compileAttributes function will also call any inline plugins available for packages listed in the LinkingTo field of the DESCRIPTION file.


Returns (invisibly) a character vector with the paths to any files that were updated as a result of the call.


The compileAttributes function deals only with exporting C++ functions to R. If you want the functions to additionally be publicly available from your package's namespace another step may be required. Specifically, if your package NAMESPACE file does not use a pattern to export functions then you should add an explicit entry to NAMESPACE for each R function you want publicly available.

In addition to exporting R bindings for C++ functions, the compileAttributes function can also generate a direct C++ interface to the functions using the Rcpp::interfaces attribute.

See Also

Rcpp::export, Rcpp::interfaces


## Not run: 

# Compile attributes for package in the current working dir

## End(Not run)

Rcpp documentation built on July 9, 2023, 7:26 p.m.