blob: 32bef72f53b7ba611a434d0fe10b51e2a7894b2c [file] [log] [blame]
# 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.
{
'targets': [
{
'target_name': 'sandbox',
'type': '<(component)',
'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',
'xpc.cc',
'xpc.h',
'xpc_message_server.cc',
'xpc_message_server.h',
],
'dependencies': [
'../base/base.gyp:base',
],
'include_dirs': [
'..',
'<(SHARED_INTERMEDIATE_DIR)',
],
'defines': [
'SANDBOX_IMPLEMENTATION',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/usr/lib/libbsm.dylib',
],
},
'conditions': [
# 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.
['mac_sdk == "10.6"', {
'actions': [
{
'variables': {
'generate_stubs_script': '../tools/generate_stubs/generate_stubs.py',
'generate_stubs_header_path': 'xpc_stubs_header.fragment',
'generate_stubs_sig_public_path': 'xpc_stubs.sig',
'generate_stubs_sig_private_path': 'xpc_private_stubs.sig',
'generate_stubs_project': 'sandbox/mac',
'generate_stubs_output_stem': 'xpc_stubs',
},
'action_name': 'generate_stubs',
'inputs': [
'<(generate_stubs_script)',
'<(generate_stubs_header_path)',
'<(generate_stubs_sig_public_path)',
'<(generate_stubs_sig_private_path)',
],
'outputs': [
'<(INTERMEDIATE_DIR)/<(generate_stubs_output_stem).cc',
'<(SHARED_INTERMEDIATE_DIR)/<(generate_stubs_project)/<(generate_stubs_output_stem).h',
],
'action': [
'python',
'<(generate_stubs_script)',
'-i', '<(INTERMEDIATE_DIR)',
'-o', '<(SHARED_INTERMEDIATE_DIR)/<(generate_stubs_project)',
'-t', 'posix_stubs',
'-e', '<(generate_stubs_header_path)',
'-s', '<(generate_stubs_output_stem)',
'-p', '<(generate_stubs_project)',
'-x', 'SANDBOX_EXPORT',
'<(generate_stubs_sig_public_path)',
'<(generate_stubs_sig_private_path)',
],
'process_outputs_as_sources': 1,
'message': 'Generating XPC stubs for 10.6 compatability.',
},
],
}],
],
},
{
'target_name': 'sandbox_mac_unittests',
'type': 'executable',
'sources': [
'bootstrap_sandbox_unittest.mm',
'policy_unittest.cc',
'xpc_message_server_unittest.cc',
],
'dependencies': [
'sandbox',
'../base/base.gyp:base',
'../base/base.gyp:run_all_unittests',
'../testing/gtest.gyp:gtest',
],
'include_dirs': [
'..',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
'$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
],
},
},
],
'conditions': [
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'sandbox_mac_unittests_run',
'type': 'none',
'dependencies': [
'sandbox_mac_unittests',
],
'includes': [ '../../build/isolate.gypi' ],
'sources': [ '../sandbox_mac_unittests.isolate' ],
},
],
}],
],
}