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