BAZEL
The BAZEL synchronization method populates a Helix QAC project based upon an existing local Bazel build. Ensure you have Bazel installed and can perform a build, using a command such as:
This should be done in a Bazel workspace directory before synchronizing with QAC. This synchronization method is similar to the BUILD_LOG or JSON sync methods, as the compilation is done before the synchronization rather than during.
Limitations
- We do not support remote execution, it exclusively facilitates local builds which must have been done before this command is used.
- Only files in this Bazel project are added to the Helix QAC project. Any 3rd party dependencies downloaded during the build will not be added to the Helix QAC project.
- We support the default mnemonics for building C/C++.
- Custom mnemonics are supported via explicit options
‑‑custom‑mnemonics|‑m
- We do not monitor other build systems, such as make or CMake, invoked by Bazel. For such scenarios, consider using INJECT as your synchronization method.
- Testing has been limited to MSVC, GNU and Clang based compilers. Other compilers may produce less desirable results.
- The default compiler that Bazel uses on Windows is clang-cl which is not supported for CCT generation.
- Analysis may depend on temporary files or external dependencies that are downloaded by Bazel. Consequently, analysis may fail if a Bazel clean command is issued.
The following command will synchronize the Bazel project residing in the current directory with the Helix QAC project which is also in the current directory:
If the bazel
command requires additional parameters that would also be required to run a bazel aquery
command, these options can be specified with the HELIX_QAC_BAZEL_ARGUMENTS
environment variable.