MATLAB: How to retrieve the source files from the _sharedutils folder of a build

Embedded Coder

How can I retrieve source files from the _sharedutils folder of a build?

Best Answer

In MATLAB R2018b and prior, you can obtain a list of shared source files using the model build information:
sharedSourceLib = buildInfo.getLinkObjects('SHARED_SRC_LIB')
getSourceFiles(sharedSourceLib, 1, 1)
In MATLAB R2019a and later, we no longer store a list of shared source files in the model buildInfo object. This is because in a model reference hierarchy, each model buildInfo captures a list of shared source files when the model was last built, so different model buildInfo's each have their own list of shared source files. Since each model buildInfo only captured shared source files that existed when the model buildInfo was created, each model buildInfo has a different list of shared source files (a subset of all the files in _sharedutils).
So starting from MATLAB R2019a, the shared utility code has its own buildInfo. You can use the following code to determine a list of the source files:
buildDir = RTW.getBuildDir(model)
sharedFolder = buildDir.SharedUtilsTgtDir;
sharedBuildInfo = load(fullfile(sharedFolder, 'buildInfo.mat'));
sharedBuildInfo = sharedBuildInfo.buildInfo;
sources = getSourceFiles(sharedBuildInfo, 1, 1);