Vendoring is the act of making your own copy of the 3rd party packages your project is using. It is often used in the go language community.

cpp_vendor(dir = NULL, subdir = "/inst/include")

Arguments

dir

The directory to vendor the code into.

subdir

The subdirectory to vendor the code into.

Value

The file path to the vendored code (invisibly).

Details

This function vendors cpp11 and cpp11eigen into your package by copying the cpp11 and cpp11eigen headers into the `inst/include` folder and adding 'cpp11 version: XYZ' and 'cpp11eigen version: XYZ' to the top of the files, where XYZ is the version of cpp11 and cpp11eigen currently installed on your machine.

Vendoring places the responsibility of updating the code on you. Bugfixes and new features in cpp11 and cpp11eigen will not be available for your code until you run `cpp_vendor()` again.

Examples

# create a new directory
dir <- tempdir()
dir.create(dir)
#> Warning: '/tmp/RtmpWL6JSs' already exists

# vendor the cpp11 headers into the directory
cpp_vendor(dir)
#> Makevars and/or Makevars.win should have a line such as 'PKG_CPPFLAGS = -I../inst/include'
#> DESCRIPTION should not have lines such as 'LinkingTo: cpp11'