1# Copyright (c) 2012 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 'includes': [ 7 '../../build/common_untrusted.gypi', 8 ], 9 'conditions': [ 10 ['disable_nacl==0 and disable_nacl_untrusted==0', { 11 'targets': [ 12 { 13 'target_name': 'ppapi_lib', 14 'type': 'none', 15 'dependencies': [ 16 '../../native_client/src/untrusted/pthread/pthread.gyp:pthread_lib', 17 'src/untrusted/irt_stub/irt_stub.gyp:ppapi_stub_lib', 18 ], 19 'include_dirs': [ 20 '..', 21 ], 22 'copies': [ 23 { 24 'destination': '>(tc_include_dir_newlib)/nacl', 25 'files': [ 26 'src/trusted/weak_ref/call_on_main_thread.h', 27 'src/shared/ppapi_proxy/ppruntime.h', 28 ], 29 }, 30 31 { 32 'destination': '>(tc_lib_dir_pnacl_newlib)', 33 'files': [ 34 'src/untrusted/irt_stub/libppapi.a', 35 ], 36 }, 37 ], 38 'conditions': [ 39 ['target_arch=="ia32" or target_arch=="x64"', { 40 'copies': [ 41 { 42 'destination': '>(tc_include_dir_glibc)/include/nacl', 43 'files': [ 44 'src/trusted/weak_ref/call_on_main_thread.h', 45 'src/shared/ppapi_proxy/ppruntime.h', 46 ], 47 }, 48 ], 49 }], 50 ['target_arch=="ia32"', { 51 'copies': [ 52 # Here we copy linker scripts out of the Native Client repo.. 53 # These are source, not build artifacts. 54 { 55 'destination': '>(tc_lib_dir_newlib32)', 56 'files': [ 57 'src/untrusted/irt_stub/libppapi.a', 58 ], 59 }, 60 { 61 'destination': '>(tc_lib_dir_glibc32)', 62 'files': [ 63 'src/untrusted/irt_stub/libppapi.a', 64 'src/untrusted/irt_stub/libppapi.so', 65 ], 66 }, 67 ], 68 }], 69 ['target_arch=="x64" or (target_arch=="ia32" and OS=="win")', { 70 'copies': [ 71 { 72 'destination': '>(tc_lib_dir_newlib64)', 73 'files': [ 74 'src/untrusted/irt_stub/libppapi.a', 75 ], 76 }, 77 { 78 'destination': '>(tc_lib_dir_glibc64)', 79 'files': [ 80 'src/untrusted/irt_stub/libppapi.a', 81 'src/untrusted/irt_stub/libppapi.so', 82 ], 83 }, 84 ] 85 }], 86 ['target_arch=="arm"', { 87 'copies': [ 88 { 89 'destination': '>(tc_lib_dir_newlib_arm)', 90 'files': [ 91 'src/untrusted/irt_stub/libppapi.a', 92 ], 93 }, 94 ] 95 }], 96 ['target_arch=="mipsel"', { 97 'copies': [ 98 { 99 'destination': '>(tc_lib_dir_newlib_mips)', 100 'files': [ 101 'src/untrusted/irt_stub/libppapi.a', 102 ], 103 }, 104 ] 105 }] 106 ], 107 }, 108 { 109 'target_name': 'nacl_irt', 110 'type': 'none', 111 'variables': { 112 'nexe_target': 'nacl_irt', 113 # These out_* fields override the default filenames, which 114 # include a "_newlib" suffix and places them in the target 115 # directory. 116 'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', 117 'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 118 'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe', 119 'out_newlib_mips': '<(PRODUCT_DIR)/nacl_irt_mips32.nexe', 120 'build_glibc': 0, 121 'build_newlib': 0, 122 'build_irt': 1, 123 'include_dirs': [ 124 '..', 125 ], 126 'link_flags': [ 127 '-Wl,--start-group', 128 '-lirt_browser', 129 '-llatency_info_nacl', 130 '-lpnacl_irt_shim_for_irt', 131 '-lppapi_proxy_nacl', 132 '-lppapi_ipc_nacl', 133 '-lppapi_shared_nacl', 134 '-lgles2_implementation_nacl', 135 '-lgles2_cmd_helper_nacl', 136 '-lgles2_utils_nacl', 137 '-lcommand_buffer_client_nacl', 138 '-lcommand_buffer_common_nacl', 139 '-ltracing_nacl', 140 '-lgpu_ipc_nacl', 141 '-lipc_nacl', 142 '-lbase_nacl', 143 '-lshared_memory_support_nacl', 144 '-lsrpc', 145 '-limc_syscalls', 146 '-lplatform', 147 '-lgio', 148 '-Wl,--end-group', 149 '-lm', 150 ], 151 'extra_args': [ 152 '--strip-all', 153 ], 154 'conditions': [ 155 # untrusted.gypi and build_nexe.py currently build 156 # both x86-32 and x86-64 whenever target_arch is some 157 # flavor of x86. However, on non-windows platforms 158 # we only need one architecture. 159 ['OS!="win" and target_arch=="ia32"', 160 { 161 'enable_x86_64': 0 162 } 163 ], 164 ['target_arch=="x64"', 165 { 166 'enable_x86_32': 0 167 } 168 ], 169 ['target_arch=="ia32" or target_arch=="x64"', { 170 'extra_deps_newlib64': [ 171 '>(tc_lib_dir_irt64)/libppapi_proxy_nacl.a', 172 '>(tc_lib_dir_irt64)/libppapi_ipc_nacl.a', 173 '>(tc_lib_dir_irt64)/libppapi_shared_nacl.a', 174 '>(tc_lib_dir_irt64)/libgles2_implementation_nacl.a', 175 '>(tc_lib_dir_irt64)/libcommand_buffer_client_nacl.a', 176 '>(tc_lib_dir_irt64)/libcommand_buffer_common_nacl.a', 177 '>(tc_lib_dir_irt64)/libgpu_ipc_nacl.a', 178 '>(tc_lib_dir_irt64)/libtracing_nacl.a', 179 '>(tc_lib_dir_irt64)/libgles2_cmd_helper_nacl.a', 180 '>(tc_lib_dir_irt64)/libgles2_utils_nacl.a', 181 '>(tc_lib_dir_irt64)/libipc_nacl.a', 182 '>(tc_lib_dir_irt64)/libbase_nacl.a', 183 '>(tc_lib_dir_irt64)/libirt_browser.a', 184 '>(tc_lib_dir_irt64)/libpnacl_irt_shim_for_irt.a', 185 '>(tc_lib_dir_irt64)/libshared_memory_support_nacl.a', 186 '>(tc_lib_dir_irt64)/libsrpc.a', 187 '>(tc_lib_dir_irt64)/libplatform.a', 188 '>(tc_lib_dir_irt64)/libimc_syscalls.a', 189 '>(tc_lib_dir_irt64)/libgio.a', 190 ], 191 'extra_deps_newlib32': [ 192 '>(tc_lib_dir_irt32)/libppapi_proxy_nacl.a', 193 '>(tc_lib_dir_irt32)/libppapi_ipc_nacl.a', 194 '>(tc_lib_dir_irt32)/libppapi_shared_nacl.a', 195 '>(tc_lib_dir_irt32)/libgles2_implementation_nacl.a', 196 '>(tc_lib_dir_irt32)/libcommand_buffer_client_nacl.a', 197 '>(tc_lib_dir_irt32)/libcommand_buffer_common_nacl.a', 198 '>(tc_lib_dir_irt32)/libgpu_ipc_nacl.a', 199 '>(tc_lib_dir_irt32)/libtracing_nacl.a', 200 '>(tc_lib_dir_irt32)/libgles2_cmd_helper_nacl.a', 201 '>(tc_lib_dir_irt32)/libgles2_utils_nacl.a', 202 '>(tc_lib_dir_irt32)/libipc_nacl.a', 203 '>(tc_lib_dir_irt32)/libbase_nacl.a', 204 '>(tc_lib_dir_irt32)/libirt_browser.a', 205 '>(tc_lib_dir_irt32)/libpnacl_irt_shim_for_irt.a', 206 '>(tc_lib_dir_irt32)/libshared_memory_support_nacl.a', 207 '>(tc_lib_dir_irt32)/libsrpc.a', 208 '>(tc_lib_dir_irt32)/libplatform.a', 209 '>(tc_lib_dir_irt32)/libimc_syscalls.a', 210 '>(tc_lib_dir_irt32)/libgio.a', 211 ], 212 }], 213 ['target_arch=="arm"', { 214 'extra_deps_arm': [ 215 '>(tc_lib_dir_irt_arm)/libppapi_proxy_nacl.a', 216 '>(tc_lib_dir_irt_arm)/libppapi_ipc_nacl.a', 217 '>(tc_lib_dir_irt_arm)/libppapi_shared_nacl.a', 218 '>(tc_lib_dir_irt_arm)/libgles2_implementation_nacl.a', 219 '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_nacl.a', 220 '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_nacl.a', 221 '>(tc_lib_dir_irt_arm)/libgpu_ipc_nacl.a', 222 '>(tc_lib_dir_irt_arm)/libtracing_nacl.a', 223 '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_nacl.a', 224 '>(tc_lib_dir_irt_arm)/libgles2_utils_nacl.a', 225 '>(tc_lib_dir_irt_arm)/libipc_nacl.a', 226 '>(tc_lib_dir_irt_arm)/libbase_nacl.a', 227 '>(tc_lib_dir_irt_arm)/libirt_browser.a', 228 '>(tc_lib_dir_irt_arm)/libpnacl_irt_shim_for_irt.a', 229 '>(tc_lib_dir_irt_arm)/libshared_memory_support_nacl.a', 230 '>(tc_lib_dir_irt_arm)/libsrpc.a', 231 '>(tc_lib_dir_irt_arm)/libplatform.a', 232 '>(tc_lib_dir_irt_arm)/libimc_syscalls.a', 233 '>(tc_lib_dir_irt_arm)/libgio.a', 234 ], 235 }], 236 ['target_arch=="mipsel"', { 237 'extra_deps_mips': [ 238 '>(tc_lib_dir_irt_mips)/libppapi_proxy_nacl.a', 239 '>(tc_lib_dir_irt_mips)/libppapi_ipc_nacl.a', 240 '>(tc_lib_dir_irt_mips)/libppapi_shared_nacl.a', 241 '>(tc_lib_dir_irt_mips)/libgles2_implementation_nacl.a', 242 '>(tc_lib_dir_irt_mips)/libcommand_buffer_client_nacl.a', 243 '>(tc_lib_dir_irt_mips)/libcommand_buffer_common_nacl.a', 244 '>(tc_lib_dir_irt_mips)/libgpu_ipc_nacl.a', 245 '>(tc_lib_dir_irt_mips)/libtracing_nacl.a', 246 '>(tc_lib_dir_irt_mips)/libgles2_cmd_helper_nacl.a', 247 '>(tc_lib_dir_irt_mips)/libgles2_utils_nacl.a', 248 '>(tc_lib_dir_irt_mips)/libipc_nacl.a', 249 '>(tc_lib_dir_irt_mips)/libbase_nacl.a', 250 '>(tc_lib_dir_irt_mips)/libirt_browser.a', 251 '>(tc_lib_dir_irt_mips)/libpnacl_irt_shim_for_irt.a', 252 '>(tc_lib_dir_irt_mips)/libshared_memory_support_nacl.a', 253 '>(tc_lib_dir_irt_mips)/libsrpc.a', 254 '>(tc_lib_dir_irt_mips)/libplatform.a', 255 '>(tc_lib_dir_irt_mips)/libimc_syscalls.a', 256 '>(tc_lib_dir_irt_mips)/libgio.a', 257 ], 258 }], 259 ], 260 }, 261 'dependencies': [ 262 'src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:irt', 263 '../ppapi_proxy_nacl.gyp:ppapi_proxy_nacl', 264 '../ppapi_ipc_nacl.gyp:ppapi_ipc_nacl', 265 '../ppapi_shared_nacl.gyp:ppapi_shared_nacl', 266 '../../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl', 267 '../../gpu/gpu_nacl.gyp:command_buffer_client_nacl', 268 '../../gpu/gpu_nacl.gyp:command_buffer_common_nacl', 269 '../../gpu/gpu_nacl.gyp:gles2_implementation_nacl', 270 '../../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl', 271 '../../gpu/gpu_nacl.gyp:gpu_ipc_nacl', 272 '../../components/tracing_nacl.gyp:tracing_nacl', 273 '../../ipc/ipc_nacl.gyp:ipc_nacl', 274 '../../base/base_nacl.gyp:base_nacl', 275 '../../media/media_nacl.gyp:shared_memory_support_nacl', 276 '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib', 277 '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib', 278 '../../native_client/src/shared/platform/platform.gyp:platform_lib', 279 '../../native_client/src/tools/tls_edit/tls_edit.gyp:tls_edit#host', 280 '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib', 281 '../../native_client/src/shared/gio/gio.gyp:gio_lib', 282 ], 283 }, 284 ], 285 }], 286 ], 287} 288