| # 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("//build/components.gni") |
| |
| group("tests") { |
| testonly = true |
| deps = [ "test:vulkan_loader_tests" ] |
| } |
| |
| source_set("app") { |
| sources = [ |
| "app.cc", |
| "app.h", |
| "goldfish_device.cc", |
| "goldfish_device.h", |
| "gpu_device.h", |
| "icd_component.cc", |
| "icd_component.h", |
| "icd_list.cc", |
| "icd_list.h", |
| "icd_runner.cc", |
| "icd_runner.h", |
| "lavapipe_device.cc", |
| "lavapipe_device.h", |
| "loader.cc", |
| "loader.h", |
| "magma_dependency_injection.cc", |
| "magma_dependency_injection.h", |
| "magma_device.cc", |
| "magma_device.h", |
| ] |
| |
| public_deps = [ |
| ":structured_config_lib", |
| "//sdk/fidl/fuchsia.component:fuchsia.component_cpp", |
| "//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_cpp", |
| "//sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_cpp", |
| "//sdk/fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_cpp", |
| "//sdk/fidl/fuchsia.hardware.goldfish:fuchsia.hardware.goldfish_cpp", |
| "//sdk/fidl/fuchsia.io:fuchsia.io_cpp", |
| "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_cpp", |
| "//sdk/fidl/fuchsia.vulkan.loader:fuchsia.vulkan.loader_cpp", |
| "//sdk/lib/inspect/component/cpp", |
| "//src/storage/lib/vfs/cpp", |
| ] |
| |
| deps = [ |
| "//sdk/lib/component/incoming/cpp", |
| "//sdk/lib/component/outgoing/cpp", |
| "//sdk/lib/fdio", |
| "//src/lib/fsl", |
| "//src/lib/fxl", |
| "//src/lib/json_parser", |
| "//zircon/system/ulib/async-default", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| "//zircon/system/ulib/fbl", |
| ] |
| } |
| |
| executable("bin") { |
| output_name = "vulkan_loader" |
| |
| sources = [ "main.cc" ] |
| |
| deps = [ |
| ":app", |
| "//sdk/fidl/fuchsia.memorypressure:fuchsia.memorypressure_cpp", |
| "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_cpp", |
| "//sdk/lib/component/incoming/cpp", |
| "//sdk/lib/component/outgoing/cpp", |
| "//src/lib/fxl:fxl_cli", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| ] |
| } |
| |
| fuchsia_component_manifest("manifest") { |
| component_name = "vulkan_loader" |
| manifest = "meta/vulkan_loader.cml" |
| } |
| |
| fuchsia_structured_config_values("default_config_values") { |
| cm_label = ":manifest" |
| values = { |
| allow_magma_icds = true |
| allow_goldfish_icd = true |
| allow_lavapipe_icd = false |
| lavapipe_icd_url = |
| "fuchsia-pkg://fuchsia.com/libvulkan_lavapipe#meta/vulkan.cm" |
| } |
| } |
| |
| fuchsia_structured_config_values("hermetic_lavapipe_config_values") { |
| cm_label = ":manifest" |
| values = { |
| allow_magma_icds = false |
| allow_goldfish_icd = false |
| allow_lavapipe_icd = true |
| lavapipe_icd_url = "lavapipe_icd#meta/vulkan.cm" |
| } |
| } |
| |
| fuchsia_structured_config_cpp_elf_lib("structured_config_lib") { |
| cm_label = ":manifest" |
| } |
| |
| fuchsia_component("vulkan_loader_cmp") { |
| cm_label = ":manifest" |
| deps = [ ":bin" ] |
| } |
| |
| fuchsia_package("vulkan_loader") { |
| deps = [ |
| ":default_config_values", |
| ":vulkan_loader_cmp", |
| ] |
| } |
| |
| fuchsia_package("hermetic_vulkan_loader_with_lavapipe") { |
| deps = [ |
| ":hermetic_lavapipe_config_values", |
| ":vulkan_loader_cmp", |
| ] |
| renameable_subpackages = [ |
| { |
| name = "lavapipe_icd" |
| package = "//src/graphics/lib/lavapipe-vulkan:lavapipe_pkg" |
| }, |
| ] |
| } |