| # Copyright 2019 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/unification/zx_library.gni") |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| "test:paver-fuzzers", |
| "test:paver-test", |
| ] |
| } |
| |
| # Core paver implementation shared between all implementations. |
| source_set("paver-core") { |
| sources = [ |
| "abr-client.cc", |
| "abr.cc", |
| "device-partitioner.cc", |
| "fvm.cc", |
| "partition-client.cc", |
| "paver.cc", |
| "stream-reader.cc", |
| "sysconfig-fidl.cc", |
| "utils.cc", |
| "validation.cc", |
| ] |
| deps = [ |
| "//sdk/fidl/fuchsia.boot:fuchsia.boot_llcpp", |
| "//sdk/fidl/fuchsia.device:fuchsia.device_llcpp", |
| "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_llcpp", |
| "//sdk/fidl/fuchsia.hardware.block.encrypted:fuchsia.hardware.block.encrypted_llcpp", |
| "//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_llcpp", |
| "//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_llcpp", |
| "//sdk/fidl/fuchsia.hardware.skipblock:fuchsia.hardware.skipblock_llcpp", |
| "//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_llcpp", |
| "//sdk/lib/fdio", |
| "//src/security/zxcrypt:zxcrypt-fdio", |
| "//zircon/public/lib/cksum", |
| "//zircon/public/lib/fidl", |
| "//zircon/system/ulib/fdio-caller", |
| "//zircon/system/ulib/fidl-async:fidl-async-cpp", |
| "//zircon/system/ulib/fs-management", |
| "//zircon/system/ulib/gpt", |
| "//zircon/system/ulib/ramdevice-client:ramdevice-client-static", |
| ] |
| public_deps = [ |
| "//sdk/fidl/fuchsia.fshost:fuchsia.fshost_llcpp", |
| "//sdk/fidl/fuchsia.paver:fuchsia.paver_llcpp", |
| "//src/lib/uuid", |
| "//zircon/public/lib/fbl", |
| "//zircon/public/lib/zx", |
| "//zircon/public/lib/zxc", |
| "//zircon/system/ulib/abr", |
| "//zircon/system/ulib/block-client", |
| "//zircon/system/ulib/fvm", |
| ] |
| |
| # TODO(fxbug.dev/57974): UBSan has found an instance of undefined behavior in this target. |
| # Disable UBSan for this target temporarily until it is migrated into CI/CQ. |
| configs += [ "//build/config:temporarily_disable_ubsan_do_not_use" ] |
| } |
| |
| # Helper libraries to aid board specific implementations. |
| source_set("gpt") { |
| sources = [ "gpt.cc" ] |
| deps = [ "//sdk/fidl/fuchsia.device:fuchsia.device_llcpp" ] |
| public_deps = [ |
| ":paver-core", |
| "//zircon/public/lib/fbl", |
| "//zircon/public/lib/zx", |
| "//zircon/system/ulib/fdio-caller", |
| "//zircon/system/ulib/gpt", |
| ] |
| } |
| |
| source_set("skip-block") { |
| sources = [ "skip-block.cc" ] |
| deps = [ "//src/lib/uuid" ] |
| public_deps = [ |
| ":paver-core", |
| "//sdk/fidl/fuchsia.hardware.skipblock:fuchsia.hardware.skipblock_llcpp", |
| "//zircon/system/ulib/fdio-caller", |
| "//zircon/system/ulib/gpt", |
| ] |
| } |
| |
| source_set("sysconfig") { |
| sources = [ "sysconfig.cc" ] |
| public_deps = [ |
| ":paver-core", |
| "//zircon/system/ulib/sysconfig-client:sysconfig-sync-client", |
| ] |
| } |
| |
| # Board specific paver implementations. |
| source_set("as370") { |
| sources = [ "as370.cc" ] |
| deps = [ |
| ":paver-core", |
| ":skip-block", |
| "//src/lib/uuid", |
| "//zircon/system/ulib/gpt", |
| ] |
| } |
| |
| source_set("astro") { |
| sources = [ "astro.cc" ] |
| deps = [ |
| ":paver-core", |
| ":sysconfig", |
| "//sdk/fidl/fuchsia.boot:fuchsia.boot_llcpp", |
| "//src/devices/lib/amlogic", |
| "//src/lib/uuid", |
| "//zircon/system/ulib/gpt", |
| ] |
| public_deps = [ |
| ":skip-block", |
| "//zircon/system/ulib/sysconfig-client:sysconfig-sync-client", |
| ] |
| } |
| |
| source_set("chromebook-x64") { |
| sources = [ "chromebook-x64.cc" ] |
| deps = [ |
| ":gpt", |
| ":paver-core", |
| "//src/lib/uuid", |
| "//zircon/system/ulib/chromeos-disk-setup", |
| ] |
| } |
| |
| source_set("sherlock") { |
| sources = [ "sherlock.cc" ] |
| deps = [ |
| ":gpt", |
| ":paver-core", |
| ":sysconfig", |
| "//src/devices/lib/amlogic", |
| "//src/lib/uuid", |
| "//zircon/system/ulib/gpt", |
| ] |
| } |
| |
| source_set("luis") { |
| sources = [ "luis.cc" ] |
| deps = [ |
| ":gpt", |
| ":paver-core", |
| ":sysconfig", |
| "//src/devices/lib/amlogic", |
| "//src/lib/uuid", |
| "//zircon/system/ulib/gpt", |
| ] |
| } |
| |
| source_set("x64") { |
| sources = [ "x64.cc" ] |
| deps = [ |
| ":gpt", |
| ":paver-core", |
| "//src/lib/uuid", |
| ] |
| } |
| |
| # Glob together all paver implementations into a single library until we can compose ZBI via |
| # packages. |
| zx_library("paver") { |
| sdk = "source" |
| sdk_headers = [ "lib/paver/provider.h" ] |
| sources = [ "provider.cc" ] |
| deps = [ |
| ":as370", |
| ":astro", |
| ":chromebook-x64", |
| ":luis", |
| ":paver-core", |
| ":sherlock", |
| ":x64", |
| "//sdk/fidl/fuchsia.paver:fuchsia.paver_llcpp", |
| "//zircon/system/ulib/fidl-async:fidl-async-cpp", |
| ] |
| public_deps = [ "//zircon/system/ulib/svc" ] |
| } |