|
45 | 45 |
|
46 | 46 | if ~exist(lsl_fname, 'file') |
47 | 47 | if ispc |
48 | | - % On Windows, also try simply 'lsl.dll' |
49 | 48 | new_sopath = fullfile(binarypath, 'lsl.dll'); |
| 49 | + elseif ismac && exist(fullfile(binarypath, 'liblsl.dylib'), 'file') |
| 50 | + new_sopath = fullfile(binarypath, 'liblsl.dylib'); |
50 | 51 | else |
51 | 52 | new_sopath = fullfile('/usr/lib/', so_fname); |
52 | 53 | end |
|
83 | 84 | copyfile(fullfile(binarypath, 'liblsl_archive', 'lib', 'lsl.lib'),... |
84 | 85 | fullfile(binarypath, 'lsl.lib')); |
85 | 86 | elseif ismac |
86 | | - untar(fullfile(binarypath, liblsl_url_fname),... |
87 | | - fullfile(binarypath, 'liblsl_archive')); |
88 | | - error('TODO: copyfile from liblsl_archive to lsl_fname on mac.'); |
| 87 | + % Use system tar because Matlab untar does not preserve symlinks. |
| 88 | + mkdir(fullfile(binarypath, 'liblsl_archive')); |
| 89 | + system(['tar -C ' fullfile(binarypath, 'liblsl_archive') ' -xf ' fullfile(binarypath, liblsl_url_fname)]); |
| 90 | + copyfile(fullfile(binarypath, 'liblsl_archive', 'lib', '*.dylib'), binarypath); |
| 91 | + dylib_list = dir(fullfile(binarypath, '*.dylib')); |
| 92 | + [~, lib_ix] = min(cellfun(@length, {dylib_list.name})); |
| 93 | + lsl_fname = fullfile(dylib_list(lib_ix).folder, dylib_list(lib_ix).name); |
89 | 94 | elseif isunix |
90 | 95 | error(['Automatic extraction of debian package not yet supported.', ... |
91 | 96 | ' Please install manually: ' fullfile(binarypath, liblsl_url_fname)]); |
|
0 commit comments