A bunch of C++ work lately (and never recorded anything here):
Managed to figure out how to distribute ROOT in nuget, finally. The idea is a cheat. The nuget package is tiny - downloads a targets and props file. During the build, the installation on the local machine is checked. If it is matches the version requested, then all include files, etc., point to that and the build runs. If not, it will download the proper version from root.cern.ch, unpack it in the user's TEMP directory, and then use that. It will also define a few important variables for debug-running. There are two problems: intellisense doesn't work until VS rescans the project if a download had to occur and there is an incorrect local installation of ROOT. And the debugger environment variable modifications won't work until the person reloads the project. The latter should be a bug, I think. ;-) GitHub contains what is needed, including custom MSBUILD commands.
After conversation with Bertrand I realized that the vc12 bug isn't actually too long a file - it is a nested namespace: namespace ROOT { namespace Fit { namespace ROOT {}}}. That second ROOT causes all hell to break loose. Created a single file, 40 lines long, removed a lot of the cruft, and the bug still occurs. Sweet. GitHub was updated, as was the bug report in connect.
I built a version of Pythia8.1 and put it on nuget. Build and package instructions can be found in GitHub.
In order to do that I used the CoApp tools for C++ packages. But those tools don't allow you to use custom MSBuild commands. So I added some source code, submitted a pull request. It is still flawed, but need some input from experts before I fix it (event at the level of it being the correct approach!).
Created a tiny package that causes a Debug build to behave like a Release build. However, it isn't of much use - turns out CoApp keys debug/release off the name of the configuration, not the flags!!!! :( Till that can be changed, the package isn't worth much.









