blob: 0a19d2b0e2494cce1c878e5256b8df8f58158980 [file] [edit]
# Copyright 2023 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/packaged_shared_library.gni")
group("lavapipe-vulkan") {
public_deps = [ ":lavapipe_pkg" ]
}
shared_library("libvulkan_lavapipe") {
deps = [
"//sdk/lib/fdio",
"//src/lib/llvm/fuchsia:LLVMBitWriter",
"//src/lib/llvm/fuchsia:LLVMCodeGenTypes",
"//src/lib/llvm/fuchsia:LLVMCore",
"//src/lib/llvm/fuchsia:LLVMIRPrinter",
"//src/lib/llvm/fuchsia:LLVMMCDisassembler",
"//src/lib/llvm/fuchsia:LLVMMCJIT",
"//src/lib/llvm/fuchsia:LLVMPasses",
"//src/lib/llvm/fuchsia:LLVMTarget",
"//third_party/mesa-migrating/build/src/gallium/drivers/llvmpipe",
"//third_party/mesa-migrating/build/src/gallium/frontends/lavapipe",
]
if (target_cpu == "arm64") {
deps += [
"//src/lib/llvm/fuchsia:LLVMAArch64CodeGen",
"//src/lib/llvm/fuchsia:LLVMAArch64Disassembler",
"//src/lib/llvm/fuchsia:LLVMAArch64Info",
# TODO(https://fxbug.dev/339107217): the arm64 build shouldn't require these x64-specific libs
"//src/lib/llvm/fuchsia:LLVMX86CodeGen",
"//src/lib/llvm/fuchsia:LLVMX86Disassembler",
"//src/lib/llvm/fuchsia:LLVMX86Info",
]
} else if (target_cpu == "x64") {
deps += [
"//src/lib/llvm/fuchsia:LLVMX86CodeGen",
"//src/lib/llvm/fuchsia:LLVMX86Disassembler",
"//src/lib/llvm/fuchsia:LLVMX86Info",
]
}
configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
exclude_toolchain_tags = [ "instrumented" ]
}
packaged_shared_library("packaged_libvulkan_lavapipe") {
library = ":libvulkan_lavapipe"
output_name = ":libvulkan_lavapipe"
}
resource("vulkan_metadata") {
sources = [ "metadata.json" ]
outputs = [ "data/metadata.json" ]
}
icd_name = "libvulkan_lavapipe"
manifest_filename = "$target_gen_dir/vulkan/icd.d/$icd_name.json"
# api_version must be present but is unused
icd_data = [
"{",
"\"file_format_version\": \"1.0.0\",",
"\"ICD\": {",
"\"library_path\": \"$icd_name.so\",",
"\"api_version\": \"1.2.248\"",
"}",
"}",
]
write_file(manifest_filename, icd_data)
resource("vulkan_manifest_json") {
sources = [ manifest_filename ]
outputs = [ "data/icd.d/$icd_name.json" ]
}
fuchsia_package_with_single_component("lavapipe_pkg") {
package_name = "libvulkan_lavapipe"
component_name = "vulkan"
deps = [
":libvulkan_lavapipe",
":vulkan_manifest_json",
":vulkan_metadata",
]
manifest = "meta/vulkan.cml"
}