Configure Project for Static Analysis in Polyspace Platform User Interface
The Polyspace Platform user interface allows you to author functional tests for C/C++ code, or check C/C++ code for bugs or run-time errors using static code analysis. Before you begin test authoring or code analysis, you have to specify additional information. For example:
To build and run a test, you must specify a target, a compiler, and related information such as compiler flags, include paths and defines.
To check C/C++ code for bugs, you first have to specify the defects and coding standards that Polyspace checks for.
The information required for building and executing tests or running a static analysis comes from your project configuration. A Polyspace Platform project configuration consists of these sets of options:
Project-specific configuration — Project-wide options
Build configuration — Options that specify how to build your code and tests
Static analysis configuration — Options specific to static analyses
Testing and profiling configuration — Options that specify how to test and profile your code
You can specify distinct sets of build, testing, and static analysis configurations. These sets are configuration variants. A Polyspace® Platform project supports multiple variants of build, testing, and static analysis configurations. For each configuration variant, you can choose whether it is part of the project (saved in the .psprjx file) or is saved in an external configuration file (.pscfg) that is referenced by the project. Using external configurations can improve source control managed workflows by allowing you to modularize your project and enables the
sharing of single-sourced build, static analysis, and testing configurations across similar projects. You cannot create variants for the project-specific configuration options. The project options apply to all configuration variants and are always saved in the .psprjx project file.
Set Up Configuration
To open your configuration, on the Projects pane, double-click the Configuration node of your project.

The configuration opens on a separate Configuration pane. The Configuration pane contains these tabs:
Project — The options on this tab includes various options that apply to the entire project. These options are relevant to both static analysis and dynamic testing. You cannot create variants for these options.
For more information on the options, see Code Prover Analysis in Polyspace Platform User Interface.
Build — The options on this tab cover both static analysis and dynamic testing.
Only a subset of the options on the Target & Compiler node apply to Polyspace Test™. The remaining options on this and other nodes apply only to the static analysis tools, Polyspace Bug Finder™ and Polyspace Code Prover™.
For more information on the options, see Polyspace Code Prover Options in Polyspace Platform User Interface.
Static Analysis — The options on this tab apply only to Polyspace Bug Finder and Polyspace Code Prover. For more information on these options, see:
Testing & Profiling — The options on this tab apply only to Polyspace Test. Using these options, you can specify certain aspects of testing and profiling such as code coverage metrics and folders to exclude from profiling.
For more information on the options, see Code Profiling in Polyspace Platform User Interface (Polyspace Test).
You can also find individual options on the Configuration pane through search if you know the option name. For instance, if you search for the term Compilation toolchain, you can find two matches on the Build tab corresponding to these two options:
Compilation toolchain (Static analysis)
Compilation toolchain (Testing)
Note that you can search for options on the Static Analysis Tab by their command-line name in addition to the name that appears in the user interface. For instance, you can search for the option Constraint setup by its command-line equivalent -data-range-specifications. For more information on this option, see Constraint setup (-data-range-specifications).

Once you locate an option, you can use contextual help to find more information about an option. Hover on the option to see a tooltip describing the option or click More Help in the tooltip to open the documentation for the option.
Create Configuration Variants
You can create multiple configuration variants for build, testing, or static analysis options for specific goals and switch between them within the same project. For example, you can create different configuration variants to use different compilers, or to check for different code coverage metrics.
To create new configuration variants in your project:
Open your project configuration.
On the Polyspace Platform toolstrip, click New.

Select the type of configuration variant you want to create. For example, select New Build Configuration to create a build configuration variant.
Set options as needed. For example, set Compilation toolchain (testing) as
MinGW64| CMake/Ninja (64-bit Windows)and select Enable portable word sizes.Click
to rename the configuration variant.
Instead of creating a configuration variant from scratch, you can also duplicate an existing configuration variant:
Select the configuration variant that you want to duplicate.

Select Duplicate on the toolstrip.
To remove a configuration variant, select the variant and then select Delete on the toolstrip.
Switch Between Configuration Variants
Once you have more than one variant in your project, you can switch to a different configuration variant. To switch to a configuration variant:
Select the variant using the drop-down lists in the configuration tabs.

