| # 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. |
| |
| if (current_toolchain == default_toolchain) { |
| # In the default toolchain, simply define the bootloader toolchains |
| # to be used to build Gigaboot as a Win32 PE32+ executable. |
| |
| import("//build/toolchain/zircon/zircon_toolchain_suite.gni") |
| |
| # Define a Zircon EFI toolchain. These are required to build the Gigaboot |
| # bootloader (see //zircon/bootloader/README.md) |
| # |
| # Parameters: |
| # cpu: [required] |
| # Fuchsia device CPU name (e.g. "x64" or "arm64") |
| # Type: string |
| # |
| template("zircon_efi_toolchain") { |
| zircon_toolchain_suite(target_name) { |
| cpu = invoker.cpu |
| os = "win" |
| environment = "efi" |
| with_shared = false |
| exclude_variant_tags = [ |
| "instrumented", |
| "gcc", |
| ] |
| toolchain_variant_args = { |
| configs = [ "//zircon/bootloader:efi_config" ] |
| |
| # TODO: harmless, but just to match build.mk |
| remove_common_configs = |
| [ "//build/config/zircon:default_frame_pointers" ] |
| } |
| } |
| } |
| |
| # These toolchains will be used to build the EFI bootloader. |
| zircon_efi_toolchain("efi_x64") { |
| cpu = "x64" |
| } |
| |
| zircon_efi_toolchain("efi_arm64") { |
| cpu = "arm64" |
| } |
| } else { |
| assert( |
| current_toolchain == "//zircon/bootloader:efi_${current_cpu}", |
| "current_toolchain is ${current_toolchain} and should be efi_${current_cpu}") |
| |
| # This is the top config for all code in the efi_toolchain. |
| config("efi_config") { |
| configs = [ |
| "//build/config/zircon:standalone", |
| "//build/config/zircon:no_sanitizers", |
| |
| # TODO: "$zx/kernel:warnings", |
| ] |
| include_dirs = [ "include" ] |
| cflags = [ |
| "-std=c99", |
| "-fshort-wchar", |
| ] |
| } |
| |
| # Any config listed in toolchain_variant must have a _deps group listing |
| # extra dependencies for it. |
| group("efi_config_deps") { |
| } |
| |
| # TODO(digit): bootloader executable |
| } |