MATLAB: Does SelectCallback run during model build

buildcodecustomEmbedded Coderfilegenerationrtwgensettingsselectcallbackstfsystemtargettlc

In a custom TLC file, we can specify a callback with "rtwgensettings.SelectCallback", which gets executed when the TLC file is selected. The documentation states:
"The SelectCallback function is triggered when the user selects a target with the System Target File browser."
However, this callback also executes when building the model. Is this expected behavior? If so, is there a way to prevent this callback from executing on model build?

Best Answer

This is expected behavior for SelectCallback. As a workaround, you can use the "dbstack" function inside of the callback function to determine if code generation is occurring when the callback is being triggered. For example:
function mySelectCallback(hDlg, hSrc)
s = dbstack;
if ~ismember('build_target.p',{s.file})
disp('Running SelectCallback!!!\n');
% perform callback function logic as intended here
else
% do nothing if 'build_target.p' is in the callstack
end
end