|
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