@@ -376,11 +376,27 @@ pkgRepo <- function(pkg, lib.loc = NULL) {
376376 else " "
377377}
378378
379- pkgRsyms <- function (pkg , lib.loc = NULL , repo = FALSE ) {
380- libdir <- system.file(" libs" , package = pkg , lib.loc = lib.loc )
381- libs <- Sys.glob(file.path(libdir , " *.so" ))
379+ pkgSharedLibs <- function (pkg , lib.loc = NULL , all.so = FALSE ) {
380+ if (all.so ) {
381+ pat <- sprintf(" \\ %s$|\\ .jnilib$" , .Platform $ dynlib.ext )
382+ pkgdir <- system.file(package = pkg , lib.loc = lib.loc )
383+ so <- dir(pkgdir , pattern = pat , recursive = TRUE ,
384+ all.files = TRUE , full.names = TRUE )
385+ if (Sys.info()[[" sysname" ]] == " Darwin" )
386+ so <- grepv(" DWARF" , so , invert = TRUE )
387+ so
388+ }
389+ else {
390+ libdir <- system.file(" libs" , package = pkg , lib.loc = lib.loc )
391+ Sys.glob(file.path(libdir , " *.so" ))
392+ }
393+ }
394+
395+ pkgRsyms <- function (pkg , lib.loc = NULL , repo = FALSE , all.so = FALSE ) {
396+ libs <- pkgSharedLibs(pkg , all.so = all.so )
382397 if (length(libs ) > 0 ) {
383398 val <- rbind_list(lapply(libs , ofile_syms , keep = " U" ))
399+ val <- clear_rownames(unique(val ))
384400 val $ package <- rep(pkg , nrow(val ))
385401 val $ type <- NULL
386402 if (nrow(val ) > 0 && repo )
@@ -393,10 +409,12 @@ pkgRsyms <- function(pkg, lib.loc = NULL, repo = FALSE) {
393409allPkgsRsyms <- function (lib.loc = NULL ,
394410 Ncpus = getOption(" Ncpus" , 1L ),
395411 verbose = getOption(" verbose" ),
396- repo = FALSE ) {
412+ repo = FALSE ,
413+ all.so = FALSE ) {
397414 p <- rownames(utils :: installed.packages(lib.loc = lib.loc ))
398415 rbind_list(.package_apply(p , pkgRsyms , Ncpus = Ncpus ,
399- verbose = verbose , repo = repo ))
416+ verbose = verbose , repo = repo ,
417+ all.so = all.so ))
400418}
401419
402420moduleRsyms <- function (repo = FALSE ) {
0 commit comments