regarding some changes I have made to get Container build working for the Core Build model using most of what is in place for Container building ManagedBuild projects.
There are 3 patches, 1 for Linux Tools, 1 for CDT general, and 1 patch to get Meson build to work.
The design dynamically creates a new target for each Docker Image that is usable at the time of start-up. A corresponding ContainerGCCToolChain is created. The CommandLauncherManager is used to execute commands and header files are copied over as they are for ManagedBuild projects (i.e. indexing works). Choosing a Container target is all that is needed from the User's perspective.
Tools are run using "sh -c" so that the shell path will be used. The OS for all containers is "container-linux". At the moment I have hard-coded this, but I could change it to use a new Launchbar interface so that the release is still a minor one.
Local is still the default target. I found a bug in the CoreBuildLaunchbarTracker where it was starting a job for each target and using a local variable to set the target. When a target provider adds multiple targets, the result is a random final selection. I changed it to use the lastTarget variable which meant the last thread running would set the active target to be the last set target which in this case is Local and is the desired behaviour.
With all 3 patches, Meson projects can be built locally or in a Container with indexing supported. I added some code to refresh the scanner info when the target changes (e.g. local changing to a Docker Container or vice-versa). Double-clicking on a header file just after switching doesn't seem to register right away, but clicking again, it works fine. I think this is just a notification issue with the Outline View.