blob: 05368450329c5caa21ff80e11975fd5e10a740e4 [file] [log] [blame]
# Copyright 2018 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.
# Definitions to build each of the Fuchsia SDKs.
import("//build/config/build_api_module.gni")
import("//build/dart/toolchain.gni")
import("//build/fidl/toolchain.gni")
import("//build/sdk/config.gni")
import("//build/sdk/generate_final_idk.gni")
import("//build/sdk/merged_sdk.gni")
import("//build/sdk/sdk.gni")
import("//build/sdk/sdk_documentation.gni")
import("config.gni")
_sdk_public_deps = [
":core",
":core_testing",
":e2e_testing",
":zircon_sysroot",
]
# This default target should contain all public or partner SDKs.
group("sdk") {
testonly = true
public_deps = _sdk_public_deps
data_deps = [ ":sdk_source_set_list" ]
deps = [ ":sdk_atom_manifest_goldens($target_toolchain)" ]
}
# This file contains the list of all source files used in sdk_source_set()
# targets reachable from //sdk:sdk. The schema is simply a JSON list, where
# each item is the path to a single source file, relative to the source
# directory. Path are not sorted and appear in order of metadata walk, which
# is unstable.
build_api_module("sdk_source_set_list") {
testonly = true
data_keys = [ "sdk_source_set_sources" ]
deps = _sdk_public_deps
}
# Create generated file for fidldoc to read.
generated_file("all_fidl_sdk_json") {
deps = [ "//sdk/fidl" ]
outputs = [ "$root_build_dir/all_fidl_sdk_json.txt" ]
data_keys = [ "fidl_json" ]
}
# Compatibility testing goldens for SDK publishable FIDLs.
# This is a list of scopes like { src = "", dst = "" } specifying which files
# to copy from the build directory into the source tree.
generated_file("compatibility_testing_goldens") {
testonly = true
deps = [
# Pulls in SDKs containing the FIDLs to generate golden files for
":fuchsia_dart",
"//sdk",
]
outputs = [ "$root_build_dir/compatibility_testing_goldens.json" ]
output_conversion = "json"
data_keys = [ "compatibility_testing_goldens" ]
}
# Contains the list of all plasa fragment files, which have a dump of the
# public API surfaces.
generated_file("plasa_manifest") {
testonly = true
data_keys = [ "plasa" ]
outputs = [ "$root_build_dir/manifest.plasa.json" ]
output_conversion = "json"
deps = _sdk_public_deps
}
# This target is used by infra builders to build all SDK archives that
# make up the "core" SDK.
group("archives") {
testonly = true
public_deps = [
":core_archive",
":core_testing_archive",
":e2e_testing_archive",
":fuchsia_dart_archive",
]
}
# Dependencies used to generate the official
# Fuchsia Core IDK.
_fuchsia_idk_deps = [
":core",
":core_testing",
":e2e_testing",
":fuchsia_dart",
]
# A target used to generate an IDK archive
# that only contains prebuilt binaries for
# a single target_cpu architecture.
#
# This will be replaced by "final_fuchsia_idk"
# defined below once we update our infra
# recipes and builder configurations.
# See https://fxbug.dev/126262
merged_sdk("merged") {
testonly = true
deps = _fuchsia_idk_deps
}
# This targets generates a "final" IDK archive
# that contains prebuilt binaries for several
# target_cpu architecture. This is done by
# performing several sub-builds and merging
# the results explicitly.
#
# This will deprecate the :merged target
# above once infra recipes and builder
# configuration have been updated.
# See https://fxbug.dev/126262
generate_final_idk("final_fuchsia_idk") {
output_name = "fuchsia_idk"
target_cpus = [
"x64",
"arm64",
]
sdk_target_labels = _fuchsia_idk_deps
testonly = true
}
group("tests_no_e2e") {
testonly = true
assert_no_deps = e2e_test_libs
deps = [
"ctf/plasa:tests",
"dart:tests",
"lib:tests",
]
}
group("tests") {
testonly = true
deps = [
":tests_no_e2e",
# `testing:tests` contains unit tests for sl4f, which depend on sl4f so it
# can't live inside `test_no_e2e`.
"testing:tests",
]
}
sdk_atom("version_history") {
id = "sdk://version_history"
category = "partner"
meta = {
dest = "version_history.json"
source = "version_history.json"
schema = "version_history-22rnd667"
type = "version_history"
}
}
# License/rights related information for the SDK.
sdk_documentation("open_source") {
name = "open_source"
category = "public"
files = []
foreach(file,
[
"AUTHORS",
"LICENSE",
"PATENTS",
]) {
files += [
{
source = "//$file"
dest = file
},
]
}
}
# Licensing information for the 'libc'-style musl library.
sdk_documentation("musl_license") {
name = "musl_license"
category = "public"
files = [
{
source = "//zircon/third_party/ulib/musl/COPYRIGHT"
dest = "COPYRIGHT.musl"
},
]
}
# Notice file for all contents in the Fuchsia SDK.
# TODO(fxbug.dev/102264): Replace this with individual notices for each SDK element.
sdk_documentation("sdk_notice") {
name = "sdk_notice"
category = "public"
files = [
{
source = "//tools/check-licenses/static/sdk/NOTICE.fuchsia"
dest = "NOTICE.fuchsia"
},
]
}
# License/copyright files for the SDK.
sdk_molecule("license") {
visibility = [ ":*" ]
deps = [
":musl_license",
":open_source",
":sdk_notice",
]
}
sdk("zircon_sysroot") {
category = "internal"
deps = [ "//zircon/public/sysroot/sdk:sysroot_sdk" ]
}
sdk("e2e_testing") {
# TODO(fxbug.dev/6128): this id should not be necessary.
id = sdk_id
category = "partner"
api = "manifests/e2e_testing.manifest"
deps = [
":e2e_testing_tools",
"//sdk/testing/sl4f/client:client_sdk($dart_toolchain)",
]
}
sdk_molecule("e2e_testing_tools") {
visibility = [ ":*" ]
if (!sdk_no_host_tools) {
deps = [
"//src/performance/trace2json:bin_sdk($host_toolchain)",
"//src/sys/pkg/testing/fake-omaha-client:bin_sdk($host_toolchain)",
]
}
}
# Tools and data used on a 'host' development machine; where host is often
# Linux or Mac OS.
sdk_molecule("host_tools") {
visibility = [ ":*" ]
_host_tools = [
"//tools/fidl/fidlgen_rust:fidlgen_rust_sdk",
# TODO(fxbug.dev/45483): Remove once all SDK customers are using `fidlgen_hlcpp` directly.
"//tools/fidl/fidlgen_hlcpp:fidlgen_sdk",
"//tools/fidl/fidlgen_hlcpp:fidlgen_hlcpp_sdk",
"//tools/fidl/fidlgen_cpp:fidlgen_cpp_sdk",
"//tools/cmc:cmc_sdk",
"//tools/configc:configc_sdk",
"//tools/fvdl:fvdl_sdk",
"//tools/sdk-tools/fpublish:fpublish_sdk",
"//tools/sdk-tools/fserve:fserve_sdk",
"//tools/sdk-tools/fssh:fssh_sdk",
"//src/developer/debug/zxdb:zxdb_sdk",
"//src/developer/ffx:bin_sdk",
"//src/developer/ffx/plugins/assembly:sdk",
"//src/developer/ffx/plugins/package:sdk",
"//src/developer/ffx/plugins/product:sdk",
"//src/developer/ffx/plugins/scrutiny:sdk",
"//src/storage/bin/fvm:fvm_sdk",
"//src/storage/tools/blobfs-compression:blobfs-compression_sdk",
"//src/sys/pkg/bin/far:bin_sdk",
"//src/sys/pkg/bin/pm:pm_bin_sdk",
"//tools/bootserver_old:bootserver_sdk",
"//tools/net/device-finder:device-finder_sdk",
"//tools/symbolizer:sdk",
"//tools/fidl/fidlc:fidl-format_sdk",
"//tools/fidl/fidlc:fidlc_sdk",
"//tools/fidlcat:fidlcat_sdk",
"//src/storage/blobfs/tools:blobfs_sdk",
"//zircon/tools/merkleroot:merkleroot_sdk",
"//src/storage/minfs/tools:minfs_sdk",
"//zircon/tools/zbi:zbi_sdk",
# TODO(fxbug.dev/95661): Remove these once the emulators are available independently.
"//src/developer/ffx/plugins/emulator:aemu_internal",
"//src/developer/ffx/plugins/emulator:qemu_internal",
]
_toolchains = []
if (host_os == "linux" && sdk_cross_compile_host_tools) {
_toolchains += [
host_x64_toolchain,
host_arm64_toolchain,
]
} else {
_toolchains = [ host_toolchain ]
}
deps = []
foreach(toolchain, _toolchains) {
foreach(dep, _host_tools) {
deps += [ "$dep($toolchain)" ]
}
}
}
sdk_molecule("core_lib") {
visibility = [ ":*" ]
deps = [
"//sdk/lib/async-loop-testing/cpp:cpp_sdk",
"//sdk/lib/component/incoming/cpp:cpp_sdk",
"//sdk/lib/component/outgoing/cpp:cpp_sdk",
"//sdk/lib/fdio:fdio_sdk",
"//sdk/lib/fidl/cpp:cpp_sdk",
"//sdk/lib/fidl/cpp/wire:wire_sdk",
"//sdk/lib/fit-promise:fit-promise_sdk",
"//sdk/lib/input_report_reader:input_report_reader_sdk",
"//sdk/lib/inspect",
"//sdk/lib/inspect/service/cpp:cpp_sdk",
"//sdk/lib/magma_client:magma_client_sdk",
"//sdk/lib/media/cpp:cpp_sdk",
"//sdk/lib/modular/cpp:cpp_sdk",
"//sdk/lib/stdcompat:stdcompat_sdk",
"//sdk/lib/svc:svc_sdk",
"//sdk/lib/sys/component:realm_builder_shard_sdk",
"//sdk/lib/sys/cpp:cpp_sdk",
"//sdk/lib/sys/inspect/cpp:cpp_sdk",
"//sdk/lib/sys/testing:testing_sdk",
"//sdk/lib/syslog",
"//sdk/lib/syslog/structured_backend:structured_backend_sdk",
"//sdk/lib/trace",
"//sdk/lib/ui/scenic/cpp:cpp_sdk",
"//sdk/lib/vfs/cpp:cpp_sdk",
"//sdk/lib/vulkan",
"//src/lib/fidl/cpp:cpp_sdk",
"//src/lib/fidl/cpp:hlcpp_conversion_sdk",
"//src/lib/fidl/cpp:natural_ostream_sdk",
"//src/storage/memfs:memfs_sdk",
"//zircon/system/ulib/async:async-cpp_sdk",
"//zircon/system/ulib/async:async_sdk",
"//zircon/system/ulib/async-default:async-default_sdk",
"//zircon/system/ulib/async-loop:async-loop-cpp_sdk",
"//zircon/system/ulib/async-loop:async-loop-default_sdk",
"//zircon/system/ulib/async-loop:async-loop_sdk",
"//zircon/system/ulib/inspect:inspect_sdk",
"//zircon/system/ulib/sync:sync_sdk",
"//zircon/system/ulib/syslog:syslog_sdk",
"//zircon/system/ulib/trace:trace_sdk",
"//zircon/system/ulib/trace-engine:trace-engine_sdk",
"//zircon/system/ulib/trace-provider:trace-provider-so_sdk",
]
}
# Pieces of the IDK sans host tools (which are in ":host_tools").
sdk_molecule("core_idk") {
visibility = [ ":*" ]
deps = [
":core_lib",
":license",
":version_history",
"devices",
"docs",
"//sdk/fidl",
"//src/developer/ffx/lib/symbol-index:symbol-index-sdk",
"//src/lib/vulkan:vulkan_layers",
"//third_party/Vulkan-Loader:libvulkan_sdk",
"//third_party/Vulkan-Loader:vulkan_license",
"//zircon/public/sysroot/sdk:sysroot_sdk",
]
}
sdk_molecule("core_testing_idk") {
visibility = [ ":*" ]
testonly = true
deps = [
"//sdk/fidl:fidl_testing",
"//sdk/lib/sys/component/cpp/testing:cpp_library_sdk",
"//sdk/lib/sys/cpp/testing:cpp_sdk",
"//sdk/lib/ui/scenic/cpp/testing:testing_sdk",
"//zircon/system/ulib/async-testing:async-testing_sdk",
]
if (!sdk_no_host_tools) {
# This target depends on //dsk:host_tools.all($host_toolchain) indirectly.
deps += [ "//tools/docsgen:ref_docs_sdk" ]
}
}
sdk_molecule("platform_fidls") {
visibility = [ ":*" ]
deps = [
"//sdk/fidl/fuchsia.debugger:fuchsia.debugger_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.exception:fuchsia.exception_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.sys2:fuchsia.sys2_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.test.manager:fuchsia.test.manager_sdk($fidl_toolchain)",
]
}
# This SDK molecule is a collection of libraries only available to the in-tree
# Bazel build. See https://fxrev.dev/737558 and https://fxbug.dev/113063.
sdk_molecule("platform_libs") {
visibility = [ ":*" ]
deps = [
":version_history",
"//sdk/lib/syslog/cpp:backend_fuchsia_lib_sdk",
"//src/developer/debug/ipc:ipc_sdk",
"//src/developer/debug/shared:shared_sdk",
"//src/developer/debug/third_party/libunwindstack:libunwindstack_sdk",
"//src/lib/containers/cpp:cpp_sdk",
"//src/lib/diagnostics/accessor2logger:accessor2logger_sdk",
"//src/lib/elflib:elflib_sdk",
"//src/lib/fxl:fxl_sdk",
"//src/lib/process:process_sdk",
"//third_party/re2:re2_sdk",
"//zircon/public/sysroot/sdk:sysroot_sdk",
"//zircon/third_party/ulib/ngunwind:ngunwind_sdk",
]
}
sdk("platform") {
id = sdk_id
category = "internal"
deps = [
":platform_fidls",
":platform_libs",
]
}
sdk("core") {
id = sdk_id
category = "partner"
api = "manifests/core.manifest"
filter_api_host_tools = !sdk_cross_compile_host_tools
deps = [ ":core_idk" ]
if (!sdk_no_host_tools) {
deps += [ ":host_tools" ]
}
}
sdk("core_testing") {
id = sdk_id
testonly = true
category = "partner"
api = "manifests/core_testing.manifest"
deps = [ ":core_testing_idk" ]
}
group("host_tools.all") {
public_deps = []
if (host_os == "linux" && sdk_cross_compile_host_tools) {
public_deps += [
":host_tools.internal($host_arm64_toolchain)",
":host_tools.internal($host_x64_toolchain)",
]
} else {
public_deps += [ ":host_tools.internal($host_toolchain)" ]
}
}
if (is_host) {
# An IDK that only contains host tools that are used by the
# Fuchsia build system itself. In particular, this is where
# `ffx` will pick companion host tools when running in-tree.
sdk("host_tools.internal") {
id = sdk_id
category = "partner"
api = "manifests/host_tools_${current_os}_${current_cpu}.manifest"
deps = [
"//src/developer/debug/zxdb:zxdb_sdk",
"//src/developer/ffx:bin_sdk",
"//src/storage/bin/fvm:fvm_sdk",
"//src/storage/blobfs/tools:blobfs_sdk",
"//src/storage/minfs/tools:minfs_sdk",
"//src/storage/tools/blobfs-compression:blobfs-compression_sdk",
"//src/sys/pkg/bin/far:bin_sdk",
"//src/sys/pkg/bin/pm:pm_bin_sdk",
"//tools/bootserver_old:bootserver_sdk",
"//tools/cmc:cmc_sdk",
"//tools/fidl/fidlc:fidl-format_sdk",
"//tools/fidl/fidlc:fidlc_sdk",
"//tools/fidl/fidlgen_hlcpp:fidlgen_sdk",
"//tools/fidlcat:fidlcat_sdk",
"//tools/fvdl:fvdl_sdk",
"//tools/net/device-finder:device-finder_sdk",
"//tools/symbolizer:sdk",
"//zircon/tools/merkleroot:merkleroot_sdk",
"//zircon/tools/zbi:zbi_sdk",
]
}
}
# Firmware SDK.
sdk("firmware") {
category = "experimental"
deps = [
"//sdk/docs:firmware",
"//sdk/lib/zbi-format:zbi-format_sdk",
"//src/firmware/lib/abr:abr_sdk",
"//src/firmware/lib/storage:storage_sdk",
"//src/firmware/lib/zbi:zbi_sdk",
"//src/firmware/lib/zircon_boot:zircon_boot_sdk",
"//third_party/android/platform/external/avb:avb_sdk",
"//zircon/public/sysroot/sdk:sysroot_sdk",
]
}
# Tools and libraries to develop for Fuchsia with Dart.
sdk("fuchsia_dart") {
category = "partner"
id = sdk_id
api = "manifests/fuchsia_dart.manifest"
deps = [
"//sdk/docs:modular_config_schema",
# TODO(fxbug.dev/122070): remove, needed to soft transition
# https://fuchsia-review.googlesource.com/c/fuchsia/+/399537
"//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_sdk($fidl_toolchain)",
# TODO(fxbug.dev/122070): remove, needed to soft transition
# https://fuchsia-review.googlesource.com/c/fuchsia/+/295264
"//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app_sdk($fidl_toolchain)",
# Direct FIDL deps.
# If a FIDL deps is part of the SDK, it should be explicitly listed here.
"//sdk/dart/fidl:fidl_sdk($dart_toolchain)",
"//sdk/dart/fuchsia:fuchsia_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_component_test:fuchsia_component_test_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_inspect:fuchsia_inspect_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_logger:fuchsia_logger_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_scenic:fuchsia_scenic_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_services:fuchsia_services_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_vfs:fuchsia_vfs_sdk($dart_toolchain)",
"//sdk/dart/fuchsia_view:fuchsia_view_sdk($dart_toolchain)",
"//sdk/fidl/fuchsia.auth:fuchsia.auth_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.element:fuchsia.element_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.hardware.audio:fuchsia.hardware.audio_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.modular:fuchsia.modular_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_sdk($fidl_toolchain)",
]
if (!sdk_no_host_tools) {
deps += [
"//sdk/dart:gen_snapshot_sdk($dart_toolchain)",
"//sdk/dart:kernel_compiler_sdk($dart_toolchain)",
"//tools/fidl/fidlgen_dart:fidlgen_dart_sdk($host_toolchain)",
]
toolchains = []
if (host_os == "linux") {
toolchains += [
host_x64_toolchain,
host_arm64_toolchain,
]
} else if (host_os == "mac") {
toolchains += [ host_toolchain ]
}
foreach(toolchain, toolchains) {
deps += [ "//tools/fidl/fidlgen_dart:fidlgen_dart_sdk($toolchain)" ]
}
}
}
# Tools Fuchsia driver developers used on the host platform; where host is often
# Linux or Mac OS.
# WARNING (fxbug.dev/116642): the driver SDK will soon be removed.
# DO NOT ADD anything here!
sdk_molecule("driver_host_tools") {
visibility = [ ":*" ]
_driver_host_tools = [
"//src/devices/tools/fidlgen_banjo:fidlgen_banjo_bin_sdk",
"//tools/bindc:bindc_sdk",
"//tools/fidl/fidlgen_cpp:fidlgen_cpp_sdk",
# TODO(fxbug.dev/80525): Change to "fidlgen_cpp" once Bazel SDK uses the non-experimental name.
"//tools/fidl/fidlgen_cpp:fidlgen_cpp_experimental_driver_only_toolchain_sdk",
]
if (host_os == "linux" && sdk_cross_compile_host_tools) {
_toolchains = [
host_x64_toolchain,
host_arm64_toolchain,
]
} else {
_toolchains = [ host_toolchain ]
}
deps = []
foreach(toolchain, _toolchains) {
foreach(dep, _driver_host_tools) {
deps += [ "$dep($toolchain)" ]
}
}
}
# WARNING (fxbug.dev/116642): the driver SDK will soon be removed.
# DO NOT ADD anything here!
sdk_molecule("bind") {
visibility = [ ":*" ]
deps = [
"//src/devices/bind/fuchsia:fuchsia_sdk",
"//src/devices/bind/fuchsia.acpi:fuchsia.acpi_sdk",
"//src/devices/bind/fuchsia.i2c:fuchsia.i2c_sdk",
"//src/devices/bind/fuchsia.pci:fuchsia.pci_sdk",
"//src/devices/bind/fuchsia.test:fuchsia.test_sdk",
"//src/devices/bind/fuchsia.usb:fuchsia.usb_sdk",
]
}
# WARNING (fxbug.dev/116642): the driver SDK will soon be removed.
# DO NOT ADD anything here!
sdk_molecule("driver_fidl") {
visibility = [ ":*" ]
deps = [
"//sdk/fidl/fuchsia.device.fs:fuchsia.device.fs_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.driver.framework:fuchsia.driver.framework_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.hardware.acpi:fuchsia.hardware.acpi_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.hardware.i2c:fuchsia.hardware.i2c_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.hardware.pci:fuchsia.hardware.pci_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.wlan.common:fuchsia.wlan.common_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.wlan.ieee80211:fuchsia.wlan.ieee80211_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.wlan.internal:fuchsia.wlan.internal_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.wlan.phyimpl:fuchsia.wlan.phyimpl_sdk($fidl_toolchain)",
"//sdk/fidl/fuchsia.wlan.softmac:fuchsia.wlan.softmac_sdk($fidl_toolchain)",
]
}
# An experimental SDK for developing drivers.
# WARNING (fxbug.dev/116642): the driver SDK will soon be removed.
# DO NOT ADD anything here!
sdk("driver") {
id = sdk_id
category = "experimental"
api = "manifests/driver.manifest"
filter_api_host_tools = !sdk_cross_compile_host_tools
deps = [
":bind",
":driver_fidl",
"//sdk/lib/component/incoming/cpp:cpp_sdk",
"//sdk/lib/component/outgoing/cpp:cpp_sdk",
"//sdk/lib/driver/component:driver_component",
"//sdk/lib/driver/component/cpp:cpp_sdk",
"//sdk/lib/driver/devfs/cpp:cpp_sdk",
"//sdk/lib/driver/runtime:driver_runtime_cpp_sdk",
"//sdk/lib/driver/runtime:driver_runtime_sdk",
"//sdk/lib/fidl/cpp/wire:wire_sdk",
"//sdk/lib/fidl_driver:fidl_driver_natural_sdk",
"//sdk/lib/fidl_driver:fidl_driver_sdk",
"//sdk/lib/input_report_reader:input_report_reader_sdk",
"//sdk/lib/inspect/component/cpp:inspect_component_cpp_sdk",
"//src/devices/bin/driver_runtime:driver_runtime_sdk",
"//src/devices/lib/mmio:mmio_sdk",
"//src/lib/fidl/cpp:cpp_sdk",
"//zircon/system/ulib/hwreg:hwreg_sdk_sdk",
]
if (!sdk_no_host_tools) {
deps += [ ":driver_host_tools" ]
}
}
action("get_atoms_from_sdk_manifest") {
testonly = true
deps = []
inputs = []
outputs = []
sdk_manifests = []
foreach(dep, _sdk_public_deps) {
name = get_label_info(dep, "name")
copy_dep = dep + "_copy"
foreach(output, get_target_outputs(copy_dep)) {
sdk_manifests += [ rebase_path(output, root_build_dir) ]
inputs += [ output ]
}
deps += [ copy_dep ]
outputs += [ "$target_gen_dir/$name" ]
}
script = "//sdk/ctf/build/scripts/get_atoms_from_sdk_manifest.py"
args = [ "--sdk_manifests" ]
args += sdk_manifests
args += [
"--output_path",
rebase_path(target_gen_dir, root_build_dir),
]
}
golden_files("sdk_atom_manifest_goldens") {
testonly = true
comparisons = []
sdk_manifests = get_target_outputs(":get_atoms_from_sdk_manifest")
foreach(manifest, sdk_manifests) {
name = get_path_info(manifest, "name")
comparisons += [
{
golden = "//sdk/manifests/atoms/${name}.golden"
candidate = manifest
},
]
}
deps = [ ":get_atoms_from_sdk_manifest($target_toolchain)" ]
}