Projects with Multiple CCTs
Historically projects consisted of a single CCT per source language, thus for example making it difficult to accurately analyze a project with some files compiled against C++14 and some against C++11. This limitation could be worked around a little by either creating multiple separate Helix QAC projects (and maybe combining them using an RCMA solution) or using Multi Configurations in a projects. For more information, refer to Projects with Multiple Configurations.
These workarounds are not ideal and Multi CCT projects have been created to resolve them. They can be used in two ways:
- Auto CCT - A project can be set-up to monitor the build process of a user’s application and automatically create a CCT for each compiler/configuration detected. The file will automatically be assigned to the correct CCT. This is the most automated and preferred method to create a Multi CCT project. Naturally, the compiler must be a supported Auto CCT compiler.
- Static CCT - Here you will manually select the CCTs to use in the project and manually select which CCT to use for each file/directory.
To make configuration easier we assign a Default CCT (per language) from the list of CCTs in the project. Initially, for Auto CCT it will be the most used CCT, otherwise it will be the first CCT defined in the project. Any file that does not explicitly state which CCT to use will inherit the CCT from its parent directories. If none are explicitly specified, then the Default CCT for that language will be used. This allows you to easily specify a CCT to use in most of the project, but explicitly deviate and use another CCT for certain files or directories in the project.
The following restrictions apply:
- You cannot mix and match a Helix QAC project with both Multi CCT and Multi Config – a Helix QAC project can either be:
- A regular single configuration project (default)
- A Multi Configuration project
- A Multi CCT project
- The Eclipse and Visual Studio plugins are currently unable to modify Multi CCT values in a project – although they can work with an existing Multi CCT project.
- You cannot Unify a Multi CCT project to Dashboard.