Creates a new package at path: a DESCRIPTION, the RZig scaffold of
use_rzig() with its hello_zig() example and help page, and, by default,
a testthat suite with one test of hello_zig(). The package builds with
R CMD INSTALL once a supported Zig compiler is available (see
find_zig()) and passes R CMD check as created.
Usage
create_rzig_package(path, fields = list(), tests = TRUE, ci = FALSE)Arguments
- path
The directory to create. It must not exist or must be empty.
- fields
A named list of
DESCRIPTIONfields that replace or extend the defaults.- tests
If
TRUE, addtests/testthat.Rand a test ofhello_zig(), with testthat inSuggests.- ci
If
TRUE, add the GitHub Actions workflow ofuse_rzig_ci().
Details
The package name is the last component of path. The default
DESCRIPTION fields are placeholders for the title, the description and
the author; fields replaces or adds fields, for example
fields = list(Title = "Fast Rank Statistics", "Authors@R" = 'person("Ada", "Lovelace", email = "ada@example.org", role = c("aut", "cre"))').
The license is GPL-3, the license of the framework sources the package
contains (another field value is the package author's choice).
Examples
package_path <- file.path(tempdir(), "zigstats")
create_rzig_package(package_path)
#> Created package zigstats at /tmp/Rtmp7FFeHY/zigstats
#> Write Zig functions in src/rzig/src/main.zig, then run rzig::document(path) and rzig::build_zig(path)
list.files(package_path, recursive = TRUE)
#> [1] "DESCRIPTION"
#> [2] "NAMESPACE"
#> [3] "R/rzig-wrappers.R"
#> [4] "cleanup"
#> [5] "cleanup.win"
#> [6] "configure"
#> [7] "configure.win"
#> [8] "man/hello_zig.Rd"
#> [9] "src/Makevars.in"
#> [10] "src/Makevars.win.in"
#> [11] "src/entry.c"
#> [12] "src/rzig/build.zig"
#> [13] "src/rzig/build.zig.zon"
#> [14] "src/rzig/c_libraries.zon"
#> [15] "src/rzig/framework/alloc.zig"
#> [16] "src/rzig/framework/attributes.zig"
#> [17] "src/rzig/framework/boundary.zig"
#> [18] "src/rzig/framework/c/abi.zig"
#> [19] "src/rzig/framework/callable.zig"
#> [20] "src/rzig/framework/class.zig"
#> [21] "src/rzig/framework/compat.zig"
#> [22] "src/rzig/framework/complex.zig"
#> [23] "src/rzig/framework/convert.zig"
#> [24] "src/rzig/framework/error_state.zig"
#> [25] "src/rzig/framework/external.zig"
#> [26] "src/rzig/framework/generated/arity.zig"
#> [27] "src/rzig/framework/generated/manifest.zig"
#> [28] "src/rzig/framework/interrupt.zig"
#> [29] "src/rzig/framework/io.zig"
#> [30] "src/rzig/framework/lapack.zig"
#> [31] "src/rzig/framework/list.zig"
#> [32] "src/rzig/framework/matrix.zig"
#> [33] "src/rzig/framework/na.zig"
#> [34] "src/rzig/framework/optimize.zig"
#> [35] "src/rzig/framework/panic.zig"
#> [36] "src/rzig/framework/parallel.zig"
#> [37] "src/rzig/framework/progress.zig"
#> [38] "src/rzig/framework/protect.zig"
#> [39] "src/rzig/framework/rcall.zig"
#> [40] "src/rzig/framework/record.zig"
#> [41] "src/rzig/framework/register.zig"
#> [42] "src/rzig/framework/rmath.zig"
#> [43] "src/rzig/framework/rng.zig"
#> [44] "src/rzig/framework/rzig.zig"
#> [45] "src/rzig/framework/sexp.zig"
#> [46] "src/rzig/framework/sparse.zig"
#> [47] "src/rzig/framework/thread_identity.zig"
#> [48] "src/rzig/framework/unwind.zig"
#> [49] "src/rzig/src/main.zig"
#> [50] "src/rzig/tools/fetch_zig.R"
#> [51] "src/rzig/tools/imports.R"
#> [52] "src/rzig/tools/repack_macos_archive.sh"
#> [53] "tests/testthat.R"
#> [54] "tests/testthat/test-hello-zig.R"
unlink(package_path, recursive = TRUE)