blob: 1d450b23c5273ffdc9fa6b3a9aca4575c90a9979 [file] [log] [blame]
# Copyright 2016 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.
declare_args() {
magma_build_root = "//garnet/lib/magma"
expat_build_root = "//third_party/expat"
msd_intel_gen_build_root = "//garnet/drivers/gpu/msd-intel-gen"
glm_build_root = "//third_party/glm"
zircon_build_root = "//zircon"
magma_python_path = rebase_path("//third_party/mako")
# Enable this to include fuchsia tracing capability
magma_enable_tracing = true
# Enable this to have the msd include a suite of tests and invoke them
# automatically when the driver starts.
magma_enable_developer_build = false
build_msd_arm_mali = target_cpu == "arm64"
build_vsl_gc = target_cpu == "arm64"
build_intel_gen = target_cpu == "x64"
prebuilt_libvulkan_arm_path = ""
}
declare_args() {
# Mesa doesn't properly handle loader-less operation;
# their GetInstanceProcAddr implementation returns 0 for some interfaces.
# On ARM there may be multiple libvulkan_arms, so they can't all be linked
# to.
use_vulkan_loader_for_tests = true
# This is a list of targets that will be built as vulkan ICDS. If more than one
# target is given then use_vulkan_loader_for_tests must be set to true, as
# otherwise tests won't know which libvulkan to use.
build_libvulkan = []
if (build_intel_gen) {
mesa_build_root = "//third_party/mesa"
build_libvulkan += [ "//third_party/mesa:magma_vulkan" ]
}
}
have_prebuilt_libvulkan_arm = prebuilt_libvulkan_arm_path != ""
have_libvulkan = build_libvulkan != [] || have_prebuilt_libvulkan_arm
template("magma_pci_entry") {
source_set(target_name) {
assert(defined(invoker.pci_vendor_id), "pci_vendor_id not defined")
if (!defined(invoker.test_entry)) {
test_entry = false
} else {
testonly = true
}
forward_variables_from(invoker, "*")
sources = [
"//garnet/lib/magma/src/sys_driver/pci_entry.cc",
]
defines = [ "MAGMA_PCI_VENDOR_ID=" + pci_vendor_id ]
if (!defined(invoker.deps)) {
deps = []
}
deps += [ "//zircon/public/lib/ddk" ]
if (!test_entry) {
deps += [ "//garnet/lib/magma/src/sys_driver:entry" ]
} else {
deps += [ "//garnet/lib/magma/src/sys_driver:test_entry_pci" ]
}
}
}
template("magma_pdev_entry") {
source_set(target_name) {
assert(defined(invoker.pdev_device_id), "pdev_device_id not defined")
if (!defined(invoker.test_entry)) {
test_entry = false
} else {
testonly = true
}
forward_variables_from(invoker, "*")
sources = [
"//garnet/lib/magma/src/sys_driver/pdev_entry.cc",
]
defines = [ "MAGMA_PDEV_DEVICE_ID=" + pdev_device_id ]
if (!defined(invoker.deps)) {
deps = []
}
deps += [ "//zircon/public/lib/ddk" ]
if (!test_entry) {
deps += [ "//garnet/lib/magma/src/sys_driver:entry" ]
} else {
deps += [ "//garnet/lib/magma/src/sys_driver:test_entry_pdev" ]
}
}
}
template("magma_vulkan_icd") {
shared_library(target_name) {
forward_variables_from(invoker, "*")
if (!is_debug) {
version_script = rebase_path("//garnet/lib/magma/scripts/libvulkan.version")
if (!defined(invoker.inputs)) {
inputs = []
}
inputs += [
version_script,
]
ldflags += [ "-Wl,--version-script=$version_script" ]
}
}
}