[R-pkg-devel] How to update "SystemRequirements: C++11"?
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Mon Feb 6 22:45:57 CET 2023
On 06/02/2023 4:01 p.m., Duncan Murdoch wrote:
> On 06/02/2023 3:46 p.m., Winston Chang wrote:
>> I recently submitted a package to CRAN with "SystemRequirements: C++11".
>> This raises the following NOTE on R-devel, and I was asked to fix and
>> resubmit:
>>
>> * checking C++ specification ... NOTE
>> Specified C++11: please update to current default of C++17
>>
>> If I understand correctly, I have two options, neither of which will work:
>> 1. Remove "SystemRequirements: C++11" entirely. The problem with this is
>> that on systems with older versions of R (3.6 and below, I believe), it may
>> try to compile the package with an older C++ standard, which will fail.
>> 2. Update it to "SystemRequirements: C++17". The problem here is that on
>> systems that don't have a C++17 compiler, the package won't build -- even
>> though the package only actually requires a C++11 compiler.
>>
>> How should I deal with this?
>
> Are you allowed to say "C++11 or C++17"?
Actually I can partially answer this: the test is not based on
SystemRequirements, but on the log of the build, which now contains
lines like this:
using C compiler: ‘Apple clang version 12.0.0 (clang-1200.0.32.28)’
using C++ compiler: ‘Apple clang version 12.0.0 (clang-1200.0.32.28)’
using C++11
using SDK: ‘MacOSX11.1.sdk’
I get "using C++11" because of this line in Makevars:
CXX_STD = CXX11
So I guess the answer is to change your Makevars to make that line
conditional on running under an old version of R. If you figure out how
to do that, could you post the recipe here?
Duncan Murdoch
More information about the R-package-devel
mailing list