December 3, 2019 at 16:27 #26705
I’m on VGDB 5.4R12 build 3242, VS2017 15.9.15
I want to bring this up again because I’m not sure if it has been properly addressed. I am having problems with this area of VGDB because I have a team that is using a 3rd party (linaro) toolchain in a set of visualgdb linux cmake projects.
Importing the toolchain through the package manager imports it with the following:
- A GUID for the toolchain ID
- ToolchainType as “Embedded”
There is no opportunity to edit either of these in the import experience provided through the package manager. A GUID for the toolchain ID is not usable for a team environment because we all need to import the toolchain with the same ID so that the cmake project file can refer to it, we all need the SAME toolchainID. Also, if vgdb cannot infer the toolchain type (which it can’t in my situation – or it’s inferring incorrectly) the user should be given the option to change the toolchain type during the import process.
So what we are doing as a work-around is to import the toolchain from the VGDB project properties in one of the projects. This lets US set the toolchainID, and also sets the toolchain type correctly (I’m assuming VGDB infers that it is a Linux toolchain given that it is being imported through a linux project). BUT, this is not a great solution because everyone needs to import the toolchain themselves through the project properties. This involves an unecessary check-out of the .vgdbcmake file for each team member.
IMO, it should work that you can set the toolchainID and the select the ToolchainType in the import experience provided through the package manager. Then one person in charge of maintaining the toolchain for the project could make the updates to the .vgdbcmake files to point to the new toolchainID (that they decided on), and tell everyone else on the team to download the new toolchain, and then import it through the package manager with a set ID and type. After that the get pull the latest .vgdbcmake files and they will be using the new toolchain.December 3, 2019 at 16:39 #26707
Thanks for the suggestion. Indeed, importing the toolchains via the Package Manager window is geared towards embedded toolchains. As a workaround, please consider one of the following options:
December 3, 2019 at 18:03 #26708
- Try importing the toolchain from the toolchain selector (i.e. anywhere where you would normally change the toolchain, such as the the project wizard or VisualGDB Project Properties). This will automatically use the toolchain type based on the project type and will allow editing various toolchain parameters.
- You can also simply edit the Toolchain.xml file after the toolchain was imported. The toolchain type and ID are stored in separate XML elements that should be very easy to modify. If you later try to import a toolchain that already has a Toolchain.xml file (or CustomToolchain.xml), VisualGDB will ask whether you want to reuse the existing toolchain definition instead of regenerating it.
December 3, 2019 at 18:23 #26709
- That is what we are currently doing. It is not ideal because it requires every team member to check out the project’s vgdbcmake file to make what is essentially a non-change (they will end up importing the toolchain with the same ID as is already present in the .vgdbcmake file). Importing a toolchain shouldn’t need to change project specific files. Changing a project to use an already imported toolchain would obviously need to touch the vgbdcmake file though.
- Wouldn’t that also require manually editing FindToolchain.props in order for VGDB to correctly find the toolchain under the ID that you manually changed to in the Toolchain.xml?
Thanks for clarifying this. Please try the latest VisualGDB 5.5 Preview 2. Each time you open a solution containing VisualGDB projects, it will automatically find missing toolchains, BSPs and other items and will show a list of them, allowing you to download or substitute them. You can then use the substitution GUI to find and import the custom toolchain (that should already contain the CustomToolchain.xml file). As long as the ID is the same as the project file references, the .vgdbcmake file won’t need to be updated.
The FindToolchain.props file is not used by Advanced CMake projects. It is only required by VC++-based projects (e.g. MSBuild, GNU Make, etc) and is regenerated automatically based on the known toolchains and other packages each time you start Visual Studio (or specifically, start using VisualGDB functionality inside a newly launched VS instance).
Also, if Team Settings looks like a good fit for you, we can easily update it to allow packaging custom toolchains and automatically installing them on all relevant machines.
You must be logged in to reply to this topic.