1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
function status = slice2matlab(args)
% SLICE2MATLAB Compile Slice files.
%
% Compiles Slice files using the Slice-to-MATLAB compiler
% included with the Ice toolbox.
%
% Parameters:
%
% args - The arguments passed to the Slice-to-MATLAB compiler,
% specified as a string.
%
% Returns:
%
% status - The Slice-to-MATLAB compiler exit status code.
% Copyright (c) ZeroC, Inc. All rights reserved.
function path = findFile(candidates, baseDir, type)
path = '';
for i = 1:length(candidates)
f = fullfile(baseDir, candidates{i});
if exist(f, 'file') == type
path = f;
break;
end
end
end
rootDir = fileparts(mfilename('fullpath'));
path = findFile({'..\slice2matlab.exe'
'..\..\cpp\bin\x64\Release\slice2matlab.exe'
'..\..\cpp\bin\x64\Debug\slice2matlab.exe'
'..\msbuild\packages\zeroc.ice.v140\build\native\tools\slice2matlab.exe'}, rootDir, 2);
searchPath = findFile({'..\slice' '..\..\slice'}, rootDir, 7);
out = '';
if isempty(path)
status = 1;
out = 'Cannot locate slice2matlab.exe\n';
elseif isempty(searchPath)
status = 1;
out = 'Cannot locate slice dir.\n';
else
status = system(sprintf('"%s" -I"%s" %s', path, searchPath, args));
end
if ~isempty(out)
fprintf('%s', out);
end
end
|