[R-pkg-devel] CRAN 'blackswan' server configuration
Dirk Eddelbuettel
edd @end|ng |rom deb|@n@org
Mon Jun 23 13:56:01 CEST 2025
As a long-time user of and advocate for 'ccache', I can attest that CMake has
good behaviour on its own: just tell it to use 'ccache' if found. There may
be more one than way, on a search I see '<LANG>_COMPILER_LAUNCHER' [1]. And
that is used in a simple pattern I have relied upon in the past:
# Enable compiler cache to speed up recompilation
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif()
That should do the trick.
On the other hand, I found over the years that manually trying to replicate
and outsmart systems in the R package setup is not a winner as one tends to
end up in hard-to-debug corners such as the one you find yourself in.
I do however always set 'ccache' in my own '~/.R/Makevars' and once every
thousand or two packages ('Rcpp' reverse depends let me compile a few)
something breaks because the package at hand does such local gymnastics,
So in short for your external libraries I would just try to tell CMake to
build a static library and to use 'ccache' if found.
Cheers, Dirk
[1] https://cmake.org/cmake/help/latest/prop_tgt/LANG_COMPILER_LAUNCHER.html
--
dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
More information about the R-package-devel
mailing list