From ca8a4af3404aadf0cb59837d68bf225665109aef Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 15 Sep 2014 16:11:26 +0200 Subject: [PATCH] Mac support (issue #2): look also for .dylib files when default .so files don't exist --- DESCRIPTION | 2 +- NEWS | 7 +++++++ R/package.R | 5 ++++- R/utils.R | 6 ++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index d113f29..4576e44 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: RcppOctave Type: Package Title: Seamless Interface to Octave -- and Matlab -Version: 0.14.3 +Version: 0.14.4 Date: 2013-11-07 Author: Renaud Gaujoux Maintainer: Renaud Gaujoux diff --git a/NEWS b/NEWS index abd5d49..22d1401 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +******************** +Changes in 0.14.4 +******************** +FIXES + o Mac support: look also for .dylib files when default .so files don't exist + (issue #2) + ******************** Changes in 0.14.3 ******************** diff --git a/R/package.R b/R/package.R index 648cd45..259de4b 100644 --- a/R/package.R +++ b/R/package.R @@ -134,7 +134,10 @@ NULL } .load_dep <- function( libdir = Octave.config[['libdir']] ){ - dlibs <- file.path(libdir, paste0(Octave.config[['libs']], .Platform$dynlib.ext)) + if( is.Mac() && !file.exists(dlibs <- file.path(libdir, paste0(Octave.config[['libs']], .Platform$dynlib.ext))) ){ + # on Mac look for .dylib if default .so does not exist + dlibs <- file.path(libdir, paste0(Octave.config[['libs']], ".dylib")) + } sapply(dlibs, dyn.load) } diff --git a/R/utils.R b/R/utils.R index 3f79f3e..98ddcee 100644 --- a/R/utils.R +++ b/R/utils.R @@ -160,3 +160,9 @@ system_call <- function(...){ }else base::system(..., intern = TRUE) } + +is.Mac <- function(check.gui=FALSE){ + is.mac <- (length(grep("darwin", R.version$platform)) > 0) + # return TRUE is running on Mac (adn optionally through GUI) + is.mac && (!check.gui || .Platform$GUI == 'AQUA') +}