Tool for assembly, compilation, and validation of component manifests Usage: cmc [OPTIONS] <COMMAND>
OPTIONS:
-s, --stamp <STAMP> Stamp this file on success -h, --help Print help
SUBCOMMANDS:
validate-references validate a component manifest against package manifest merge merge the listed manifest files. Does NOT validate the resulting manifest include recursively process contents from includes, and optionally validate the result check-includes check if given includes are present in a given component manifest format format a json file compile compile a CML file print-cml-reference print generated .cml reference documentation debug-print-cm print pretty rust-debug-format-string representation of .cm file help Print this message or the help of the given subcommand(s)
check if given includes are present in a given component manifest Usage: cmc check-includes [OPTIONS] <FILE> [expect]... Arguments: <FILE> file to process [expect]...
OPTIONS:
-f, --fromfile <FROMFILE> response file for includes to expect If specified, additional includes to expect will be read from the path provided. The input format is delimited by newlines. -d, --depfile <DEPFILE> depfile for includes If specified, include paths will be listed here, delimited by newlines. -p, --includepath <INCLUDEPATH>... base paths for resolving includes -r, --includeroot <INCLUDEROOT> base path for resolving include paths that start with "//" \[default: ] -h, --help Print help (see a summary with '-h')
compile a CML file Usage: cmc compile [OPTIONS] --output <OUTPUT> <FILE> Arguments: <FILE> file to format
OPTIONS:
-o, --output <OUTPUT> file to write the formatted results to -d, --depfile <DEPFILE> depfile for includes If specified, include paths will be listed here, delimited by newlines. -p, --includepath <INCLUDEPATH>... base paths for resolving includes -r, --includeroot <INCLUDEROOT> base path for resolving include paths that start with "//" \[default: .] --config-package-path <CONFIG_PACKAGE_PATH> path within the component's package at which its configuration will be available -f, --features <FEATURES>... The set of non-standard features to compile with. Only applies to CML files --experimental-force-runner <EXPERIMENTAL_FORCE_RUNNER> override runner to this value in resulting CML If specified, the program.runner field will be set to this value. This option is EXPERIMENTAL and subject to removal without warning. --must-offer-protocol <MUST_OFFER_PROTOCOL> protocols to verify that all children and collections are offered If specified, for each offer named, cmc will require that all children or collections in `files` have been offered a capability named for the offer specified. This can be used to help find missing offers of important capabilities, like fuchsia.logger.LogSink --must-use-protocol <MUST_USE_PROTOCOL> protocols to verify that all children and collections are used If specified, for each offer named, cmc will require that the offer is in a use block. This can be used to help find missing usages of important capabilities, like fuchsia.logger.LogSink --must-offer-dictionary <MUST_OFFER_DICTIONARY> dictionaries to verify that all children and collections are used If specified, for each offer named, cmc will require that the offer is in a use block. This can be used to help find missing usages of important capabilities, like diagnostics -h, --help Print help (see a summary with '-h')
print pretty rust-debug-format-string representation of .cm file Usage: cmc debug-print-cm <FILE> Arguments: <FILE> file to process
OPTIONS:
-h, --help Print help
format a json file Usage: cmc format [OPTIONS] [FILE] Arguments: [FILE] file to format. If missing, use stdin
OPTIONS:
-p, --pretty deprecated and ignored. Please do not use (https://fxbug.dev/42060365) --cml deprecated and ignored. Please do not use (https://fxbug.dev/42060365) -i, --in-place replace the input file with the formatted output (implies `--output <inputfile>`) -o, --output <OUTPUT> file to write the formatted results to, will print to stdout if not provided -h, --help Print help
recursively process contents from includes, and optionally validate the result Usage: cmc include [OPTIONS] <FILE> Arguments: <FILE> file to process
OPTIONS:
-o, --output <OUTPUT> file to write the merged results to, will print to stdout if not provided -d, --depfile <DEPFILE> depfile for includes If specified, include paths will be listed here, delimited by newlines. -p, --includepath <INCLUDEPATH>... base paths for resolving includes -r, --includeroot <INCLUDEROOT> base path for resolving include paths that start with "//" \[default: .] --validate <VALIDATE> validate the result \[default: true] \[possible values: true, false] -f, --features <FEATURES>... The set of non-standard features to compile with. Only applies to CML files -h, --help Print help (see a summary with '-h')
merge the listed manifest files. Does NOT validate the resulting manifest. The semantics for merging are the same ones used for `include`: https://fuchsia.dev/reference/cml#include Usage: cmc merge [OPTIONS] [FILE]... Arguments: [FILE]... files to process If any file contains an array at its root, every object in the array will be merged into the final object.
OPTIONS:
-o, --output <OUTPUT> file to write the merged results to, will print to stdout if not provided -f, --fromfile <FROMFILE> response file for files to process If specified, additional files to merge will be read from the path provided. The input format is delimited by newlines. -d, --depfile <DEPFILE> depfile for includes If specified, include paths will be listed here, delimited by newlines. -h, --help Print help (see a summary with '-h')
print generated .cml reference documentation Usage: cmc print-cml-reference [OPTIONS]
OPTIONS:
-o, --output <file path> If provided, will output generated reference documentation to a text file at the file path provided -h, --help Print help
validate a component manifest against package manifest Usage: cmc validate-references [OPTIONS] --component-manifest <Component Manifest> --package-manifest <Package Manifest>
OPTIONS:
-c, --component-manifest <Component Manifest> -p, --package-manifest <Package Manifest> -e, --context <Free text label, for instance as context for errors printed> -h, --help Print help