[R-pkg-devel] Please install cmake on macOS builders

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Fri May 12 05:51:21 CEST 2023


I think it would be quite useful to have some community repository of code snippets dealing with such situations. R-exts gives advice and pieces of code which are useful, but they are not complete solutions and situations like Dirk's example are not that uncommon. (E.g., I recall some of the spatial packages copy/pasting code from each other for quote some time - which works, but is error prone if changes need to be made).

If one has to rely on a 3rd party library and one wants to fall back to source compilation when it is not available, it is a quite complex task, because one has to match the library's build system to R's and the package build rules as well. There are many ways where this can go wrong - Dirk mentioned some of them - and ideally not every package developer in that situation should be going through the pain of learning all the details the hard way.

Of course there are other packages as an example, but for someone not familiar with the details it's hard to see which ones do it right, and which ones don't - we don't always catch all the bad cases on CRAN.

I don't have a specific proposal, but if there was a GitHub repo or wiki or something to try to distill the useful bits from existing packages, I'd be happy to review it and give advice based on my experience from that macOS binary maintenance if that's useful.

Cheers,
Simon


> On May 12, 2023, at 8:36 AM, Dirk Eddelbuettel <edd using debian.org> wrote:
> 
> 
> Hi Reed,
> 
> On 11 May 2023 at 11:15, Reed A. Cartwright wrote:
> | I'm curious why you chose to call cmake from make instead of from configure.
> | I've always seen cmake as part of the configure step of package building.
> 
> Great question! Couple of small answers: i) This started as a 'proof of
> concept' that aimed to be small so getting by without requiring `configure`
> seemed worth a try, ii) I had seen another src/Makevars invoking compilation
> of a static library in a similar (albeit non-cmake) way and iii) as we now
> know about section 1.2.6 (or soon 1.2.9) 'Using cmake' has it that way too.
> 
> Otherwise I quite like having `configure` and I frequently use it -- made
> from 'genuine' configire.in via `autoconf`, or as scripts in shell or other
> languages.
> 
> Cheers, Dirk
> 
> PS My repaired package is now on CRAN. I managed to bungle the static library
> build (by not telling `cmake` to use position independent code), bungled
> macOS but not telling myself where `cmake` could live, and in fixing that
> bungled Windows by forgetting to add `src/Makevars.win` fallback. Yay me.
> 
> -- 
> dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 



More information about the R-package-devel mailing list