1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//build/config/mac/mac_sdk.gni")
6 import("//testing/test.gni")
8 generate_stubs_script = "//tools/generate_stubs/generate_stubs.py"
9 generate_stubs_header = "xpc_stubs_header.fragment"
10 generate_stubs_sig_public = "xpc_stubs.sig"
11 generate_stubs_sig_private = "xpc_private_stubs.sig"
12 generate_stubs_project = "sandbox/mac"
13 generate_stubs_output_stem = "xpc_stubs"
15 action("generate_stubs") {
16 script = generate_stubs_script
18 generate_stubs_sig_private,
19 generate_stubs_sig_public,
22 generate_stubs_header,
25 "$target_gen_dir/$generate_stubs_output_stem.cc",
26 "$target_gen_dir/$generate_stubs_output_stem.h",
30 rebase_path(target_gen_dir, root_build_dir),
32 rebase_path(target_gen_dir, root_build_dir),
36 rebase_path(generate_stubs_header, root_build_dir),
38 generate_stubs_output_stem,
40 generate_stubs_project,
44 args += rebase_path(sources, root_build_dir)
47 component("sandbox") {
49 "bootstrap_sandbox.cc",
50 "bootstrap_sandbox.h",
51 "launchd_interception_server.cc",
52 "launchd_interception_server.h",
53 "mach_message_server.cc",
54 "mach_message_server.h",
56 "os_compatibility.cc",
60 "pre_exec_delegate.cc",
61 "pre_exec_delegate.h",
64 "xpc_message_server.cc",
65 "xpc_message_server.h",
68 defines = [ "SANDBOX_IMPLEMENTATION" ]
75 # When the build SDK is 10.6, generate a dynamic stub loader. When the
76 # SDK is higher, then libxpc.dylib will be loaded automatically as part
77 # of libSystem, and only forward declarations of private symbols are
79 if (mac_sdk_version == "10.6") {
80 deps += [ ":generate_stubs" ]
81 sources += get_target_outputs(":generate_stubs")
85 test("sandbox_mac_unittests") {
87 "bootstrap_sandbox_unittest.mm",
89 "xpc_message_server_unittest.cc",
93 "CoreFoundation.framework",
94 "Foundation.framework",
100 "//base/test:run_all_unittests",