@@ -404,6 +404,13 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) {
404404 depends <- unique(.splitDepends(depends ))
405405 depends <- depends [depends != " R" ]
406406
407+ # check the NAMESPACE file to see if dynamic registration is enabled
408+ namespaceFile <- file.path(pkgdir , " NAMESPACE" )
409+ if (! file.exists(namespaceFile ))
410+ stop(" pkgdir must refer to the directory containing an R package" )
411+ pkgNamespace <- readLines(namespaceFile , warn = FALSE )
412+ registration <- any(grepl(" ^\\ s*useDynLib.*\\ .registration\\ s*=\\ s*TRUE.*$" , pkgNamespace ))
413+
407414 # determine source directory
408415 srcDir <- file.path(pkgdir , " src" )
409416 if (! file.exists(srcDir ))
@@ -449,7 +456,7 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) {
449456
450457 # generate exports
451458 invisible (.Call(" compileAttributes" , PACKAGE = " Rcpp" ,
452- pkgdir , pkgname , depends , cppFiles , cppFileBasenames ,
459+ pkgdir , pkgname , depends , registration , cppFiles , cppFileBasenames ,
453460 includes , verbose , .Platform ))
454461}
455462
0 commit comments