# Copyright 2019 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.

#  ________  _________  ________  ________
# |\   ____\|\___   ___\\   __  \|\   __  \
# \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
#  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
#   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
#     ____\_\  \   \ \__\ \ \_______\ \__\
#    |\_________\   \|__|  \|_______|\|__|
#    \|_________|
#
#
# The qemu-x64 board was originally intended to be different than x64 by
# including virtualization drivers. We later added those drivers to the x64
# board anyway, obviating the need for a special qemu-x64 board. Keeping the
# qemu-x64 board around added maintenance burden, so we got rid of it
# (https://fxbug.dev/293640613). However, we left this board file around as an
# alias to avoid breaking developer flows.
import("x64.gni")
