R: Create a skeleton for a new package depending on Rcpp

Rcpp.package.skeleton {Rcpp} | R Documentation

## Create a skeleton for a new package depending on Rcpp

### Description

`Rcpp.package.skeleton` automates the creation of a new source package that intends to use features of Rcpp.

It is based on the package.skeleton function which it executes first.

### Usage

    Rcpp.package.skeleton(name = "anRpackage", list = character(),
    	environment = .GlobalEnv, path = ".", force = FALSE,
    	code_files = character(), cpp_files = character(),
    	example_code = TRUE, attributes = TRUE, module = FALSE,
    	author = "Your Name",
    	maintainer = if(missing( author)) "Your Name" else author,
    	email = "your@email.com",
    	license = "GPL (>= 2)"
    	)

### Arguments

`name` | See package.skeleton
`list` | See package.skeleton
`environment` | See package.skeleton
`path` | See package.skeleton
`force` | See package.skeleton
`code_files` | See package.skeleton
`cpp_files` | A character vector with the paths to C++ source files to add to the package.
`example_code` | If TRUE, example c++ code using Rcpp is added to the package.
`attributes` | If TRUE, example code makes use of Rcpp attributes.
`module` | If TRUE, an example `Module` is added to the skeleton.
`author` | Author of the package.
`maintainer` | Maintainer of the package.
`email` | Email of the package maintainer.
`license` | License of the package.

### Details

In addition to package.skeleton :

The DESCRIPTION file gains an Imports line requesting that the package depends on Rcpp and a LinkingTo line so that the package finds Rcpp header files.

The NAMESPACE gains a `useDynLib` directive as well as an `importFrom(Rcpp, evalCpp` to ensure instantiation of Rcpp.

The src directory is created if it does not exists.

If `cpp_files` are provided then they will be copied to the src directory.

If the `example_code` argument is set to `TRUE`, example files rcpp_hello_world.h and rcpp_hello_world.cpp are also created in the src. An R file rcpp_hello_world.R is expanded in the R directory, the `rcpp_hello_world` function defined in this files makes use of the C++ function rcpp_hello_world defined in the C++ file. These files are given as an example and should eventually by removed from the generated package.

If the `attributes` argument is `TRUE`, then rather than generate the example files as described above, a single rcpp_hello_world.cpp file is created in the src directory and it's attributes are compiled using the `compileAttributes` function. This leads to the files RcppExports.R and RcppExports.cpp being generated. They are automatically regenerated from scratch each time `compileAttributes` is called. Therefore, one should not modify by hand either of the RcppExports files.

If the `module` argument is `TRUE`, a sample Rcpp module will be generated as well.

### Value

Nothing, used for its side effects

### References

Read the Writing R Extensions manual for more details.

Once you have created a source package you need to install it: see the R Installation and Administration manual, `INSTALL` and `install.packages`.

### See Also

package.skeleton

### Examples

    ## Not run:
    # simple package
    Rcpp.package.skeleton( "foobar" )

    # package using attributes
    Rcpp.package.skeleton( "foobar", attributes = TRUE )

    # package with a module
    Rcpp.package.skeleton( "testmod", module = TRUE )

    # the Rcpp-package vignette
    vignette( "Rcpp-package" )

    # the Rcpp-modules vignette for information about modules
    vignette( "Rcpp-modules" )

    ## End(Not run)

[Package Rcpp version 0.12.13 Index]