| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 1 | # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| Shai Barack | 6a58d99 | 2021-04-14 05:50:58 +0000 | [diff] [blame] | 5 | import("//build/components.gni") |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 6 | import("//build/rust/rustc_binary.gni") |
| 7 | import("//build/rust/rustc_library.gni") |
| David 'Digit' Turner | 6341215 | 2024-07-22 14:15:53 +0000 | [diff] [blame] | 8 | import("//build/rust/rustc_link_attribute.gni") |
| 9 | |
| 10 | # The Rust stdlib has an implicit link attribute to libfdio. |
| 11 | # Any Rust executable should depend on this target to link |
| 12 | # properly. See //build/rust/rustc_artifact.gni. |
| 13 | rustc_link_attribute("fdio_for_rust_stdlib") { |
| 14 | lib_shared_target = "//sdk/lib/fdio" |
| 15 | } |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 16 | |
| 17 | rustc_library("fdio") { |
| 18 | with_unit_tests = true |
| 19 | version = "0.2.0" |
| Sarah Chan | 64bf58d | 2025-12-06 16:25:07 -0800 | [diff] [blame] | 20 | edition = "2024" |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 21 | deps = [ |
| Mitchell Kember | 0c5eddb | 2022-07-28 23:36:32 +0000 | [diff] [blame] | 22 | "//sdk/fidl/fuchsia.io:fuchsia.io_rust", |
| Vinicius Felizardo | d27abc6 | 2024-06-20 17:09:05 +0000 | [diff] [blame] | 23 | "//sdk/lib/fdio", |
| Adam Perry | 180a49c | 2024-10-03 06:38:50 +0000 | [diff] [blame] | 24 | "//sdk/rust/zx", |
| Charles Celerier | 6a01f51 | 2022-09-07 22:41:41 +0000 | [diff] [blame] | 25 | "//src/lib/fidl/rust/fidl", |
| Benjamin Brittain | be556257 | 2020-01-03 20:46:46 +0000 | [diff] [blame] | 26 | "//src/lib/fuchsia-runtime", |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 27 | "//third_party/rust_crates:bitflags", |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 28 | "//third_party/rust_crates:thiserror", |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 29 | ] |
| 30 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 31 | test_deps = [ |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 32 | "//src/lib/fuchsia-async", |
| 33 | "//src/lib/fuchsia-runtime", |
| Jeff Martin | 6eea97e | 2022-05-05 15:01:41 +0000 | [diff] [blame] | 34 | "//third_party/rust_crates:assert_matches", |
| Tamir Duberstein | b5431bd | 2022-06-24 23:06:17 +0000 | [diff] [blame] | 35 | "//third_party/rust_crates:libc", |
| 36 | "//third_party/rust_crates:rand", |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 37 | "//third_party/rust_crates:tempfile", |
| 38 | ] |
| Adam Lesinski | 9f39a12 | 2020-07-22 21:17:36 +0000 | [diff] [blame] | 39 | |
| Adam Lesinski | 9f39a12 | 2020-07-22 21:17:36 +0000 | [diff] [blame] | 40 | sources = [ |
| 41 | "src/fdio_sys.rs", |
| 42 | "src/lib.rs", |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 43 | "src/spawn_builder.rs", |
| Adam Lesinski | 9f39a12 | 2020-07-22 21:17:36 +0000 | [diff] [blame] | 44 | ] |
| Tamir Duberstein | 7e64ca7 | 2022-05-05 21:42:18 +0000 | [diff] [blame] | 45 | |
| Tamir Duberstein | 98a4fa4 | 2022-07-18 10:06:20 +0000 | [diff] [blame] | 46 | configs -= [ "//build/config/rust/lints:allow_unused_results" ] |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 47 | } |
| 48 | |
| Chris Suter | 95d7220 | 2025-07-15 18:34:37 -0700 | [diff] [blame] | 49 | rustc_library("fdio_zxio") { |
| 50 | with_unit_tests = true |
| 51 | version = "0.1.0" |
| Sarah Chan | 64bf58d | 2025-12-06 16:25:07 -0800 | [diff] [blame] | 52 | edition = "2024" |
| Chris Suter | 95d7220 | 2025-07-15 18:34:37 -0700 | [diff] [blame] | 53 | source_root = "src/fdio_zxio.rs" |
| 54 | sources = [ |
| 55 | "src/fdio_sys.rs", |
| 56 | "src/fdio_zxio.rs", |
| 57 | "src/zxio_sys.rs", |
| 58 | ] |
| 59 | deps = [ |
| 60 | "//sdk/lib/zxio", |
| 61 | "//sdk/rust/zx", |
| 62 | ] |
| 63 | test_deps = [ |
| 64 | "//src/lib/fuchsia", |
| 65 | "//third_party/rust_crates:libc", |
| 66 | ] |
| 67 | } |
| 68 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 69 | rustc_binary("spawn_test_target") { |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 70 | version = "0.2.0" |
| Sarah Chan | 64bf58d | 2025-12-06 16:25:07 -0800 | [diff] [blame] | 71 | edition = "2024" |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 72 | source_root = "test/spawn_test_target.rs" |
| 73 | sources = [ "test/spawn_test_target.rs" ] |
| Tamir Duberstein | 7e64ca7 | 2022-05-05 21:42:18 +0000 | [diff] [blame] | 74 | |
| Tamir Duberstein | 98a4fa4 | 2022-07-18 10:06:20 +0000 | [diff] [blame] | 75 | configs -= [ "//build/config/rust/lints:allow_unused_results" ] |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 76 | } |
| 77 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 78 | rustc_binary("spawn_builder_test_target") { |
| Sarah Chan | 64bf58d | 2025-12-06 16:25:07 -0800 | [diff] [blame] | 79 | edition = "2024" |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 80 | visibility = [ ":*" ] |
| 81 | source_root = "test/spawn_builder_test_target.rs" |
| 82 | sources = [ "test/spawn_builder_test_target.rs" ] |
| Tamir Duberstein | 7e64ca7 | 2022-05-05 21:42:18 +0000 | [diff] [blame] | 83 | |
| Tamir Duberstein | 98a4fa4 | 2022-07-18 10:06:20 +0000 | [diff] [blame] | 84 | configs -= [ "//build/config/rust/lints:allow_unused_results" ] |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 85 | } |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 86 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 87 | fuchsia_component("test-component") { |
| 88 | testonly = true |
| 89 | visibility = [ ":*" ] |
| 90 | component_name = "fdio_lib_test" |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 91 | deps = [ |
| 92 | ":fdio_test", |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 93 | ":spawn_builder_test_target", |
| 94 | ":spawn_test_target", |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 95 | ] |
| Adam Perry | 5a7797f | 2022-06-22 15:44:19 +0000 | [diff] [blame] | 96 | manifest = "meta/fdio_lib_test.cml" |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 97 | } |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 98 | |
| Chris Suter | 95d7220 | 2025-07-15 18:34:37 -0700 | [diff] [blame] | 99 | fuchsia_unittest_component("fdio_zxio_test_component") { |
| 100 | visibility = [ ":*" ] |
| 101 | component_name = "fdio_zxio_test" |
| 102 | deps = [ ":fdio_zxio_test" ] |
| 103 | } |
| 104 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 105 | fuchsia_test_package("test-package") { |
| 106 | package_name = "fdio-rust-tests" |
| Chris Suter | 95d7220 | 2025-07-15 18:34:37 -0700 | [diff] [blame] | 107 | test_components = [ |
| 108 | ":test-component", |
| 109 | ":fdio_zxio_test_component", |
| 110 | ] |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 111 | } |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 112 | |
| Ben Keller | 9882dd0 | 2020-11-11 23:07:31 +0000 | [diff] [blame] | 113 | group("tests") { |
| 114 | testonly = true |
| 115 | deps = [ ":test-package" ] |
| Benjamin Brittain | 014f7ff | 2019-12-30 21:05:23 +0000 | [diff] [blame] | 116 | } |