| # 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" ] |
| } |