blob: eafb86dc104c12f49f26e94b396ab25a46ae8aaf [file] [log] [blame]
# Copyright 2021 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")
import("//build/dist/resource.gni")
source_set("src") {
testonly = true
sources = [ "libvulkan_test.cc" ]
public_deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_hlcpp",
"//sdk/lib/fdio",
"//sdk/lib/sys/cpp",
"//src/lib/fxl/test:test_settings",
"//third_party/googletest:gtest",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
public_deps += [ "//src/lib/vulkan" ]
}
executable("libvulkan_test_bin") {
testonly = true
output_name = "libvulkan_test"
deps = [ ":src" ]
}
executable("fake_vulkan_loader_bin") {
testonly = true
output_name = "fake_vulkan_loader"
sources = [ "fake_vulkan_loader.cc" ]
deps = [
"//sdk/fidl/fuchsia.vulkan.loader:fuchsia.vulkan.loader_hlcpp",
"//sdk/lib/sys/cpp",
"//src/lib/fxl:fxl_cli",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
deps += [
":icd-json",
":libvulkan_fake",
]
# IMPORTANT: The fake_vulkan_loader_bin program
# expects the library to be in /pkg/lib/ at
# runtime, which disallows using instrumented
# variants, which will install it it /pkg/lib/<variant>/
# instead, resulting in a runtime error.
exclude_toolchain_tags = [ "instrumented" ]
}
resource("icd-json") {
sources = [ "libvulkan_fake.json" ]
outputs = [ "data/manifest/libvulkan_fake.json" ]
}
shared_library("libvulkan_fake") {
sources = [ "libvulkan_fake.cc" ]
deps = [
"//sdk/lib/fdio",
"//src/lib/vulkan",
"//zircon/system/ulib/zx",
]
}
fuchsia_component("libvulkan_test_cmp") {
testonly = true
component_name = "libvulkan_test"
deps = [
":libvulkan_test_bin",
"//src/lib/vulkan/validation_layers",
]
manifest = "meta/libvulkan_test.cml"
}
# This tests that it's possible to load a hermetic ICD using VK_ICD_FILENAMES.
fuchsia_component("libvulkan_test_hermetic_cmp") {
testonly = true
component_name = "libvulkan_test_hermetic"
deps = [
":libvulkan_test_bin",
"//src/lib/vulkan/validation_layers",
]
manifest = "meta/libvulkan_test_hermetic.cml"
}
fuchsia_component("fake_vulkan_loader") {
testonly = true
component_name = "fake_vulkan_loader"
deps = [ ":fake_vulkan_loader_bin" ]
manifest = "meta/fake_vulkan_loader.cml"
}
fuchsia_test_package("libvulkan-test") {
package_name = "libvulkan_test"
test_components = [
":libvulkan_test_cmp",
":libvulkan_test_hermetic_cmp",
]
deps = [
":fake_vulkan_loader",
":libvulkan_fake",
]
}
group("libvulkan") {
testonly = true
deps = [ ":libvulkan-test" ]
}