# 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/WebKit/*", ] } # 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 } }