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(path = ".")
path | The path to the package root directory |
---|
The file path to the vendored code (invisibly).
This function vendors cpp11 into your package by copying the cpp11
headers into the inst/include
folder of your package and adding
'cpp11 version: XYZ' to the top of the files, where XYZ is the version of
cpp11 currently installed on your machine.
If you choose to vendor the headers you should remove LinkingTo: cpp11
from your DESCRIPTION.
Note: vendoring places the responsibility of updating the code on
you. Bugfixes and new features in cpp11 will not be available for your
code until you run vector_cpp11()
again.
# create a new directory dir <- tempfile() dir.create(dir) # vendor the cpp11 headers into the directory cpp_vendor(dir) list.files(file.path(dir, "inst", "include", "cpp11")) #> [1] "altrep.hpp" "as.hpp" "attribute_proxy.hpp" #> [4] "data_frame.hpp" "declarations.hpp" "doubles.hpp" #> [7] "environment.hpp" "external_pointer.hpp" "function.hpp" #> [10] "integers.hpp" "list_of.hpp" "list.hpp" #> [13] "logicals.hpp" "matrix.hpp" "named_arg.hpp" #> [16] "protect.hpp" "r_bool.hpp" "r_string.hpp" #> [19] "r_vector.hpp" "R.hpp" "raws.hpp" #> [22] "sexp.hpp" "strings.hpp" # cleanup unlink(dir, recursive = TRUE)