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

View source: R/Rcpp.package.skeleton.R

Rcpp.package.skeletonR 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)

Rcpp documentation built on Nov. 3, 2024, 1:06 a.m.