Home | History | Annotate | Download | only in mac
      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