Skip to content

Commit b71afa5

Browse files
author
luke
committed
Allow non-API use checking in all shared libraries in a package.
git-svn-id: https://svn.r-project.org/R/trunk@89623 00db46b3-68df-0310-9c12-caf00c1e9a41
1 parent d154997 commit b71afa5

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/library/tools/R/apitools.R

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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) {
393409
allPkgsRsyms <- 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

402420
moduleRsyms <- function(repo = FALSE) {

0 commit comments

Comments
 (0)