| # Copyright 2015 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/features.gni") |
| import("//build/config/nacl/config.gni") |
| |
| if (is_nacl) { |
| group("ppapi_lib") { |
| deps = [ |
| "//ppapi/native_client/src/untrusted/irt_stub:ppapi_stub_lib", |
| ] |
| } |
| |
| executable("nacl_irt") { |
| deps = [ |
| "//base", |
| "//components/tracing", |
| "//gpu/command_buffer/client", |
| "//gpu/command_buffer/client:gles2_implementation", |
| "//gpu/command_buffer/common", |
| "//gpu/ipc/common:command_buffer_traits", |
| "//ipc", |
| "//media:shared_memory_support", |
| "//native_client/src/shared/gio", |
| "//native_client/src/shared/platform", |
| "//native_client/src/tools/tls_edit($host_toolchain)", |
| "//native_client/src/untrusted/irt:irt_core_lib", |
| "//native_client/src/untrusted/nacl:imc_syscalls", |
| "//ppapi/native_client/src/untrusted/pnacl_irt_shim:irt", |
| "//ppapi/proxy", |
| "//ppapi/proxy:ipc", |
| "//ppapi/shared_impl", |
| ] |
| |
| assert_no_deps = [ |
| # Skia is one of the easiest dependencies to accidentally add since a |
| # bunch of graphics and GPU code uses it. |
| "//skia/*", |
| "//third_party/blink/*", |
| ] |
| } |
| |
| # TODO(phosek): We can remove this ugliness if we change the |
| # IRT file name in components/nacl/browser/nacl_browser.cc |
| if (current_cpu == "x86") { |
| irt_cpu = "x86_32" |
| } else if (current_cpu == "x64") { |
| irt_cpu = "x86_64" |
| } else if (current_cpu == "mipsel") { |
| irt_cpu = "mips32" |
| } else { |
| irt_cpu = current_cpu |
| } |
| irt_name = "nacl_irt_" + irt_cpu + ".nexe" |
| |
| copy("nacl_irt_debug") { |
| sources = [ |
| "${root_out_dir}/exe.unstripped/nacl_irt.nexe", |
| ] |
| outputs = [ |
| "${root_build_dir}/${irt_name}.debug", |
| ] |
| deps = [ |
| ":nacl_irt", |
| ] |
| } |
| |
| action("nacl_irt_debuglink") { |
| deps = [ |
| ":nacl_irt", |
| ":nacl_irt_debug", |
| ] |
| |
| objcopy = "${nacl_toolprefix}objcopy" |
| if (host_os == "win") { |
| objcopy += ".exe" |
| } |
| |
| irt_stripped = "${root_out_dir}/nacl_irt.nexe" |
| irt_debug = get_target_outputs(":nacl_irt_debug") |
| irt_debug = irt_debug[0] |
| irt_final = "${root_build_dir}/${irt_name}" |
| |
| inputs = [ |
| objcopy, |
| ] |
| sources = [ |
| irt_debug, |
| irt_stripped, |
| ] |
| outputs = [ |
| irt_final, |
| ] |
| |
| script = "irt_debuglink.py" |
| args = [ |
| rebase_path(objcopy, root_build_dir), |
| rebase_path(irt_debug, root_build_dir), |
| rebase_path(irt_stripped, root_build_dir), |
| rebase_path(irt_final, root_build_dir), |
| ] |
| } |
| } |
| |
| group("irt") { |
| # The nacl_irt needs to be marked as data dependency so that it's |
| # properly resolved as runtime dependency. However, some target |
| # use nacl_irt as input for actions which require it to be marked |
| # as public dependency as well. |
| irt_deps = [ |
| ":nacl_irt_debug(//build/toolchain/nacl:irt_${target_cpu})", |
| ":nacl_irt_debuglink(//build/toolchain/nacl:irt_${target_cpu})", |
| ] |
| public_deps = irt_deps |
| data_deps = irt_deps |
| |
| # On 32-bit Windows, we also ship the 64-bit IRT. |
| if (is_win && target_cpu == "x86") { |
| irt_x64_deps = [ |
| ":nacl_irt_debug(//build/toolchain/nacl:irt_x64)", |
| ":nacl_irt_debuglink(//build/toolchain/nacl:irt_x64)", |
| ] |
| public_deps += irt_x64_deps |
| data_deps += irt_x64_deps |
| } |
| } |