To use the selected variant as part of the active configuration, select Make Active on the toolstrip.
The configuration variant that is currently active has a green Active label on the top right. All other variants have a gray Inactive label in the same location. External configurations that are saved in a .pscfg file that is referenced by the project have a blue External label next to the Active or Inactive label.
Share and Reuse Configuration Variants
There are two ways to share or reuse configuration variants across projects:
To share a single-sourced configuration variant across similar projects, use external configurations. An external configuration is a build, static analysis, or testing and profiling configuration that you save in a
.pscfgfile and link to one or more projects by reference. To use the shared configuration in another project, import the.pscfgfile as an external configuration. When you make changes to that external configuration file, all projects that reference it inherit those changes.To reuse a copy of a configuration variant, export a copy of the configuration to a
.pscfgfile and then import a copy of that file into another project. In this workflow, the imported configuration is saved as a part of the.psprjxproject file. Any modifications you make to the configuration variant in one project do not impact other projects.
In a continuous integration workflow, submit the .pscfg files to a version control system as you would with other text files. Before submission, compare and merge your version of a configuration with the version in the repository using the diff/merge tool. For more details on the diff/merge tool, see Compare and Merge Polyspace Platform Projects and Configurations Before Submission to Source Control (Polyspace Test).
Use External Configurations to Share Single-Sourced Configuration Variants
By default, when you create a new configuration variant in the Polyspace Platform user interface, it is saved in the
.psprjx project file. To modularize, or separate your
project into multiple files, convert your configurations to external
.pscfg files that you can reference from one or more
projects.
Convert Configuration to External Configuration. To convert a build configuration variant to an external configuration:
Open your project configuration, navigate to the Build tab and select the configuration you want to convert. On the Polyspace Platform toolstrip, click Convert.
Choose a filename and location for the external configuration file and click Save.
In the Configuration pane, a new External badge appears to let you know that this is an external configuration file referenced by the project. Below the configuration name, you see the name of the
.pscfgfile, as well as buttons to copy the file path and show the file in Explorer.
Save the project to save the reference to the external configuration file.
Edit External Configuration. To edit an external configuration, on the
Configuration tab of the toolstrip, in the
Config Reference section, click
Edit. Make any necessary changes to the
configuration. When you are done, click Save on the
Configuration tab of the toolstrip to save your
changes in the referenced .pscfg file. You can then leave
editing mode by clicking Edit again. Alternatively, to
save the project and all referenced configuration and graphical test files,
on the Project tab of the toolstrip, select
Save All.
If you are referencing the external configuration from multiple projects, changes are reflected the next time you open the configuration in those projects.
Import External Configuration. Once you have a configuration saved in a .pscfg
external configuration file, you can reference it from other projects. For
example, to import an external build configuration by reference:
Open the project from which you want to reference an external configuration file. Then, open the configuration for that project.
On the Configuration tab of the Polyspace Platform toolstrip, click Import > Import as External Configuration.

Use the file browser to find and select the
.pscfgconfiguration files you want to import by reference and click Open.In your project configuration, navigate to the Build tab. The external build configuration you imported appears in the drop-down list. To make that external configuration active, select it from the list and click Make Active in the Configuration tab of the toolstrip.
Save the project to save the new reference to the external configuration file.
Import and Export Copies of Configuration Variants
To reuse copies of configuration variants across projects, export a copy of the configuration variant as a Polyspace configuration (.pscfg) file and then import a copy of the .pscfg file into other projects. Importing a copy of a configuration variant allows you to use identical or similar build, static analysis, or testing configurations in multiple projects. Exporting a copy of a configuration from a project as a .pscfg file allows you to compare different versions of a configuration as text files. For more details on
the diff/merge tool, see Compare and Merge Polyspace Platform Projects and Configurations Before Submission to Source Control (Polyspace Test).
Export Copy of Configuration Variant. To export a copy of a specific configuration variant from your project:
Open your project configuration.
Navigate to the tab from which you want to export the configuration:
Build — Export a build configuration variant
Static Analysis — Export a static analysis configuration variant
Testing & Profiling — Export a testing and profiling configuration variant
On the Polyspace Platform toolstrip, click Export to export a copy of the currently selected configuration as a
.pscfgfile.
Specify a filename and location and click Save.
To export a copy of all active configurations as
.pscfg files, select Export Active
Configurations. Alternatively, you can export copies of all
configuration variants in your project by selecting Export All
Configurations.
Import Copy of Configuration Variant. To import a copy of one or more configuration variants into your project,
click Import and select one or more Polyspace configuration files. This imports a copy of all the
configurations you select and saves those copies in the
.psprjx project file. To use one of the imported
configuration variants, select it from the drop-down list and click
Make Active in the toolstrip.
To import a configuration variant by reference, see Import External Configuration.
See Also
Topics
- Polyspace Bug Finder Options in Polyspace Platform User Interface
- Polyspace Code Prover Options in Polyspace Platform User Interface
- Create Easily Shareable Projects for Version Control
- Submit Polyspace Files to Version Control
- Compare and Merge Polyspace Platform Projects and Configurations Before Submission to Source Control (Polyspace Test)