Mercurial > pub > dyncall > bindings
comparison R/rdyncall/R/dynfind.R @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0cfcc391201f |
---|---|
1 | |
2 dynfind1 <- if (.Platform$OS.type == "windows") { | |
3 function(name, ...) { | |
4 handle <- .dynload(paste("lib",name,sep=""),...) | |
5 if (!is.null(handle)) return(handle) | |
6 .dynload(name,...) | |
7 } | |
8 } else { | |
9 if ( Sys.info()[["sysname"]] == "Darwin" ) { | |
10 function(name, ...) { | |
11 handle <- .dynload(paste(name,".framework/",name,sep=""),...) | |
12 if (!is.null(handle)) return(handle) | |
13 .dynload(paste("lib",name,".dylib",sep=""),...) | |
14 } | |
15 } else { | |
16 function(name, ...) { | |
17 handle <- .dynload(paste("lib",name,".so",sep=""),...) | |
18 if (!is.null(handle)) return(handle) | |
19 handle <- .dynload(paste("lib",name,sep=""),...) | |
20 if (!is.null(handle)) return(handle) | |
21 .dynload(paste(name,sep=""),...) # needed by Solaris to lookup 'R'. | |
22 } | |
23 } | |
24 } | |
25 | |
26 dynfind <- function(libnames, auto.unload = TRUE) { | |
27 for (libname in libnames) { | |
28 handle <- dynfind1(libname, auto.unload) | |
29 if (!is.null(handle)) return(handle) | |
30 } | |
31 } | |
32 |