blob: 19ffc7fc5d18de29cfe4628277e1b6a1a4a2b905 [file] [log] [blame]
# 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/zircon/zx_library.gni")
group("tests") {
testonly = true
deps = [ "test:paver-fuzzers" ]
# TODO(fxbug.dev/84624): Flaky test disabled on coverage.
# Please fix the flake and remove the condition below.
if (!is_coverage) {
deps += [ "test:paver-test" ]
}
}
# Core paver implementation shared between all implementations.
source_set("paver-core") {
sources = [
"abr-client-vboot.cc",
"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/lib/storage/fs_management",
"//src/lib/storage/ramdevice_client/cpp:ramdevice-client-static",
"//src/security/zxcrypt:zxcrypt-client",
"//src/storage/fshost:headers",
"//src/storage/gpt",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/fidl",
"//zircon/system/ulib/fidl-async:fidl-async-cpp",
"//zircon/system/ulib/service:service-llcpp",
"//zircon/third_party/ulib/cksum",
"//zircon/third_party/ulib/safemath",
]
public_deps = [
"//sdk/fidl/fuchsia.fshost:fuchsia.fshost_llcpp",
"//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_llcpp",
"//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_llcpp",
"//sdk/fidl/fuchsia.hardware.skipblock:fuchsia.hardware.skipblock_llcpp",
"//sdk/fidl/fuchsia.paver:fuchsia.paver_llcpp",
"//src/firmware/lib/abr",
"//src/lib/storage/block_client/cpp",
"//src/lib/uuid",
"//src/storage/fvm",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxc",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
# 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",
"//src/storage/gpt",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/service:service-llcpp",
"//zircon/system/ulib/zx",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
}
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",
"//src/storage/gpt",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/service:service-llcpp",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
}
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",
"//src/storage/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",
"//src/storage/gpt",
"//zircon/system/ulib/service:service-llcpp",
]
public_deps = [
":skip-block",
"//zircon/system/ulib/sysconfig-client:sysconfig-sync-client",
]
}
source_set("chromebook-x64") {
sources = [
"chromebook-x64.cc",
"flashmap-client.cc",
]
deps = [
":gpt",
":paver-core",
"//sdk/fidl/fuchsia.acpi.chromeos:fuchsia.acpi.chromeos_llcpp",
"//sdk/fidl/fuchsia.nand.flashmap:fuchsia.nand.flashmap_llcpp",
"//sdk/fidl/fuchsia.tpm.cr50:fuchsia.tpm.cr50_llcpp",
"//sdk/fidl/fuchsia.vboot:fuchsia.vboot_llcpp",
"//src/lib/uuid",
]
}
source_set("sherlock") {
sources = [ "sherlock.cc" ]
deps = [
":gpt",
":paver-core",
":sysconfig",
"//src/devices/lib/amlogic",
"//src/lib/uuid",
"//src/storage/gpt",
]
}
source_set("nelson") {
sources = [ "nelson.cc" ]
deps = [
":gpt",
":paver-core",
":sysconfig",
"//src/devices/lib/amlogic",
"//src/lib/uuid",
"//src/storage/gpt",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
}
source_set("luis") {
sources = [ "luis.cc" ]
deps = [
":gpt",
":paver-core",
":sysconfig",
"//src/devices/lib/amlogic",
"//src/lib/uuid",
"//src/storage/gpt",
]
}
source_set("vim3") {
sources = [ "vim3.cc" ]
deps = [
":gpt",
":paver-core",
":sysconfig",
"//src/devices/lib/amlogic",
"//src/lib/uuid",
"//src/storage/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",
":nelson",
":paver-core",
":sherlock",
":vim3",
":x64",
"//sdk/fidl/fuchsia.paver:fuchsia.paver_llcpp",
"//zircon/system/ulib/fidl-async:fidl-async-cpp",
]
public_deps = [ "//zircon/system/ulib/svc" ]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
}