You're welcome. Just noticed one little error in what I wrote: it's
"installing" that runs all the code, not "building".
Duncan Murdoch
On 2026-01-26 11:49 p.m., Andrew Johnson wrote:
Hi Duncan,
That's perfect, exactly what I was looking for!
Many thanks for the help!
Andrew
-----Original Message-----
From: Duncan Murdoch <[email protected]>
Sent: Friday, 23 January 2026 5:39 AM
To: Andrew Johnson <[email protected]>; R Package Development
<[email protected]>
Subject: Re: [R-pkg-devel] Specifying non-C/C++ build-time dependency
On 2026-01-14 12:55 a.m., Andrew Johnson wrote:
Hi all!
I have an R package which uses several JS scripts/libraries, and I'm trying to
configure the build process to minify the JS files at build-time (via my
jsutils package: https://cran.r-project.org/web/packages/jsutils/).
My current approach is using a configure script to run the minification, with
the jsutils package added as an Import
(https://github.com/AUS-DOH-Safety-and-Quality/controlcharts/pull/25). But this
adds an additional runtime dependency when it's only needed at build time.
Are there any recommended ways for specifying build-time dependencies when the
package doesn't require compilation? My attempts to use the LinkingTo field so
far are giving check notes for not having source or include files.
Any suggestions are much appreciated!
The rgl package keeps Javascript code deep down within the inst directory, and
uses R code calling js::uglify_files to minify them.
Remember that building a package entails running every .R file in the R
directory. In most cases that just executes function definitions, but it can
also execute other code involved in building. So rgl defines a function
rgl::makeDependency(), then calls things like
CanvasMatrixDependency <- makeDependency("CanvasMatrix4",
src = "htmlwidgets/lib/CanvasMatrix",
script = "CanvasMatrix.src.js",
package = "rgl",
debugging = isTRUE(as.logical(Sys.getenv("RGL_DEBUGGING", "FALSE"))))
to minify it and record the information used by htmlwidgets to handle
dependencies. The makeDependency() function is exported from rgl, and might be
useful as a model for the kinds of things you should do. If you're using
htmlwidgets, then you might be able to use it as-is.
Duncan Murdoch
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel