| # Copyright 2018 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. |
| |
| import("//src/graphics/lib/magma/include/virtio/virtmagma_debug.gni") |
| import("//src/sys/build/components.gni") |
| |
| group("packages") { |
| deps = [ |
| ":virtio_balloon", |
| ":virtio_block", |
| ":virtio_console", |
| ":virtio_gpu", |
| ":virtio_input", |
| ":virtio_magma", |
| ":virtio_net", |
| ":virtio_rng", |
| ":virtio_wl", |
| ] |
| } |
| |
| source_set("device") { |
| sources = [ |
| "block.h", |
| "config.h", |
| "input.h", |
| "phys_mem.cc", |
| "phys_mem.h", |
| "virtio_queue.cc", |
| "virtio_queue.h", |
| ] |
| configs += [ "//build/config:all_source" ] |
| public_deps = [ |
| "//sdk/fidl/fuchsia.virtualization.hardware", |
| "//sdk/lib/fit", |
| "//sdk/lib/syslog/cpp", |
| "//src/lib/fxl", |
| "//third_party/mesa/include:drm-uapi", |
| "//zircon/public/lib/async-cpp", |
| "//zircon/system/ulib/virtio", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| source_set("virtio") { |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "device_base.h", |
| "stream_base.h", |
| ] |
| public_deps = [ |
| ":device", |
| "//sdk/fidl/fuchsia.virtualization.hardware", |
| "//sdk/lib/sys/cpp", |
| "//src/lib/fsl", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| "//zircon/system/ulib/trace", |
| "//zircon/system/ulib/trace-provider:trace-provider-with-fdio", |
| ] |
| } |
| |
| executable("virtio_balloon_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_balloon" |
| sources = [ "virtio_balloon.cc" ] |
| deps = [ ":virtio" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_balloon") { |
| manifest = "../meta/virtio_balloon.cmx" |
| deps = [ ":virtio_balloon_bin" ] |
| } |
| |
| source_set("block") { |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "block_dispatcher.cc", |
| "block_dispatcher.h", |
| "qcow.cc", |
| "qcow.h", |
| ] |
| public_deps = [ |
| ":device", |
| "//sdk/fidl/fuchsia.io", |
| "//sdk/lib/syslog/cpp", |
| "//zircon/public/lib/bitmap", |
| "//zircon/system/ulib/trace", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| executable("virtio_block_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_block" |
| sources = [ "virtio_block.cc" ] |
| deps = [ |
| ":block", |
| ":virtio", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_block") { |
| manifest = "../meta/virtio_block.cmx" |
| deps = [ ":virtio_block_bin" ] |
| } |
| |
| executable("virtio_console_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_console" |
| sources = [ "virtio_console.cc" ] |
| deps = [ ":virtio" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_console") { |
| manifest = "../meta/virtio_console.cmx" |
| deps = [ ":virtio_console_bin" ] |
| } |
| |
| executable("virtio_input_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_input" |
| sources = [ "virtio_input.cc" ] |
| deps = [ ":virtio" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_input") { |
| manifest = "../meta/virtio_input.cmx" |
| deps = [ ":virtio_input_bin" ] |
| } |
| |
| executable("virtio_gpu_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_gpu" |
| sources = [ |
| "gpu_resource.cc", |
| "gpu_resource.h", |
| "gpu_scanout.cc", |
| "gpu_scanout.h", |
| "guest_view.cc", |
| "guest_view.h", |
| "virtio_gpu.cc", |
| ] |
| deps = [ |
| ":virtio", |
| "//sdk/fidl/fuchsia.ui.app", |
| "//sdk/fidl/fuchsia.ui.policy", |
| "//sdk/fidl/fuchsia.ui.scenic", |
| "//sdk/fidl/fuchsia.ui.views", |
| "//sdk/lib/ui/scenic/cpp", |
| "//src/lib/ui/base_view", |
| ] |
| |
| # TODO(fxb/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_gpu") { |
| manifest = "../meta/virtio_gpu.cmx" |
| deps = [ ":virtio_gpu_bin" ] |
| } |
| |
| source_set("magma_image") { |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "magma_image.cc", |
| "magma_image.h", |
| ] |
| deps = [ |
| "//sdk/fidl/fuchsia.sysmem", |
| "//src/graphics/lib/magma/include:magma_abi", |
| "//src/lib/fsl", |
| "//src/lib/vulkan", |
| "//third_party/mesa/include:drm-uapi", |
| "//zircon/public/lib/zx", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/image-format:image-format-llcpp", |
| "//zircon/system/ulib/service:service-llcpp", |
| "//zircon/system/ulib/syslog", |
| ] |
| } |
| |
| source_set("virtio_magma_lib") { |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "../bits.h", |
| "virtio_magma.cc", |
| "virtio_magma.h", |
| ] |
| deps = [ |
| ":magma_image", |
| ":virtio", |
| "//src/graphics/lib/magma/include:magma_abi", |
| "//src/graphics/lib/magma/include/virtio", |
| "//zircon/system/ulib/syslog", |
| ] |
| public_deps = [ ":virtio_magma_generic" ] |
| |
| if (virtmagma_debug) { |
| defines = [ "VIRTMAGMA_DEBUG=1" ] |
| } |
| |
| # TODO(fxbug.dev/66436): Fix instances of undefined behavior. |
| configs += [ "//build/config:temporarily_disable_ubsan_do_not_use" ] |
| } |
| |
| executable("virtio_magma_bin") { |
| visibility = [ ":*" ] |
| output_name = "virtio_magma" |
| deps = [ |
| ":virtio_magma_lib", |
| "//src/graphics/lib/magma/src/libmagma", |
| ] |
| } |
| |
| executable("virtio_magma_bin_mock_system") { |
| visibility = [ ":*" ] |
| testonly = true |
| output_dir = "$target_out_dir/virtio_magma_mock_system" |
| output_name = "virtio_magma" |
| deps = [ |
| ":virtio_magma_lib", |
| "//src/graphics/lib/magma/tests/mock:magma_system", |
| ] |
| } |
| |
| resource("virtio_magma_resources") { |
| sources = [ "${root_build_dir}/linux_x64-shared/libvulkan_intel.so" ] |
| outputs = [ "drivers/libvulkan_intel.so" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_magma") { |
| manifest = "../meta/virtio_magma.cmx" |
| deps = [ |
| ":virtio_magma_bin", |
| |
| # TODO(fxbug.dev/13128): don't hard-code the driver |
| ":virtio_magma_resources", |
| "//third_party/mesa/src/intel/vulkan:vulkan_intel(//build/toolchain:linux_x64-shared)", |
| ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_magma_mock_system") { |
| testonly = true |
| manifest = "../meta/virtio_magma.cmx" |
| deps = [ ":virtio_magma_bin_mock_system" ] |
| } |
| |
| executable("virtio_net_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_net" |
| sources = [ |
| "guest_ethernet.cc", |
| "guest_ethernet.h", |
| "virtio_net.cc", |
| ] |
| deps = [ |
| ":virtio", |
| "//sdk/fidl/fuchsia.hardware.ethernet:fuchsia.hardware.ethernet", |
| "//sdk/fidl/fuchsia.netstack", |
| "//sdk/lib/fit-promise", |
| "//zircon/public/lib/async-cpp", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_net") { |
| manifest = "../meta/virtio_net.cmx" |
| deps = [ ":virtio_net_bin" ] |
| } |
| |
| executable("virtio_rng_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_rng" |
| sources = [ "virtio_rng.cc" ] |
| deps = [ ":virtio" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_rng") { |
| manifest = "../meta/virtio_rng.cmx" |
| deps = [ ":virtio_rng_bin" ] |
| } |
| |
| executable("virtio_wl_bin") { |
| visibility = [ ":*" ] |
| |
| output_name = "virtio_wl" |
| sources = [ |
| "../bits.h", |
| "virtio_wl.cc", |
| "virtio_wl.h", |
| ] |
| |
| deps = [ |
| ":virtio", |
| "//sdk/fidl/fuchsia.scenic.allocation", |
| "//sdk/fidl/fuchsia.sysmem", |
| "//zircon/system/ulib/fbl", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| fuchsia_package_with_single_component("virtio_wl") { |
| manifest = "../meta/virtio_wl.cmx" |
| deps = [ ":virtio_wl_bin" ] |
| } |
| |
| executable("device_tests") { |
| visibility = [ "//src/virtualization/bin/vmm:*" ] |
| testonly = true |
| |
| sources = [ |
| "magma_image_test.cc", |
| "test_with_device.cc", |
| "test_with_device.h", |
| "virtio_balloon_test.cc", |
| "virtio_block_test.cc", |
| "virtio_console_test.cc", |
| "virtio_gpu_test.cc", |
| "virtio_input_test.cc", |
| "virtio_magma_test.cc", |
| "virtio_net_test.cc", |
| "virtio_queue_fake.cc", |
| "virtio_queue_fake.h", |
| "virtio_queue_test.cc", |
| "virtio_rng_test.cc", |
| "virtio_wl_unittest.cc", |
| ] |
| |
| deps = [ |
| ":device", |
| ":magma_image", |
| "//sdk/fidl/fuchsia.netstack", |
| "//sdk/fidl/fuchsia.ui.scenic", |
| "//sdk/fidl/fuchsia.virtualization.hardware", |
| "//sdk/lib/sys/cpp/testing:integration", |
| "//src/graphics/lib/magma/include:magma_abi", |
| "//src/graphics/lib/magma/include/virtio:headers", |
| "//src/lib/fxl/test:gtest_main", |
| "//third_party/mesa/include:drm-uapi", |
| "//zircon/system/ulib/fzl", |
| "//zircon/system/ulib/trace-provider:trace-provider-with-fdio", |
| "//zircon/system/ulib/virtio", |
| ] |
| |
| configs += [ "//build/config:all_source" ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| source_set("qcow_test_data") { |
| visibility = [ "//src/virtualization/*" ] |
| sources = [ "qcow_test_data.h" ] |
| public_deps = [ ":block" ] |
| } |
| |
| executable("device_unittests") { |
| visibility = [ "//src/virtualization/bin/vmm:*" ] |
| testonly = true |
| |
| sources = [ |
| "qcow_unittest.cc", |
| "volatile_write_block_dispatcher_unittest.cc", |
| ] |
| |
| deps = [ |
| ":qcow_test_data", |
| "//sdk/lib/syslog/cpp", |
| "//src/lib/fxl/test:gtest_main", |
| "//zircon/public/lib/fbl", |
| ] |
| |
| # TODO(fxbug.dev/58162): delete the below and fix compiler warnings |
| configs += [ "//build/config:Wno-conversion" ] |
| } |
| |
| action("virtio_magma_generic") { |
| out_file = "$target_gen_dir/virtio_magma_generic.h" |
| script = "virtio_magma_generic_h_gen.py" |
| args = [ |
| rebase_path("//src/graphics/lib/magma/include/magma_abi/magma.json", |
| root_build_dir), |
| rebase_path(out_file, root_build_dir), |
| ] |
| sources = [ "$script" ] |
| inputs = [ "//src/graphics/lib/magma/include/magma_abi/magma.json" ] |
| outputs = [ "$out_file" ] |
| } |