blob: 5162fec49346654b80fd0ea2a91d373d90e876d5 [file] [log] [blame] [view]
# Analysis
Analysis is run as part of the Fuchsia build.
For each `dart_library` target, an analysis script gets
also generated in the output directory under:
```sh
out/<build-type>/gen/path/to/package/package.analyzer.sh
```
Running this script will perform an analysis of the target's sources.
Note that other templates usually define a Dart library they build upon. For
example, a _flutter_app_ `//foo/bar` will yield a `//foo/bar:bar_dart_library`
target which can also be analyzed.
As with standard Dart packages, analysis options are defined in an
`analysis_options.yaml` file, which must be placed at the package root.
This file may refer to a common set of options by way of an `include` directive:
```
include: relative/path/to/options.file
```
A canonical set is available at [//topaz/tools/analysis_options.yaml](https://fuchsia.googlesource.com/topaz/+/master/tools/analysis_options.yaml)
It is customary to merely include that set from a local options file:
```
include: path/to/topaz/tools/analysis_options.yaml
```
Analysis may be disabled altogether for a given target with:
```
dart_library("foo") {
disable_analysis = true
}
```
The `//scripts/run-dart-action.py` script makes it easy to run the analysis over
multiple targets:
```sh
scripts/run-dart-action.py analyze --out out/<build-type> --tree //topaz/shell/*
```
Regular analyzer flags may also be passed:
```sh
scripts/run-dart-action.py analyze --out out/<build-type> --fatal-warnings --lints
```
This holds true for the individual analysis scripts.