diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni index 87aedbe739..d0922eac68 100644 --- a/build/toolchain/gcc_toolchain.gni +++ b/build/toolchain/gcc_toolchain.gni @@ -291,6 +291,10 @@ template("gcc_toolchain") { if (defined(invoker.is_clang)) { is_clang = invoker.is_clang } + + if (defined(invoker.extra_toolchain_args)) { + forward_variables_from(invoker.extra_toolchain_args, "*") + } } if (defined(invoker.deps)) { diff --git a/build/toolchain/wasm/BUILD.gn b/build/toolchain/wasm/BUILD.gn index e11b5687da..503c09d2de 100644 --- a/build/toolchain/wasm/BUILD.gn +++ b/build/toolchain/wasm/BUILD.gn @@ -17,7 +17,10 @@ if (use_goma) { compiler_prefix = "" } -gcc_toolchain("wasm") { +# This toolchain is specifically for building CanvasKit. +# +# It overrides many Skia args in order to facilitate building CanvasKit. +gcc_toolchain("wasm_for_canvaskit") { # emsdk_dir and em_config are defined in wasm.gni. ar = "$compiler_prefix$emsdk_dir/upstream/emscripten/emar --em-config $em_config_path" cc = "$compiler_prefix$emsdk_dir/upstream/emscripten/emcc --em-config $em_config_path" @@ -32,4 +35,47 @@ gcc_toolchain("wasm") { is_clang = true link_outputs = [ "{{root_out_dir}}/{{target_output_name}}.wasm" ] + + extra_toolchain_args = { + skia_use_vulkan = false + skia_use_webgpu = false + skia_use_libheif = false + skia_use_libjpeg_turbo_decode = true + skia_use_libjpeg_turbo_encode = false + skia_use_libpng_decode = true + skia_use_libpng_encode = true + skia_use_libwebp_decode = true + skia_use_libwebp_encode = false + skia_use_lua = false + skia_use_wuffs = true + skia_use_zlib = true + skia_gl_standard = "webgl" + skia_enable_gpu = true + skia_enable_sksl_tracing = false + skia_use_icu = true + skia_use_harfbuzz = true + skia_enable_fontmgr_custom_directory = false + skia_enable_fontmgr_custom_embedded = true + skia_enable_fontmgr_custom_empty = false + skia_enable_skshaper = true + skia_enable_skparagraph = true + skia_canvaskit_force_tracing = false + skia_canvaskit_enable_skp_serialization = true + skia_canvaskit_enable_effects_deserialization = false + skia_canvaskit_enable_skottie = false + skia_canvaskit_include_viewer = false + skia_canvaskit_enable_particles = false + skia_canvaskit_enable_pathops = true + skia_canvaskit_enable_rt_shader = true + skia_canvaskit_enable_matrix_helper = false + skia_canvaskit_enable_canvas_bindings = false + skia_canvaskit_enable_font = true + skia_canvaskit_enable_embedded_font = true + skia_canvaskit_enable_alias_font = true + skia_canvaskit_legacy_draw_vertices_blend_mode = false + skia_canvaskit_enable_debugger = false + skia_canvaskit_enable_paragraph = true + skia_canvaskit_enable_webgl = true + skia_canvaskit_enable_webgpu = false + } }