| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/host.gni") |
| import("//build/rust/rustc_binary.gni") |
| import("//build/zircon/tools.gni") |
| import("//src/developer/ffx/build/ffx_plugin.gni") |
| import("//src/developer/ffx/build/ffx_tool.gni") |
| |
| assert(is_host) |
| |
| group("tests") { |
| testonly = true |
| deps = [ ":ffx_assembly_test" ] |
| } |
| |
| ffx_plugin("ffx_assembly") { |
| version = "0.1.0" |
| edition = "2021" |
| with_unit_tests = true |
| args_with_unit_tests = true |
| |
| args_sources = [ "src/args.rs" ] |
| sources = [ |
| "src/base_package.rs", |
| "src/blobfs.rs", |
| "src/compiled_package.rs", |
| "src/extra_hash_descriptor.rs", |
| "src/fvm.rs", |
| "src/fxfs.rs", |
| "src/lib.rs", |
| "src/operations.rs", |
| "src/operations/board.rs", |
| "src/operations/create_system.rs", |
| "src/operations/create_update.rs", |
| "src/operations/product.rs", |
| "src/operations/product/assembly_builder.rs", |
| "src/operations/size_check.rs", |
| "src/operations/size_check/breakdown.rs", |
| "src/operations/size_check/common.rs", |
| "src/operations/size_check/diff.rs", |
| "src/operations/size_check/package.rs", |
| "src/operations/size_check/product.rs", |
| "src/operations/size_check/visualization.rs", |
| "src/subpackage_blobs_package.rs", |
| "src/vbmeta.rs", |
| "src/vfs.rs", |
| "src/zbi.rs", |
| ] |
| inputs = [ |
| "src/operations/size_check/index.html", |
| "src/operations/size_check/D3BlobTreeMap.js", |
| "//scripts/third_party/d3_v3/d3.js", |
| "//scripts/third_party/d3_v3/LICENSE", |
| ] |
| args_deps = [ |
| "//src/lib/assembly/images_config", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:camino", |
| ] |
| deps = [ |
| "//src/developer/ffx/lib/errors:lib", |
| "//src/developer/ffx/lib/fho:lib", |
| "//src/developer/ffx/lib/pbms:lib", |
| "//src/lib/assembly/assembly_manifest", |
| "//src/lib/assembly/base_package", |
| "//src/lib/assembly/blob_size", |
| "//src/lib/assembly/blobfs", |
| "//src/lib/assembly/components", |
| "//src/lib/assembly/config_capabilities", |
| "//src/lib/assembly/config_data", |
| "//src/lib/assembly/config_schema", |
| "//src/lib/assembly/domain_config", |
| "//src/lib/assembly/driver_manifest", |
| "//src/lib/assembly/file_relative_path", |
| "//src/lib/assembly/fvm", |
| "//src/lib/assembly/fxfs", |
| "//src/lib/assembly/images_config", |
| "//src/lib/assembly/named_file_map", |
| "//src/lib/assembly/package_copy", |
| "//src/lib/assembly/package_list", |
| "//src/lib/assembly/package_utils", |
| "//src/lib/assembly/partitions_config", |
| "//src/lib/assembly/platform_configuration", |
| "//src/lib/assembly/shell_commands", |
| "//src/lib/assembly/structured_config", |
| "//src/lib/assembly/subpackage_blobs_package", |
| "//src/lib/assembly/tool", |
| "//src/lib/assembly/update_package", |
| "//src/lib/assembly/update_packages_manifest", |
| "//src/lib/assembly/util", |
| "//src/lib/assembly/validate_product", |
| "//src/lib/assembly/vbmeta", |
| "//src/lib/assembly/zbi", |
| "//src/lib/fuchsia-url", |
| "//src/lib/gcs", |
| "//src/lib/structured_ui", |
| "//src/lib/utf8_path", |
| "//src/sys/pkg/lib/epoch", |
| "//src/sys/pkg/lib/fuchsia-hash", |
| "//src/sys/pkg/lib/fuchsia-merkle", |
| "//src/sys/pkg/lib/fuchsia-pkg", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:async-trait", |
| "//third_party/rust_crates:camino", |
| "//third_party/rust_crates:hex", |
| "//third_party/rust_crates:itertools", |
| "//third_party/rust_crates:serde", |
| "//third_party/rust_crates:serde_json", |
| "//third_party/rust_crates:serde_json5", |
| "//third_party/rust_crates:textwrap", |
| "//third_party/rust_crates:tracing", |
| "//third_party/rust_crates:url", |
| ] |
| test_deps = [ |
| "//src/lib/assembly/test_keys", |
| "//src/lib/assembly/test_util", |
| "//src/lib/fuchsia-async", |
| "//src/storage/blobfs/tools:blobfs", |
| "//src/sys/pkg/lib/far/rust:fuchsia-archive", |
| "//third_party/rust_crates:assert_matches", |
| "//third_party/rust_crates:camino", |
| "//third_party/rust_crates:pretty_assertions", |
| "//third_party/rust_crates:regex", |
| "//third_party/rust_crates:tempfile", |
| ] |
| configs = [ "//build/config/rust/lints:clippy_warn_all" ] |
| } |
| |
| ffx_tool("ffx_assembly_tool") { |
| edition = "2021" |
| output_name = "ffx-assembly" |
| deps = [ |
| ":ffx_assembly", |
| "//src/developer/ffx/lib/fho:lib", |
| "//src/lib/fuchsia-async", |
| ] |
| sources = [ "src/main.rs" ] |
| |
| sdk_target_name = "sdk" |
| sdk_category = "partner" |
| |
| # We avoid instrumenting assembly for certain builds as this negatively impacts performance. |
| exclude_toolchain_tags = [ |
| "asan", |
| "coverage", |
| "profile", |
| ] |
| } |
| |
| group("assembly") { |
| public_deps = [ |
| ":ffx_assembly_tool", |
| ":ffx_assembly_tool_host_tool", |
| ] |
| } |
| |
| group("bin") { |
| public_deps = [ ":ffx_assembly_tool_versioned" ] |
| } |