| # cmc: the component manifest compiler |
| |
| Reviewed on: 2019-07-11 |
| |
| cmc provides validation and manipulation logic for component manifest files. |
| This tool is largely intended to be used by build rules, and not directly |
| invoked by humans. Information on how to use it is available by running the tool |
| with `--help`. |
| |
| cmc is purely a host tool, and is not built for nor available on fuchsia |
| systems. |
| |
| ## Building |
| |
| This project is already included in host builds and should be included in any `fx set`. |
| |
| ## Running |
| |
| cmc is available at `$OUT_DIR/host_x64/cmc` in the build output path after an `fx build` |
| invocation. |
| |
| ``` |
| $ ./out/default/host_x64/cmc --help |
| ``` |
| |
| ## Testing |
| |
| Make sure the tests are added to your build by adding |
| `--with //tools/cmc:tests` to your `fx set` invocation. |
| |
| Unit tests for cmc are available in the `cmc_bin_tests` binary, which can be |
| invoked with the `fx run-host-tests` command: |
| |
| ``` |
| $ fx run-host-tests --names cmc_bin_test |
| ``` |
| |
| Integration tests are also available in the `cmc_integration_test` package. |
| |
| ``` |
| $ fx run-test cmc_integration_test |
| ``` |
| |
| ## Source layout |
| |
| The entrypoint is located in `src/main.rs`, unit tests are co-located with the |
| code, and the integration tests live in `tests/`. |