blob: f523601e26d74852c44414e049d776397b8d54f6 [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/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/python/python_host_test.gni")
import("//build/sdk/sdk_documentation.gni")
import("//sdk/ctf/build/verify_json_schemas.gni")
# This list should only contain schemas that are currently exported outside of
# the Fuchsia source tree.
schemas = [
# "banjo_library.json",
"cc_prebuilt_library.json",
"cc_source_library.json",
"common.json",
"dart_library.json",
"data.json",
"documentation.json",
"experimental_python_e2e_test.json",
"ffx_tool.json",
"fhcp_tests.json",
"fidl_library.json",
"hardware-f6f47515.json",
"host_tool.json",
"loadable_module.json",
"manifest.json",
"sysroot.json",
"version_history-22rnd667.json",
"virtual_device-93A41932.json",
]
sdk_documentation("meta") {
name = "metadata_schemas"
category = "partner"
files = []
foreach(schema, schemas) {
files += [
{
source = "//build/sdk/meta/$schema"
dest = "meta/schemas/$schema"
},
]
}
}
verify_json_schemas("verify_json_schemas") {
golden = []
# In the golden directory, there should be one golden file per schema.
# Please do not add or remove any schemas without consulting
# with sdk-dev@fuchsia.dev .
#
# If you have approval to make this change, you can fix the build error
# by ensuring the golden directory matches the current directory.
foreach(schema, schemas) {
golden += [ "golden/$schema.golden" ]
}
current = schemas
}
if (is_host) {
python_host_test("verify_json_schemas_test") {
main_source = "//sdk/ctf/build/scripts/verify_json_schemas_test.py"
sources = [ "//sdk/ctf/build/scripts/verify_json_schemas.py" ]
}
}
source_set("schemas") {
inputs = schemas
deps = [ ":verify_json_schemas" ]
}
if (is_host) {
import("//build/rust/rustc_library.gni")
rustc_library("rust") {
name = "sdk_metadata"
with_unit_tests = true
edition = "2021"
deps = [
"//src/lib/assembly/assembly_manifest",
"//src/lib/assembly/partitions_config",
"//src/sys/pkg/lib/fuchsia-merkle",
"//src/sys/pkg/lib/fuchsia-repo",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:camino",
"//third_party/rust_crates:pathdiff",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:thiserror",
"//third_party/rust_crates:tracing",
"//third_party/rust_crates:url-v1_7_2",
"//third_party/rust_crates:valico",
"//third_party/rust_crates:zip",
]
test_deps = [
"//src/developer/ffx/lib/pkg:empty-repo-keys",
"//src/developer/ffx/lib/pkg:empty-repo-metadata",
"//src/lib/fuchsia",
"//third_party/rust_crates:tempfile",
]
non_rust_deps = [ ":schemas" ]
sources = [
"src/common.rs",
"src/ffx_tool.rs",
"src/host_tool.rs",
"src/json.rs",
"src/lib.rs",
"src/manifest.rs",
"src/product_bundle.rs",
"src/product_bundle/v2.rs",
"src/testing.rs",
"src/virtual_device.rs",
"src/virtual_device/manifest.rs",
"src/virtual_device/v1.rs",
]
inputs = [
"common.json",
"ffx_tool.json",
"hardware-f6f47515.json",
"host_tool.json",
"manifest.json",
"test_data/virtual_device.json",
"test_data/empty_vd_manifest.json",
"test_data/single_vd_manifest.json",
"test_data/multi_vd_manifest.json",
"virtual_device-93A41932.json",
]
}
}
group("tests") {
testonly = true
deps = [
":rust_test($host_toolchain)",
":verify_json_schemas_test($host_toolchain)",
]
}