function out = isEqualTo(h,src)

%   Copyright 2014 The MathWorks, Inc.

out = false;
if ~strcmp( h.Name, src.Name )
    return
end
if ~isequal( h, src )
    return
end
% Double check the handle properties
if ~h.BuilderApplication.isEqualTo( src.BuilderApplication )
    return
end
if ~h.BuilderApplication.isEqualTo( src.BuilderApplication )
    return
end
if ~h.BuildTools.isEqualTo( src.BuildTools )
    return
end
if ~h.PrebuildTools.isEqualTo( src.PrebuildTools )
    return
end
if ~h.PostbuildTools.isEqualTo( src.PostbuildTools )
    return
end
if ~h.BuildConfigurations.isEqualTo( src.BuildConfigurations )
    return
end
if ~h.Macros.isEqualTo( src.Macros )
    return
end
if ~h.Attributes.isEqualTo( src.Attributes )
    return
end
if isempty( h.CustomBuildConfigurations )~=isempty( src.CustomBuildConfigurations )
    return
end
if ~isempty( h.CustomBuildConfigurations ) && ~isempty( src.CustomBuildConfigurations ) && ~h.CustomBuildConfigurations.isEqualTo( src.CustomBuildConfigurations )
    return
end
out = true;
end
