inst/testpackages/testpkg0/R/has-devel.r

#Stolen from devtools:

#' Check if you have a development environment installed.
#'
#' Thanks to the suggestion of Simon Urbanek.
#'
#' @return TRUE if your development environment is correctly set up, otherwise
#'   returns an error.
#' @export
#' @examples
#' has_devel()
has_devel <- function() {
    foo_path <- file.path(tempdir(), "foo.c")

    cat("void foo(int *bar) { *bar=1; }\n", file = foo_path)
    on.exit(unlink(foo_path))

    R("CMD SHLIB foo.c", tempdir())
    dylib <- file.path(tempdir(), paste("foo", .Platform$dynlib.ext, sep=''))
    on.exit(unlink(dylib), add = TRUE)

    dll <- dyn.load(dylib)
    on.exit(dyn.unload(dylib), add = TRUE)

    stopifnot(.C(dll$bar, 0L)[[1]] == 1L)

    TRUE
}
dtenenba/BiocCheck documentation built on May 15, 2019, 4:53 p.m.