| # 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. |