SpectralSuite
SpectralSuite copied to clipboard
ssutil_modules/projucer_project.rb should only update specific shared files if requested
When projucer projects are updated using ssutil.rb the 'shared' file paths present in the base project are copied to all other projects. This recently led to a bug in which a release build of Morph would not build because it kept having it's dependency on 'SplineHelper.cpp' removed due to this copy. A related issue is that SpectralGate etc all now have a dependency on Spline.cpp which is not required.
We should remove non-required dependencies from all projects. We should remove the automatic 'set_shared_group' functionality in 'ssutil_modules/projucer_project.rb'. This should not be called automatically.
Instead, we should create a new function called update_shared_group which is only called if requested via args. (something like --update-shared-files). What this should do is, instead of just replacing the 'shared' file group. It should only add files in the base shared file group that are not present in the projucer file we are updating. Perhaps in the future we could extend this to removing shared file dependencies too.
Example, Morph has a dependency on shared/SplineHelper.cpp and shared/Spline.cpp. And we add a new file to the base shared group called 'A.cpp'. When running ssutil.rb --update-shared-files then SplineHelper.cpp and Spline.cpp still exist in Morph's shared file group, but 'A.cpp' is also added.