%Function IsToolboxPresent
%
%IsToolboxPresent checks whether a certain toolbox is present on your
%system.
%
%Syntax:
% res = IsToolboxPresent (TBName);
%
%Input parameters:
% TBName: name of the toolbox
%
%Output parameters:
% res: boolean, is equal to true if the toolbox is present, if not res
% is false
%
%Example:
% IsToolboxPresent ('PLS_toolbox')
% IsToolboxPresent ('Symbolic Math Toolbox')
% IsToolboxPresent ('Symbolic')
%The Biodata toolbox for MATLAB: a spectral database system for storing and
%processing spectra
%C 2008, Kris De Gussem, Raman Spectroscopy Research Group, Department
%of analytical chemistry, Ghent University
%C 2009 Kris De Gussem
%
%This file is part of Biodata.
%
%Biodata is free software: you can redistribute it and/or modify
%it under the terms of the GNU General Public License as published by
%the Free Software Foundation, either version 3 of the License, or
%(at your option) any later version.
%
%Biodata is distributed in the hope that it will be useful,
%but WITHOUT ANY WARRANTY; without even the implied warranty of
%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%GNU General Public License for more details.
%
%You should have received a copy of the GNU General Public License
%along with Biodata. If not, see <http://www.gnu.org/licenses/>.
%Copyright (c) 2008-2009, Kris De Gussem
%All rights reserved.
%
%Redistribution and use in source and binary forms, with or without
%modification, are permitted provided that the following conditions are
%met:
%
% * Redistributions of source code must retain the above copyright
% notice, this list of conditions and the following disclaimer.
% * Redistributions in binary form must reproduce the above copyright
% notice, this list of conditions and the following disclaimer in
% the documentation and/or other materials provided with the distribution
% * Neither the name of Raman Spectroscopy Research Group, Department of
% analytical chemistry, Ghent University nor the names
% of its contributors may be used to endorse or promote products derived
% from this software without specific prior written permission.
%
%THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
%AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
%IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
%ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
%LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
%CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
%SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
%INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
%CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
%ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
%POSSIBILITY OF SUCH DAMAGE.
function res = IsToolboxPresent (TBName)
varName = ['ToolboxPresent' TBName];
eval ([ 'global ' varName]);
eval (['tmp = isempty (' varName ');' ]);
res=0;
if tmp %#ok<NODEF> value comes from the eval command
TBS = ver;
le=length(TBName);
for i=1:length(TBS)
tmp = TBS(i).Name;
if strncmpi(TBName, tmp, min(le,length(tmp)) )==1 %only use first n characters to prevent that a toolbox is not recognisedbecause additional strings are present (e.g. 'toolbox')
res=1;
eval( [varName ' = res;']);
eval ( ['clear ' varName]);
return;
end
end
else
eval ([ 'res = ' varName ';']);
eval ( ['clear ' varName]);
end
eval( [varName ' = res;']);
eval ( ['clear ' varName]);