| # Copyright 2022 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/test.gni") |
| import("//build/zircon/migrated_targets.gni") |
| |
| zx_library("zxdump") { |
| sdk = "source" |
| sdk_headers = [ |
| "lib/zxdump/dump.h", |
| "lib/zxdump/fd-writer.h", |
| "lib/zxdump/types.h", |
| ] |
| |
| public_deps = [ |
| # <lib/zxdump/types.h> has #include <zircon/types.h>. |
| "//zircon/system/public", |
| |
| # <lib/zxdump/fd-writer.h> has #include <lib/fitx/result.h>. |
| "//zircon/system/ulib/zxc", |
| |
| # <lib/zxdump/dump.h> has #include <lib/fit/function.h>. |
| "//sdk/lib/fit", |
| |
| # <lib/zxdump/fd-writer.h> has #include <fbl/unique_fd.h>. |
| "//zircon/system/ulib/fbl", |
| ] |
| |
| if (is_fuchsia) { |
| public_deps += [ |
| # <lib/zxdump/dump.h> has #include <lib/zx/process.h>. |
| "//zircon/system/ulib/zx", |
| ] |
| } |
| |
| sources = [ |
| "core.h", |
| "error.cc", |
| "fd-writer.cc", |
| ] |
| |
| deps = [ "//src/lib/elfldltl" ] |
| |
| if (is_fuchsia) { |
| sources += [ "dump.cc" ] |
| deps += [ |
| "//sdk/lib/stdcompat", |
| "//src/zircon/lib/zircon", |
| "//zircon/system/ulib/zx", |
| ] |
| } |
| } |
| |
| source_set("piped-command") { |
| visibility = [ ":*" ] |
| |
| public = [ "piped-command.h" ] |
| public_deps = [ |
| "//zircon/system/ulib/fbl", |
| "//zircon/system/ulib/zxc", |
| ] |
| |
| sources = [ "piped-command.cc" ] |
| if (is_fuchsia) { |
| sources += [ "piped-command-fuchsia.cc" ] |
| public_deps += [ "//sdk/lib/fdio" ] |
| deps = [ |
| "//sdk/lib/fdio", |
| "//zircon/system/ulib/zx", |
| ] |
| } else { |
| sources += [ "piped-command-posix.cc" ] |
| } |
| } |
| |
| source_set("test-tool-process") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| public = [ "test-tool-process.h" ] |
| public_deps = [ "//zircon/system/ulib/fbl" ] |
| |
| sources = [ "test-tool-process.cc" ] |
| deps = [ |
| ":piped-command", |
| "//third_party/googletest:gtest", |
| ] |
| |
| if (is_fuchsia) { |
| public_deps += [ "//zircon/system/ulib/zx" ] |
| deps += [ |
| "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_llcpp", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| "//zircon/system/ulib/service:service-llcpp", |
| ] |
| } |
| } |
| |
| test("zxdump-unittests") { |
| sources = [ |
| "error-tests.cc", |
| "fd-writer-tests.cc", |
| "piped-command-tests.cc", |
| ] |
| deps = [ |
| ":piped-command", |
| ":test-tool-process", |
| ":zxdump", |
| "//sdk/lib/fit", |
| "//src/lib/elfldltl", |
| "//src/lib/fxl/test:gtest_main", |
| "//zircon/system/ulib/fbl", |
| ] |
| |
| # Depend on the base toolchain in case both the child and this target use |
| # the same variant, so that the copy under the expected name can be found |
| # at runtime. |
| data_deps = [ ":zxdump-test-child(${toolchain_variant.base})" ] |
| |
| if (is_fuchsia) { |
| sources += [ |
| "dump-tests.h", |
| "gcore-tests.cc", |
| ] |
| data_deps += [ ":gcore(${toolchain_variant.base})" ] |
| } |
| } |
| |
| executable("zxdump-test-child") { |
| testonly = true |
| |
| sources = [ "test-child.cc" ] |
| deps = [ |
| "//sdk/lib/stdcompat", |
| "//zircon/system/ulib/fbl", |
| ] |
| if (is_fuchsia) { |
| deps += [ |
| "//sdk/lib/fdio", |
| "//src/zircon/lib/zircon", |
| "//zircon/system/ulib/zx", |
| ] |
| } |
| |
| if (is_host) { |
| base_out_dir = get_label_info(":$target_name(${toolchain_variant.base})", |
| "root_out_dir") |
| metadata = { |
| test_runtime_deps = [ "$base_out_dir/$target_name" ] |
| } |
| } |
| } |
| |
| fuchsia_unittest_package("zxdump-tests") { |
| deps = [ ":zxdump-unittests" ] |
| manifest = "meta/zxdump-unittests.cml" |
| } |
| |
| group("tests") { |
| testonly = true |
| |
| deps = [ |
| ":zxdump-tests", |
| ":zxdump-unittests($host_toolchain)", |
| |
| # TODO(mcgrathr): just to get them built for now |
| ":zxdump-tools", |
| ] |
| } |
| |
| executable("gcore") { |
| sources = [ "gcore.cc" ] |
| deps = [ |
| ":zxdump", |
| "//zircon/system/ulib/fbl", |
| "//zircon/system/ulib/task-utils", |
| ] |
| } |
| |
| group("tools") { |
| deps = [ ":gcore" ] |
| } |
| |
| fuchsia_shell_package("zxdump-tools") { |
| deps = [ ":tools" ] |
| } |