I imagine this isn't the intended behaviour but also has a very easy workaround (don't use hyphens in a C++ source filename).
temp<- tempfile(fileext="contains-hyphen.cpp")
write("#include <cpp11.hpp>[[cpp11::register]]void some_function() {} ", temp)
cpp11::cpp_source(temp)
#> /private/var/folders/gt/l87wjg8s7312zs9s7c1fgs900000gn/T/Rtmp9b1IjL/file1045918f3e435/src/cpp11.cpp:5:43: error: expected ';' after top level declarator#> extern "C" SEXP _file1045977566e56contains-hyphen_some_function() {#> ^#> ;#> 1 error generated.#> make: *** [/private/var/folders/gt/l87wjg8s7312zs9s7c1fgs900000gn/T/Rtmp9b1IjL/file1045918f3e435/src/cpp11.o] Error 1#> make: *** Waiting for unfinished jobs....#> Error: Compilation failed.
some_function()
#> Error in some_function(): could not find function "some_function"Created on 2021-11-10 by the reprex package (v2.0.1)
I imagine this isn't the intended behaviour but also has a very easy workaround (don't use hyphens in a C++ source filename).
Created on 2021-11-10 by the reprex package (v2.0.1)