| # Copyright 2025 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/toolchain/gcc_toolchain.gni") |
| |
| # This WASM toolchain is NOT to be used to build any Chromium code, |
| # i.e. tests and samples are currently fine. |
| # Usage of this toolchain requires getting explicit approval from |
| # build/OWNERS. |
| gcc_toolchain("wasm") { |
| emscripten_path = "//third_party/emsdk/upstream/emscripten/" |
| _suffix = "" |
| if (host_os == "win") { |
| _suffix = ".bat" |
| } |
| |
| cc = rebase_path("$emscripten_path/emcc$_suffix", root_build_dir) |
| cxx = rebase_path("$emscripten_path/em++$_suffix", root_build_dir) |
| ar = rebase_path("$emscripten_path/emar$_suffix", root_build_dir) |
| nm = cc |
| ld = cxx |
| |
| toolchain_args = { |
| current_cpu = "wasm" |
| current_os = "emscripten" |
| |
| is_clang = true |
| use_remoteexec = false |
| use_debug_fission = false |
| clang_use_chrome_plugins = false |
| use_allocator_shim = false |
| is_component_build = false |
| |
| # We do not support clang profiling in the WASM toolchains. |
| use_clang_profiling = false |
| use_clang_coverage = false |
| |
| # WASM builds cannot currently use the custom libc++ because |
| # there are custom entry points and defines in the one that is |
| # shipped with emsdk. |
| use_custom_libcxx = false |
| use_custom_libcxx_for_host = false |
| } |
| executable_extension = ".html" |
| link_outputs = [ |
| "{{output_dir}}/{{target_output_name}}.wasm", |
| "{{output_dir}}/{{target_output_name}}.wasm.debug.wasm", |
| ] |
| } |