blob: 098164a89123003c1d570a7e80c3fd2e9ec012cb [file]
# Copyright 2026 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.
load("@fuchsia_rules_common//packages:resources.bzl", "resource")
load(
"//build/bazel/rules/components:fx_component.bzl",
"fx_component",
"fx_component_manifest",
)
load("//build/bazel/rules/packages:fx_package.bzl", "fx_package")
load(
"//build/bazel/rules/packages:fx_packaged_binary.bzl",
"fx_packaged_binary",
)
load("//build/bazel/rules/rust:rustc_binary.bzl", "rustc_binary")
load("//build/bazel/rules/rust:rustc_library.bzl", "rustc_library")
package(default_applicable_licenses = ["//:license"])
rustc_library(
name = "server",
srcs = ["src/server.rs"],
crate_root = "src/server.rs",
edition = "2024",
proc_macro_deps = ["//third_party/rust_crates/vendor:async-trait"],
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-fs",
"//src/lib/fuchsia-hyper",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:futures",
"//third_party/rust_crates/vendor:hyper",
"//third_party/rust_crates/vendor:log",
],
)
# TODO(https://fxbug.dev/570694755): bazel2gn does not translate resource()
# targets, so GN retains resource_group("server_data") in data_deps.
# @bazel2gn:raw_attribute:data_deps = [ ":server_data" ]
rustc_binary(
name = "bin",
srcs = ["src/main.rs"],
crate_name = "file_server",
edition = "2024",
deps = [
":server",
"//src/lib/fuchsia",
"//third_party/rust_crates/vendor:anyhow",
],
)
# TODO(https://fxbug.dev/570694755): bazel2gn does not translate resource()
# targets; GN uses resource_group("server_data") above the sentinel.
# @bazel2gn:skip
resource(
name = "sample_video",
src = "data/test_video.webm",
dest = "data/sample_video.webm",
)
# TODO(https://fxbug.dev/570694755): bazel2gn does not translate resource()
# targets; GN uses resource_group("server_data") above the sentinel.
# @bazel2gn:skip
resource(
name = "fuchsia_logo",
src = "data/fuchsia_logo.png",
dest = "data/fuchsia_logo.png",
)
# TODO(https://fxbug.dev/570694755): bazel2gn does not translate resource()
# targets; GN uses resource_group("server_data") above the sentinel.
# @bazel2gn:skip
resource(
name = "100Hz_tone",
src = "data/100Hz_tone.mp3",
dest = "data/100Hz_tone.mp3",
)
fx_packaged_binary(
name = "file_server_packaged_bin",
binary = ":bin",
binary_name = "file_server",
)
fx_component_manifest(
name = "file_server_manifest",
component_name = "file_server",
includes = ["//sdk/lib/syslog:client.shard"],
manifest = "meta/file_server.cml",
)
fx_component(
name = "file_server_component",
compiled_manifest = ":file_server_manifest",
visibility = ["//src/testing/system-validation/web:__pkg__"],
deps = [
":file_server_packaged_bin",
# TODO(https://fxbug.dev/570694755): In GN, these resources are
# packaged via data_deps = [ ":server_data" ] on :bin.
# @bazel2gn:skip
":100Hz_tone",
# TODO(https://fxbug.dev/570694755): In GN, these resources are
# packaged via data_deps = [ ":server_data" ] on :bin.
# @bazel2gn:skip
":fuchsia_logo",
# TODO(https://fxbug.dev/570694755): In GN, these resources are
# packaged via data_deps = [ ":server_data" ] on :bin.
# @bazel2gn:skip
":sample_video",
],
)
fx_package(
name = "file_server_package",
package_name = "file_server",
components = [":file_server_component"],
)