blob: 8cf4659183287a8a10c6fe0a0dcae52e2ad59676 [file] [log] [blame]
# Copyright 2022 The Fuchsia Authors.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/assembly/product_assembly_configuration.gni")
import("//build/assembly/sshd_config.gni")
import("//build/bazel/assembly/bazel_product_bundle.gni")
assert(
is_fuchsia,
"Product definitions and assemblies should only be defined in the fuchsia toolchain")
# LINT.IfChange
product_assembly_configuration("minimal") {
platform = {
build_type = "eng"
fonts = {
# minimal is headless, so ostensibly does not need fonts.
enabled = false
}
ui = {
supported_input_devices = [
"button",
"touchscreen",
]
}
# If the 'authorized_ssh_keys_path' GN arg has been set, then pass that path
# as part of the platform configuration.
if (authorized_ssh_keys_path != false) {
development_support = {
authorized_ssh_keys_path =
rebase_path(authorized_ssh_keys_path, root_build_dir)
}
}
}
product = {
build_info = default_product_build_info
}
deps = [
":board_assembly_artifacts",
"//build/info:build_info_files",
]
}
# LINT.ThenChange(//products/minimal/BUILD.bazel)
if (current_cpu == "x64") {
bazel_product_bundle("product_bundle.x64") {
testonly = true
allow_eng_platform_bundle_use = true
bazel_product_bundle_target = ":product_bundle.x64"
bazel_product_image_target = ":image.x64"
bazel_recovery_image_target = "//products/zedboot:x64"
bazel_elf_sizes_target = ":elf_sizes.x64"
bazel_inputs_from_gn = [
"//build/images/fuchsia:fuchsia.bazel_legacy_aib",
"//build/images/zedboot:zedboot.bazel_legacy_aib",
]
if (board_configuration_label != false) {
bazel_inputs_from_gn += [
# Add the board configuration as a dependency via the GN arg, as vendor-
# repo boards can shadow the ones in //boards.
get_label_info(board_configuration_label, "label_no_toolchain") +
".bazel_input",
]
}
}
bazel_product_bundle("product_bundle.qemu-x64") {
testonly = true
allow_eng_platform_bundle_use = true
bazel_product_bundle_target = ":product_bundle.qemu-x64"
bazel_product_image_target = ":image.qemu-x64"
bazel_recovery_image_target = "//products/zedboot:qemu-x64"
bazel_elf_sizes_target = ":elf_sizes.qemu-x64"
bazel_inputs_from_gn = [
"//build/images/fuchsia:fuchsia.bazel_legacy_aib",
"//build/images/zedboot:zedboot.bazel_legacy_aib",
]
if (board_configuration_label != false) {
bazel_inputs_from_gn += [
# Add the board configuration as a dependency via the GN arg, as vendor-
# repo boards can shadow the ones in //boards.
get_label_info(board_configuration_label, "label_no_toolchain") +
".bazel_input",
]
}
}
}
if (current_cpu == "arm64") {
bazel_product_bundle("product_bundle.arm64") {
testonly = true
allow_eng_platform_bundle_use = true
bazel_product_bundle_target = ":product_bundle.arm64"
bazel_product_image_target = ":image.arm64"
bazel_recovery_image_target = "//products/zedboot:arm64"
bazel_elf_sizes_target = ":elf_sizes.arm64"
bazel_inputs_from_gn = [
"//boards/arm64:arm64.bazel_input",
"//build/images/fuchsia:fuchsia.bazel_legacy_aib",
"//build/images/zedboot:zedboot.bazel_legacy_aib",
]
}
bazel_product_bundle("product_bundle.vim3") {
testonly = true
allow_eng_platform_bundle_use = true
bazel_product_bundle_target = ":product_bundle.vim3"
bazel_product_image_target = ":image.vim3"
bazel_recovery_image_target = "//products/zedboot:vim3"
bazel_elf_sizes_target = ":elf_sizes.arm64"
bazel_inputs_from_gn = [
"//build/images/fuchsia:fuchsia.bazel_legacy_aib",
"//build/images/zedboot:zedboot.bazel_legacy_aib",
]
if (board_configuration_label != false) {
bazel_inputs_from_gn += [
# Add the board configuration as a dependency via the GN arg, as vendor-
# repo boards can shadow the ones in //boards.
get_label_info(board_configuration_label, "label_no_toolchain") +
".bazel_input",
]
}
}
}
if (current_cpu == "riscv64") {
bazel_product_bundle("product_bundle.riscv64") {
testonly = true
allow_eng_platform_bundle_use = true
bazel_product_bundle_target = ":product_bundle.riscv64"
bazel_product_image_target = ":image.riscv64"
bazel_recovery_image_target = "//products/zedboot:riscv64"
bazel_elf_sizes_target = ":elf_sizes.riscv64"
bazel_inputs_from_gn = [
"//boards/riscv64:riscv64.bazel_input",
"//build/images/fuchsia:fuchsia.bazel_legacy_aib",
"//build/images/zedboot:zedboot.bazel_legacy_aib",
]
}
}
# The board input bundles that minimal products needs to ship
generated_file("board_assembly_artifacts") {
deps = [
# Include all the board input bundles for this arch.
"//boards:boards",
]
data_keys = [ "board_assembly_artifacts" ]
output_conversion = "json"
outputs = [ "${target_gen_dir}/board_assembly_artifacts.json" ]
metadata = {
assembly_inputs = [
{
path = rebase_path(outputs[0], root_build_dir)
},
]
assembly_inputs_barrier = []
}
}