R: Compile Rcpp Attributes for a Package

compileAttributes {Rcpp} | R Documentation

## Compile Rcpp Attributes for a Package

### Description

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.

### Usage

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

### Arguments

`pkgdir` | Directory containing the package to compile attributes for (defaults to the current working directory).
`verbose` | `TRUE` to print detailed information about generated code to the console.

### Details

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.

### Value

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

### Note

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`

### Examples

    ## Not run:

    # Compile attributes for package in the current working dir
    compileAttributes()

    ## End(Not run)

[Package Rcpp version 0.12.13 Index]