| # Copyright 2017 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/package.gni") |
| |
| # Set manually to true to compile the zxdb_test_app.cc file for manual debugger |
| # testing of various conditions. |
| include_test_app = false |
| |
| static_library("lib") { |
| sources = [ |
| "arch.cc", |
| "arch.h", |
| "breakpoint.cc", |
| "breakpoint.h", |
| "debug_agent.cc", |
| "debug_agent.h", |
| "debugged_job.cc", |
| "debugged_job.h", |
| "debugged_process.cc", |
| "debugged_process.h", |
| "debugged_thread.cc", |
| "debugged_thread.h", |
| "launcher.cc", |
| "launcher.h", |
| "object_util.cc", |
| "object_util.h", |
| "process_breakpoint.cc", |
| "process_breakpoint.h", |
| "process_info.cc", |
| "process_info.h", |
| "process_memory_accessor.h", |
| "remote_api.h", |
| "remote_api_adapter.cc", |
| "remote_api_adapter.h", |
| "system_info.cc", |
| "system_info.h", |
| "unwind.cc", |
| "unwind.h", |
| ] |
| |
| if (current_cpu == "x64") { |
| sources += [ |
| "arch_x64.cc", |
| "arch_x64.h", |
| "arch_x64_helpers.cc", |
| "arch_x64_helpers.h", |
| ] |
| } else if (current_cpu == "arm64") { |
| sources += [ |
| "arch_arm64.cc", |
| "arch_arm64.h", |
| ] |
| } else { |
| assert(false) |
| } |
| |
| public_deps = [ |
| "//garnet/lib/debug_ipc:agent", |
| "//garnet/lib/debug_ipc/helper", |
| "//garnet/lib/process", |
| "//garnet/public/lib/fxl", |
| "//garnet/public/lib/svc/cpp", |
| "//zircon/public/fidl/fuchsia-sysinfo:fuchsia-sysinfo_c", |
| "//zircon/public/lib/ngunwind", |
| ] |
| } |
| |
| if (include_test_app) { |
| executable("zxdb_test_app") { |
| if (is_debug) { |
| # Force no optimization in debug builds. |
| configs -= [ "//build/config:debug" ] |
| cflags = [ "-O0" ] |
| } |
| |
| sources = [ |
| "zxdb_test_app.cc", |
| ] |
| deps = [ |
| "//zircon/public/lib/zx", |
| ] |
| } |
| } |
| |
| executable("bin") { |
| output_name = "debug_agent" |
| sources = [ |
| "main.cc", |
| ] |
| |
| deps = [ |
| ":lib", |
| "//garnet/public/lib/component/cpp:environment_services", |
| ] |
| } |
| |
| package("debug_agent") { |
| deps = [ |
| ":bin", |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("meta/debug_agent.cmx") |
| dest = "debug_agent.cmx" |
| }, |
| ] |
| |
| binary = "debug_agent" |
| } |
| |
| executable("tests") { |
| testonly = true |
| output_name = "debug_agent_tests" |
| |
| sources = [ |
| "breakpoint_unittest.cc", |
| "debugged_job_unittest.cc", |
| "debugged_thread_unittest.cc", |
| "process_breakpoint_unittest.cc", |
| "process_info_unittests.cc", |
| "system_info_unittests.cc", |
| ] |
| |
| if (current_cpu == "x64") { |
| sources += [ "arch_x64_helpers_unittest.cc" ] |
| } |
| |
| deps = [ |
| ":lib", |
| "//garnet/bin/debug_agent/integration_tests", |
| "//garnet/lib/debug_ipc:tests", |
| "//garnet/public/lib/component/cpp:environment_services", |
| "//garnet/public/lib/fxl/test:gtest_main", |
| "//third_party/googletest:gmock", |
| "//third_party/googletest:gtest", |
| ] |
| } |
| |
| package("debug_agent_tests") { |
| testonly = true |
| |
| package_name = "debug_agent_tests" |
| |
| deps = [ |
| ":tests", |
| "//garnet/bin/debug_agent/test_data:debug_agent_so_test_exe", |
| "//garnet/bin/debug_agent/test_data:debug_agent_test_so", |
| "//garnet/bin/debug_agent/test_data:process_loop", |
| "//garnet/bin/debug_agent/test_data:process_spawner", |
| ] |
| |
| binaries = [{ |
| shell = true |
| name = "debug_agent_so_test" |
| }, { |
| name = "process_spawner" |
| }, { |
| name = "process_loop" |
| }] |
| |
| loadable_modules = [{ |
| name = "debug_agent_test_so.so" |
| }] |
| |
| tests = [{ |
| name = "debug_agent_tests" |
| }] |
| |
| meta = [{ |
| path = "meta/debug_agent_tests.cmx" |
| dest = "debug_agent_tests.cmx" |
| }] |
| |
| if (include_test_app) { |
| deps += [ ":zxdb_test_app" ] |
| tests += [ |
| { |
| name = "zxdb_test_app" |
| }, |
| ] |
| } |
| } |