| # Copyright 2014 The Chromium 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/config/mac/mac_sdk.gni") |
| import("//testing/test.gni") |
| |
| generate_stubs_script = "//tools/generate_stubs/generate_stubs.py" |
| generate_stubs_header = "xpc_stubs_header.fragment" |
| generate_stubs_sig_public = "xpc_stubs.sig" |
| generate_stubs_sig_private = "xpc_private_stubs.sig" |
| generate_stubs_project = "sandbox/mac" |
| generate_stubs_output_stem = "xpc_stubs" |
| |
| action("generate_stubs") { |
| script = generate_stubs_script |
| sources = [ |
| generate_stubs_sig_private, |
| generate_stubs_sig_public, |
| ] |
| inputs = [ |
| generate_stubs_header, |
| ] |
| outputs = [ |
| "$target_gen_dir/$generate_stubs_output_stem.cc", |
| "$target_gen_dir/$generate_stubs_output_stem.h", |
| ] |
| args = [ |
| "-i", |
| rebase_path(target_gen_dir, root_build_dir), |
| "-o", |
| rebase_path(target_gen_dir, root_build_dir), |
| "-t", |
| "posix_stubs", |
| "-e", |
| rebase_path(generate_stubs_header, root_build_dir), |
| "-s", |
| generate_stubs_output_stem, |
| "-p", |
| generate_stubs_project, |
| "-x", |
| "SANDBOX_EXPORT", |
| ] |
| args += rebase_path(sources, root_build_dir) |
| } |
| |
| component("sandbox") { |
| sources = [ |
| "bootstrap_sandbox.cc", |
| "bootstrap_sandbox.h", |
| "launchd_interception_server.cc", |
| "launchd_interception_server.h", |
| "mach_message_server.cc", |
| "mach_message_server.h", |
| "message_server.h", |
| "os_compatibility.cc", |
| "os_compatibility.h", |
| "policy.cc", |
| "policy.h", |
| "pre_exec_delegate.cc", |
| "pre_exec_delegate.h", |
| "xpc.cc", |
| "xpc.h", |
| "xpc_message_server.cc", |
| "xpc_message_server.h", |
| ] |
| |
| defines = [ "SANDBOX_IMPLEMENTATION" ] |
| libs = [ "bsm" ] |
| |
| deps = [ |
| "//base", |
| ] |
| |
| # When the build SDK is 10.6, generate a dynamic stub loader. When the |
| # SDK is higher, then libxpc.dylib will be loaded automatically as part |
| # of libSystem, and only forward declarations of private symbols are |
| # necessary. |
| if (mac_sdk_version == "10.6") { |
| deps += [ ":generate_stubs" ] |
| sources += get_target_outputs(":generate_stubs") |
| } |
| } |
| |
| test("sandbox_mac_unittests") { |
| sources = [ |
| "bootstrap_sandbox_unittest.mm", |
| "policy_unittest.cc", |
| "xpc_message_server_unittest.cc", |
| ] |
| |
| libs = [ |
| "CoreFoundation.framework", |
| "Foundation.framework", |
| ] |
| |
| deps = [ |
| ":sandbox", |
| "//base", |
| "//base/test:run_all_unittests", |
| "//testing/gtest", |
| ] |
| } |