blob: 4ba9fb59ac4a05020f2dd46fda762a019d2d68ad [file] [log] [blame]
# 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/gnbuild/magma.gni")
import("//src/graphics/lib/magma/include/virtio/virtmagma_debug.gni")
source_set("virtmagma_headers") {
sources = [
"virtmagma.h",
"virtmagma_util.h",
]
public_deps = [
"//src/graphics/magma/lib/magma/util:macros",
"//src/graphics/magma/lib/magma/util:short_macros",
]
}
static_library("libmagma_virt") {
public_deps = [ "//sdk/lib/magma_client:magma_headers" ]
deps = [
":magma_generic($shlib_toolchain)",
":virtmagma_headers",
"//src/graphics/lib/magma/include/virtio",
"//src/graphics/magma/lib/magma/platform:logger_impl",
]
# Only generate a copy in the shlib toolchain, to avoid redundant work.
generic_path =
get_label_info(":magma_generic($shlib_toolchain)", "target_gen_dir")
sources = [
"$generic_path/magma_generic.cc",
"magma.cc",
]
# All functions should be declared in magma.h, so warn about unnecessary functions.
cflags = [ "-Wmissing-prototypes" ]
# TODO(https://fxbug.dev/42085293): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-vla-cxx-extension" ]
if (virtmagma_debug) {
defines = [ "VIRTMAGMA_DEBUG=1" ]
}
}
# This target makes it easy to build libmagma_virt.a directly with ninja
group("libmagma_linux_x64_shared") {
deps = [ ":libmagma_virt(//build/toolchain:linux_x64-shared)" ]
}
group("libmagma_linux_arm64_shared") {
deps = [ ":libmagma_virt(//build/toolchain:linux_arm64-shared)" ]
}
action("magma_generic") {
out_file = "$target_gen_dir/magma_generic.cc"
script = "magma_generic_cc_gen.py"
args = [
rebase_path("//src/graphics/lib/magma/include/magma/magma.json",
root_build_dir),
rebase_path("//src/graphics/lib/magma/src/libmagma_virt/magma.cc",
root_build_dir),
rebase_path(out_file, root_build_dir),
]
if (virtmagma_debug) {
args += [ "--debug" ]
}
inputs = [
"//src/graphics/lib/magma/include/magma/magma.json",
"//src/graphics/lib/magma/src/libmagma_virt/magma.cc",
]
outputs = [ "$out_file" ]
}