Skip to content
Snippets Groups Projects
Commit b943708e authored by Nicola Vigano's avatar Nicola Vigano
Browse files

Enhanced function dependency identification


Signed-off-by: default avatarNicola Vigano <nicola.vigano@esrf.fr>

git-svn-id: https://svn.code.sf.net/p/dct/code/trunk@754 4c865b51-4357-4376-afb4-474e03ccb993
parent 50d6731b
No related branches found
No related tags found
No related merge requests found
function deps = gtGetFunctionDeps(functionNames, deps, excludePattern)
function deps = gtGetFunctionDeps(functionNames, deps, pattern, exclude)
% GTGETFUNCTIONDEPS Returns dependecies of the given functions
% deps = gtGetFunctionDeps(functionNames, deps, excludePattern)
% -------------------------------------------------------------
......@@ -18,33 +18,43 @@ function deps = gtGetFunctionDeps(functionNames, deps, excludePattern)
% Formatting and commenting
%
if (ischar(functionNames))
functionNames = {functionNames};
end
if (~exist('exclude', 'var'))
exclude = true;
end
if (~exist('deps', 'var'))
deps = functionNames;
else
deps = unique(union(deps, functionNames));
end
if (~exist('excludePattern', 'var'))
excludePattern = '';
if (~exist('pattern', 'var'))
pattern = {};
elseif (ischar(pattern))
pattern = {pattern};
end
for name = functionNames
listing = depfun(name, '-toponly', '-quiet');
listing = setdiff(listing, intersect(deps, listing));
if (~isempty('excludePattern'))
listing = filterListing(listing, excludePattern);
if (~isempty('pattern'))
listing = filterListing(listing, pattern, exclude);
end
if (~isempty(listing))
deps = gtGetFunctionDeps(listing, deps, excludePattern);
deps = gtGetFunctionDeps(listing, deps, pattern, exclude);
end
end
%%
% sub-functions
function listing = filterListing(listing, excludePattern)
matches = regexp(listing, excludePattern);
listing = listing(cellfun(@(x)isempty(x), matches) == 1);
function listing = filterListing(listing, patternList, exclude)
for patternInternal = patternList
matches = regexp(listing, patternInternal);
listing = listing(cellfun(@(x)isempty(x), matches) == exclude);
end
end
end % end of function
function result = gtGetID19Deps(functionNames)
% GTGETID19DEPS Function used to identify dependencies on ID19's functions
result = gtGetFunctionDeps(functionNames, {}, 'matlab_');
matches = regexp(result, 'id19');
result = result(cellfun(@(x)isempty(x), matches) == 0);
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment