| # Copyright 2020 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/fidl/fidl.gni") |
| import("//zircon/tools/zither/zither_golden_files.gni") |
| import("vdso.gni") |
| |
| group("vdso") { |
| deps = [ ":zx($fidl_toolchain)" ] |
| } |
| |
| # See //zircon/tools/zither:tests, which covers the files generation from |
| # library zx. |
| group("tests") { |
| testonly = true |
| deps = [] |
| } |
| |
| # This is the zx library used by internal FIDL backends. For the library |
| # imported by `using zx;` in regular FIDL libraries, see |
| # //zircon/vdso/zx/BUILD.gn. |
| fidl("zx") { |
| visibility = [ |
| ":*", |
| "//zircon/tools/zither:tests", |
| ] |
| |
| sources = [ |
| "bti.fidl", |
| "cache.fidl", |
| "channel.fidl", |
| "clock.fidl", |
| "cprng.fidl", |
| "debug.fidl", |
| "debuglog.fidl", |
| "errors.fidl", |
| "event.fidl", |
| "eventpair.fidl", |
| "exception.fidl", |
| "fifo.fidl", |
| "framebuffer.fidl", |
| "futex.fidl", |
| "guest.fidl", |
| "handle.fidl", |
| "interrupt.fidl", |
| "iommu.fidl", |
| "ioports.fidl", |
| "job.fidl", |
| "ktrace.fidl", |
| "misc.fidl", |
| "msi.fidl", |
| "mtrace.fidl", |
| "object.fidl", |
| "overview.fidl", |
| "pager.fidl", |
| "pc.fidl", |
| "pci.fidl", |
| "pmt.fidl", |
| "port.fidl", |
| "process.fidl", |
| "profile.fidl", |
| "resource.fidl", |
| "restricted.fidl", |
| "rights.fidl", |
| "smc.fidl", |
| "socket.fidl", |
| "stream.fidl", |
| "system.fidl", |
| "task.fidl", |
| "thread.fidl", |
| "timer.fidl", |
| "types.fidl", |
| "vcpu.fidl", |
| "vmar.fidl", |
| "vmo.fidl", |
| "zx_common.fidl", |
| ] |
| |
| if (!exclude_testonly_syscalls) { |
| sources += [ "syscall.test.fidl" ] |
| } |
| |
| # TODO(fxbug.dev/110021): Burn these down. |
| experimental_flags = [ "zx_c_types" ] |
| |
| enable_zither = true |
| enable_cpp = false |
| enable_rust = false |
| |
| zither = { |
| asm = { |
| # While "zx" headers are currently stratified across zircon/* and |
| # zircon/syscalls/*, at this time we only use the assembly backend to |
| # generate checked-in headers in the former include namespace (i.e., |
| # <zircon/errors.h>). |
| output_namespace = "zircon" |
| } |
| } |
| } |
| |
| zither_golden_files("ifs") { |
| fidl = ":zx" |
| backend = "zircon_ifs" |
| sources = [ "//src/zircon/lib/zircon/zircon.ifs" ] |
| } |
| |
| zither_golden_files("docs") { |
| fidl = ":zx" |
| backend = "syscall_docs" |
| source_dir = "//docs/reference/syscalls" |
| } |
| |
| # TODO(fxbug.dev/51002): Consumption of this header in assembly should be |
| # migrated over to using the assembly backend directly, at which point this |
| # header should be generated by the C backend, complete with C-style casts. |
| zither_golden_files("zx.asm.checked-in") { |
| fidl = ":zx" |
| backend = "asm" |
| sources = [ "//zircon/system/public/zircon/errors.h" ] |
| } |
| |
| # Depended on by //zircon/public/sysroot/sdk:sysroot_sdk. |
| group("sysroot_sdk") { |
| deps = [ |
| ":docs", |
| ":zx.asm.checked-in", |
| ] |
| } |
| |
| # TODO(joshuaseaton): Do not let our use of a "library zx" here propagate up to |
| # SDK build logic that would then consider this an "SDK library": there is |
| # already another library zx in the SDK and so this prevents collision. |
| barrier_metadata = { |
| fidl_json_barrier = [] |
| } |
| |
| # This provides the public headers that go with the vDSO API, which are |
| # seen as <zircon/...>. |
| group("public") { |
| visibility = [ |
| "//src/zircon/lib/zircon/*", |
| "//zircon/kernel/lib/userabi/vdso/*", |
| "//zircon/public/sysroot/*", |
| ] |
| public_deps = [ ":zx_zither.legacy_syscall_cdecl" ] |
| metadata = barrier_metadata |
| } |
| |
| # This provides the private headers used by the kernel and vDSO |
| # implementation, which are seen as <lib/syscalls/...>. |
| group("private") { |
| visibility = [ |
| "//zircon/kernel/lib/syscalls/*", |
| "//zircon/kernel/lib/userabi/*", |
| "//zircon/system/ulib/syscalls-headers/*", |
| ] |
| public_deps = [ ":zx_zither.kernel" ] |
| metadata = barrier_metadata |
| } |
| |
| group("fuchsia-zircon-sys") { |
| # //src/lib/zircon/rust:fuchsia-zircon re-exports the contents of the |
| # crate generated by the zither.rust_syscall backend. |
| visibility = [ "//src/lib/zircon/rust:*" ] |
| public_deps = [ ":zx_zither.rust_syscall" ] |
| metadata = barrier_metadata |
| } |