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. 4 5{ 6 'targets': [ 7 { 8 'target_name': 'sandbox', 9 'type': '<(component)', 10 'sources': [ 11 'bootstrap_sandbox.cc', 12 'bootstrap_sandbox.h', 13 'launchd_interception_server.cc', 14 'launchd_interception_server.h', 15 'mach_message_server.cc', 16 'mach_message_server.h', 17 'message_server.h', 18 'os_compatibility.cc', 19 'os_compatibility.h', 20 'policy.cc', 21 'policy.h', 22 'pre_exec_delegate.cc', 23 'pre_exec_delegate.h', 24 'xpc.cc', 25 'xpc.h', 26 'xpc_message_server.cc', 27 'xpc_message_server.h', 28 ], 29 'dependencies': [ 30 '../base/base.gyp:base', 31 ], 32 'include_dirs': [ 33 '..', 34 '<(SHARED_INTERMEDIATE_DIR)', 35 ], 36 'defines': [ 37 'SANDBOX_IMPLEMENTATION', 38 ], 39 'link_settings': { 40 'libraries': [ 41 '$(SDKROOT)/usr/lib/libbsm.dylib', 42 ], 43 }, 44 'conditions': [ 45 # When the build SDK is 10.6, generate a dynamic stub loader. When the 46 # SDK is higher, then libxpc.dylib will be loaded automatically as part 47 # of libSystem, and only forward declarations of private symbols are 48 # necessary. 49 ['mac_sdk == "10.6"', { 50 'actions': [ 51 { 52 'variables': { 53 'generate_stubs_script': '../tools/generate_stubs/generate_stubs.py', 54 'generate_stubs_header_path': 'xpc_stubs_header.fragment', 55 'generate_stubs_sig_public_path': 'xpc_stubs.sig', 56 'generate_stubs_sig_private_path': 'xpc_private_stubs.sig', 57 'generate_stubs_project': 'sandbox/mac', 58 'generate_stubs_output_stem': 'xpc_stubs', 59 }, 60 'action_name': 'generate_stubs', 61 'inputs': [ 62 '<(generate_stubs_script)', 63 '<(generate_stubs_header_path)', 64 '<(generate_stubs_sig_public_path)', 65 '<(generate_stubs_sig_private_path)', 66 ], 67 'outputs': [ 68 '<(INTERMEDIATE_DIR)/<(generate_stubs_output_stem).cc', 69 '<(SHARED_INTERMEDIATE_DIR)/<(generate_stubs_project)/<(generate_stubs_output_stem).h', 70 ], 71 'action': [ 72 'python', 73 '<(generate_stubs_script)', 74 '-i', '<(INTERMEDIATE_DIR)', 75 '-o', '<(SHARED_INTERMEDIATE_DIR)/<(generate_stubs_project)', 76 '-t', 'posix_stubs', 77 '-e', '<(generate_stubs_header_path)', 78 '-s', '<(generate_stubs_output_stem)', 79 '-p', '<(generate_stubs_project)', 80 '-x', 'SANDBOX_EXPORT', 81 '<(generate_stubs_sig_public_path)', 82 '<(generate_stubs_sig_private_path)', 83 ], 84 'process_outputs_as_sources': 1, 85 'message': 'Generating XPC stubs for 10.6 compatability.', 86 }, 87 ], 88 }], 89 ], 90 }, 91 { 92 'target_name': 'sandbox_mac_unittests', 93 'type': 'executable', 94 'sources': [ 95 'bootstrap_sandbox_unittest.mm', 96 'policy_unittest.cc', 97 'xpc_message_server_unittest.cc', 98 ], 99 'dependencies': [ 100 'sandbox', 101 '../base/base.gyp:base', 102 '../base/base.gyp:run_all_unittests', 103 '../testing/gtest.gyp:gtest', 104 ], 105 'include_dirs': [ 106 '..', 107 ], 108 'link_settings': { 109 'libraries': [ 110 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 111 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 112 ], 113 }, 114 }, 115 ], 116 'conditions': [ 117 ['test_isolation_mode != "noop"', { 118 'targets': [ 119 { 120 'target_name': 'sandbox_mac_unittests_run', 121 'type': 'none', 122 'dependencies': [ 123 'sandbox_mac_unittests', 124 ], 125 'includes': [ '../../build/isolate.gypi' ], 126 'sources': [ '../sandbox_mac_unittests.isolate' ], 127 }, 128 ], 129 }], 130 ], 131} 132