On 04/01/2019 1:42 p.m., Dirk Eddelbuettel wrote:
On 4 January 2019 at 19:24, Iñaki Ucar wrote: | On Fri, 4 Jan 2019 at 16:43, Dirk Eddelbuettel <e...@debian.org> wrote: | > | > | > For a few years now I had mused about how nice it would be to have other | > scripts triggered like `cleanup`. For Rcpp, it would be nice to run | > compileAttributes(). For roxygen2, it would be nice to run roxygenize() | > (especially if that continued to work the way it did, but I digress). | > That was mostly a "wouldn't it be nice" question and not that urgent as I | > wrote myself littler scripts for most tasks anyway. | > | > But I now have a related problem at work. We are authoring C++ libraries and | > R packages 'mono-repo' style. And I need to reference builds of the R | > packages back to the repo branches / repo directories used where R CMD build | > ran in a branch -- in order to at R CMD INSTALL time access the matching | > header files and libraries from that branch. I do not see an obvious way of | > encoding this in the .tar.gz created by the R CMD build step. The best I can | > think of is creating binaries via R CMD INSTALL --build instead of creating | > source tarballs. | > | > Is there something better I am missing? Any hacks, hints, or ideas? | | I'm not sure whether I understand correctly what you are trying to | achieve. Isn't generating a custom configure script enough for your | needs? That is what I thought yesterday when I wrote / updated and tested those. They work great when you install from source as they have access to shell's ${PWD} and R's getwd(). But when you run R CMD build, (essentially) just cleanup and a tar are running. No other code. Hence my Subject: here -- a need for a hook. Once you have built a .tar.gz and run R CMD INSTALL on it, R goes off to _another temporary directory_ and while configure may be running ... you are no longer in the directory you called it from. So I have now lost the connection to the particular variant of headers and libraries I may have had in that branch. Doing R CMD INSTALL --build ... is a workaround. But it still would be nice to have an explicit hook. Hope this explains it better, and thanks for the follow-up.
If you want a total hack, the help system can run R code during a build, e.g. \Sexpr[stage=build]{paste("Built at", Sys.time())}. Certainly it could embed some information in a help page; perhaps it could do more. Similarly, vignettes are typically built during R CMD build, so they might be able to have useful side effects.
But it seems likely that something less of a kludge would be desirable. Duncan Murdoch ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel