# Copyright 2018 The Dawn Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build_overrides/build.gni")
import("//build_overrides/vulkan_validation_layers.gni")
import("generator/dawn_generator.gni")
import("scripts/dawn_component.gni")
import("scripts/dawn_features.gni")
import("scripts/dawn_overrides_with_defaults.gni")

import("//testing/test.gni")

###############################################################################
# dawn_platform
###############################################################################

source_set("dawn_platform") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]

  sources = [
    "${dawn_root}/src/include/dawn_platform/DawnPlatform.h",
    "src/dawn_platform/tracing/EventTracer.cpp",
    "src/dawn_platform/tracing/EventTracer.h",
    "src/dawn_platform/tracing/TraceEvent.h",
  ]

  deps = [
    "${dawn_root}/src/common",
  ]
}

###############################################################################
# libdawn_native
###############################################################################

config("libdawn_native_internal") {
  configs = [ "${dawn_root}/src/common:dawn_internal" ]

  # Suppress warnings that Metal isn't in the deployment target of Chrome:
  # initialization of the Metal backend is behind a IsMetalSupported check so
  # Dawn won't call Metal functions on macOS 10.10.
  # TODO(cwallez@chromium.org): Consider using API_AVAILABLE annotations on all
  # metal code in dawn once crbug.com/1004024 is sorted out.
  if (is_mac) {
    cflags_objcc = [ "-Wno-unguarded-availability" ]
  }
}

config("libdawn_native_weak_framework") {
  if (is_mac && dawn_enable_metal) {
    ldflags = [
      "-weak_framework",
      "Metal",
    ]
  }
}

dawn_json_generator("libdawn_native_utils_gen") {
  target = "dawn_native_utils"
  outputs = [
    "src/dawn_native/ProcTable.cpp",
    "src/dawn_native/wgpu_structs_autogen.h",
    "src/dawn_native/wgpu_structs_autogen.cpp",
    "src/dawn_native/ValidationUtils_autogen.h",
    "src/dawn_native/ValidationUtils_autogen.cpp",
  ]
}

if (dawn_enable_opengl) {
  dawn_generator("libdawn_native_opengl_loader_gen") {
    script = "generator/opengl_loader_generator.py"
    args = [
      "--gl-xml",
      rebase_path("third_party/khronos/gl.xml", root_build_dir),
      "--supported-extensions",
      rebase_path("src/dawn_native/opengl/supported_extensions.json",
                  root_build_dir),
    ]
    outputs = [
      "src/dawn_native/opengl/OpenGLFunctionsBase_autogen.cpp",
      "src/dawn_native/opengl/OpenGLFunctionsBase_autogen.h",
      "src/dawn_native/opengl/opengl_platform_autogen.h",
    ]
  }
}

# Public libdawn_native headers so they can be publically visible for
# dependencies of libdawn_native
source_set("libdawn_native_headers") {
  public_deps = [
    "${dawn_root}/src/dawn:dawncpp_headers",
  ]
  all_dependent_configs = [ "${dawn_root}/src/common:dawn_public_include_dirs" ]
  sources = [
    "src/include/dawn_native/DawnNative.h",
    "src/include/dawn_native/dawn_native_export.h",

    # Include all backend's public headers so that dependencies can include
    # them even when the backends are disabled.
    "src/include/dawn_native/D3D12Backend.h",
    "src/include/dawn_native/MetalBackend.h",
    "src/include/dawn_native/NullBackend.h",
    "src/include/dawn_native/OpenGLBackend.h",
    "src/include/dawn_native/VulkanBackend.h",
  ]
}

# The meat of the compilation for libdawn_native so that we can cheaply have
# shared_library / static_library versions of it. It compiles all the files
# except those that define exported symbols.
source_set("libdawn_native_sources") {
  deps = [
    ":libdawn_native_headers",
    ":libdawn_native_utils_gen",
    "${dawn_root}/src/common",
    "${dawn_spirv_tools_dir}:spvtools_val",
    "third_party:spirv_cross",
  ]
  defines = []
  if (dawn_use_spvc) {
    deps += [ "${dawn_shaderc_dir}:libshaderc_spvc" ]
    defines += [ "DAWN_USE_SPVC" ]
  }

  configs += [ ":libdawn_native_internal" ]
  libs = []

  # Dependencies that are needed to compile libdawn_native entry points in
  # FooBackend.cpp need to be public deps so they are propagated to the
  # libdawn_native target
  public_deps = [
    ":dawn_platform",
  ]

  sources = get_target_outputs(":libdawn_native_utils_gen")
  sources += [
    "src/dawn_native/Adapter.cpp",
    "src/dawn_native/Adapter.h",
    "src/dawn_native/AttachmentState.cpp",
    "src/dawn_native/AttachmentState.h",
    "src/dawn_native/BackendConnection.cpp",
    "src/dawn_native/BackendConnection.h",
    "src/dawn_native/BindGroup.cpp",
    "src/dawn_native/BindGroup.h",
    "src/dawn_native/BindGroupLayout.cpp",
    "src/dawn_native/BindGroupLayout.h",
    "src/dawn_native/BindGroupTracker.h",
    "src/dawn_native/BuddyAllocator.cpp",
    "src/dawn_native/BuddyAllocator.h",
    "src/dawn_native/BuddyMemoryAllocator.cpp",
    "src/dawn_native/BuddyMemoryAllocator.h",
    "src/dawn_native/Buffer.cpp",
    "src/dawn_native/Buffer.h",
    "src/dawn_native/CachedObject.cpp",
    "src/dawn_native/CachedObject.h",
    "src/dawn_native/CommandAllocator.cpp",
    "src/dawn_native/CommandAllocator.h",
    "src/dawn_native/CommandBuffer.cpp",
    "src/dawn_native/CommandBuffer.h",
    "src/dawn_native/CommandBufferStateTracker.cpp",
    "src/dawn_native/CommandBufferStateTracker.h",
    "src/dawn_native/CommandEncoder.cpp",
    "src/dawn_native/CommandEncoder.h",
    "src/dawn_native/CommandValidation.cpp",
    "src/dawn_native/CommandValidation.h",
    "src/dawn_native/Commands.cpp",
    "src/dawn_native/Commands.h",
    "src/dawn_native/ComputePassEncoder.cpp",
    "src/dawn_native/ComputePassEncoder.h",
    "src/dawn_native/ComputePipeline.cpp",
    "src/dawn_native/ComputePipeline.h",
    "src/dawn_native/Device.cpp",
    "src/dawn_native/Device.h",
    "src/dawn_native/DynamicUploader.cpp",
    "src/dawn_native/DynamicUploader.h",
    "src/dawn_native/EncodingContext.cpp",
    "src/dawn_native/EncodingContext.h",
    "src/dawn_native/Error.cpp",
    "src/dawn_native/Error.h",
    "src/dawn_native/ErrorData.cpp",
    "src/dawn_native/ErrorData.h",
    "src/dawn_native/ErrorScope.cpp",
    "src/dawn_native/ErrorScope.h",
    "src/dawn_native/ErrorScopeTracker.cpp",
    "src/dawn_native/ErrorScopeTracker.h",
    "src/dawn_native/Extensions.cpp",
    "src/dawn_native/Extensions.h",
    "src/dawn_native/Fence.cpp",
    "src/dawn_native/Fence.h",
    "src/dawn_native/FenceSignalTracker.cpp",
    "src/dawn_native/FenceSignalTracker.h",
    "src/dawn_native/Format.cpp",
    "src/dawn_native/Format.h",
    "src/dawn_native/Forward.h",
    "src/dawn_native/Instance.cpp",
    "src/dawn_native/Instance.h",
    "src/dawn_native/ObjectBase.cpp",
    "src/dawn_native/ObjectBase.h",
    "src/dawn_native/PassResourceUsage.h",
    "src/dawn_native/PassResourceUsageTracker.cpp",
    "src/dawn_native/PassResourceUsageTracker.h",
    "src/dawn_native/PerStage.cpp",
    "src/dawn_native/PerStage.h",
    "src/dawn_native/Pipeline.cpp",
    "src/dawn_native/Pipeline.h",
    "src/dawn_native/PipelineLayout.cpp",
    "src/dawn_native/PipelineLayout.h",
    "src/dawn_native/ProgrammablePassEncoder.cpp",
    "src/dawn_native/ProgrammablePassEncoder.h",
    "src/dawn_native/Queue.cpp",
    "src/dawn_native/Queue.h",
    "src/dawn_native/RefCounted.cpp",
    "src/dawn_native/RefCounted.h",
    "src/dawn_native/RenderBundle.cpp",
    "src/dawn_native/RenderBundle.h",
    "src/dawn_native/RenderBundleEncoder.cpp",
    "src/dawn_native/RenderBundleEncoder.h",
    "src/dawn_native/RenderEncoderBase.cpp",
    "src/dawn_native/RenderEncoderBase.h",
    "src/dawn_native/RenderPassEncoder.cpp",
    "src/dawn_native/RenderPassEncoder.h",
    "src/dawn_native/RenderPipeline.cpp",
    "src/dawn_native/RenderPipeline.h",
    "src/dawn_native/ResourceHeap.h",
    "src/dawn_native/ResourceHeapAllocator.h",
    "src/dawn_native/ResourceMemoryAllocation.cpp",
    "src/dawn_native/ResourceMemoryAllocation.h",
    "src/dawn_native/RingBufferAllocator.cpp",
    "src/dawn_native/RingBufferAllocator.h",
    "src/dawn_native/Sampler.cpp",
    "src/dawn_native/Sampler.h",
    "src/dawn_native/ShaderModule.cpp",
    "src/dawn_native/ShaderModule.h",
    "src/dawn_native/StagingBuffer.cpp",
    "src/dawn_native/StagingBuffer.h",
    "src/dawn_native/SwapChain.cpp",
    "src/dawn_native/SwapChain.h",
    "src/dawn_native/Texture.cpp",
    "src/dawn_native/Texture.h",
    "src/dawn_native/ToBackend.h",
    "src/dawn_native/Toggles.cpp",
    "src/dawn_native/Toggles.h",
    "src/dawn_native/dawn_platform.h",
  ]

  if (dawn_enable_d3d12) {
    libs += [ "dxguid.lib" ]
    sources += [
      "src/dawn_native/d3d12/AdapterD3D12.cpp",
      "src/dawn_native/d3d12/AdapterD3D12.h",
      "src/dawn_native/d3d12/BackendD3D12.cpp",
      "src/dawn_native/d3d12/BackendD3D12.h",
      "src/dawn_native/d3d12/BindGroupD3D12.cpp",
      "src/dawn_native/d3d12/BindGroupD3D12.h",
      "src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp",
      "src/dawn_native/d3d12/BindGroupLayoutD3D12.h",
      "src/dawn_native/d3d12/BufferD3D12.cpp",
      "src/dawn_native/d3d12/BufferD3D12.h",
      "src/dawn_native/d3d12/CommandAllocatorManager.cpp",
      "src/dawn_native/d3d12/CommandAllocatorManager.h",
      "src/dawn_native/d3d12/CommandBufferD3D12.cpp",
      "src/dawn_native/d3d12/CommandBufferD3D12.h",
      "src/dawn_native/d3d12/CommandRecordingContext.cpp",
      "src/dawn_native/d3d12/CommandRecordingContext.h",
      "src/dawn_native/d3d12/ComputePipelineD3D12.cpp",
      "src/dawn_native/d3d12/ComputePipelineD3D12.h",
      "src/dawn_native/d3d12/D3D12Error.cpp",
      "src/dawn_native/d3d12/D3D12Error.h",
      "src/dawn_native/d3d12/D3D12Info.cpp",
      "src/dawn_native/d3d12/D3D12Info.h",
      "src/dawn_native/d3d12/DescriptorHeapAllocator.cpp",
      "src/dawn_native/d3d12/DescriptorHeapAllocator.h",
      "src/dawn_native/d3d12/DeviceD3D12.cpp",
      "src/dawn_native/d3d12/DeviceD3D12.h",
      "src/dawn_native/d3d12/Forward.h",
      "src/dawn_native/d3d12/HeapAllocatorD3D12.cpp",
      "src/dawn_native/d3d12/HeapAllocatorD3D12.h",
      "src/dawn_native/d3d12/HeapD3D12.cpp",
      "src/dawn_native/d3d12/HeapD3D12.h",
      "src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp",
      "src/dawn_native/d3d12/NativeSwapChainImplD3D12.h",
      "src/dawn_native/d3d12/PipelineLayoutD3D12.cpp",
      "src/dawn_native/d3d12/PipelineLayoutD3D12.h",
      "src/dawn_native/d3d12/PlatformFunctions.cpp",
      "src/dawn_native/d3d12/PlatformFunctions.h",
      "src/dawn_native/d3d12/QueueD3D12.cpp",
      "src/dawn_native/d3d12/QueueD3D12.h",
      "src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp",
      "src/dawn_native/d3d12/RenderPassBuilderD3D12.h",
      "src/dawn_native/d3d12/RenderPipelineD3D12.cpp",
      "src/dawn_native/d3d12/RenderPipelineD3D12.h",
      "src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp",
      "src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h",
      "src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp",
      "src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h",
      "src/dawn_native/d3d12/SamplerD3D12.cpp",
      "src/dawn_native/d3d12/SamplerD3D12.h",
      "src/dawn_native/d3d12/ShaderModuleD3D12.cpp",
      "src/dawn_native/d3d12/ShaderModuleD3D12.h",
      "src/dawn_native/d3d12/StagingBufferD3D12.cpp",
      "src/dawn_native/d3d12/StagingBufferD3D12.h",
      "src/dawn_native/d3d12/SwapChainD3D12.cpp",
      "src/dawn_native/d3d12/SwapChainD3D12.h",
      "src/dawn_native/d3d12/TextureCopySplitter.cpp",
      "src/dawn_native/d3d12/TextureCopySplitter.h",
      "src/dawn_native/d3d12/TextureD3D12.cpp",
      "src/dawn_native/d3d12/TextureD3D12.h",
      "src/dawn_native/d3d12/UtilsD3D12.cpp",
      "src/dawn_native/d3d12/UtilsD3D12.h",
      "src/dawn_native/d3d12/d3d12_platform.h",
    ]
  }

  if (dawn_enable_metal) {
    libs += [
      "Cocoa.framework",
      "IOKit.framework",
      "IOSurface.framework",
    ]
    sources += [
      "src/dawn_native/metal/BackendMTL.h",
      "src/dawn_native/metal/BackendMTL.mm",
      "src/dawn_native/metal/BufferMTL.h",
      "src/dawn_native/metal/BufferMTL.mm",
      "src/dawn_native/metal/CommandBufferMTL.h",
      "src/dawn_native/metal/CommandBufferMTL.mm",
      "src/dawn_native/metal/ComputePipelineMTL.h",
      "src/dawn_native/metal/ComputePipelineMTL.mm",
      "src/dawn_native/metal/DeviceMTL.h",
      "src/dawn_native/metal/DeviceMTL.mm",
      "src/dawn_native/metal/Forward.h",
      "src/dawn_native/metal/PipelineLayoutMTL.h",
      "src/dawn_native/metal/PipelineLayoutMTL.mm",
      "src/dawn_native/metal/QueueMTL.h",
      "src/dawn_native/metal/QueueMTL.mm",
      "src/dawn_native/metal/RenderPipelineMTL.h",
      "src/dawn_native/metal/RenderPipelineMTL.mm",
      "src/dawn_native/metal/SamplerMTL.h",
      "src/dawn_native/metal/SamplerMTL.mm",
      "src/dawn_native/metal/ShaderModuleMTL.h",
      "src/dawn_native/metal/ShaderModuleMTL.mm",
      "src/dawn_native/metal/StagingBufferMTL.h",
      "src/dawn_native/metal/StagingBufferMTL.mm",
      "src/dawn_native/metal/SwapChainMTL.h",
      "src/dawn_native/metal/SwapChainMTL.mm",
      "src/dawn_native/metal/TextureMTL.h",
      "src/dawn_native/metal/TextureMTL.mm",
      "src/dawn_native/metal/UtilsMetal.h",
      "src/dawn_native/metal/UtilsMetal.mm",
    ]
  }

  if (dawn_enable_null) {
    sources += [
      "src/dawn_native/null/DeviceNull.cpp",
      "src/dawn_native/null/DeviceNull.h",
    ]
  }

  if (dawn_enable_opengl) {
    public_deps += [
      ":libdawn_native_opengl_loader_gen",
      "third_party:khronos_platform",
    ]
    sources += get_target_outputs(":libdawn_native_opengl_loader_gen")
    sources += [
      "src/dawn_native/opengl/BackendGL.cpp",
      "src/dawn_native/opengl/BackendGL.h",
      "src/dawn_native/opengl/BufferGL.cpp",
      "src/dawn_native/opengl/BufferGL.h",
      "src/dawn_native/opengl/CommandBufferGL.cpp",
      "src/dawn_native/opengl/CommandBufferGL.h",
      "src/dawn_native/opengl/ComputePipelineGL.cpp",
      "src/dawn_native/opengl/ComputePipelineGL.h",
      "src/dawn_native/opengl/DeviceGL.cpp",
      "src/dawn_native/opengl/DeviceGL.h",
      "src/dawn_native/opengl/Forward.h",
      "src/dawn_native/opengl/GLFormat.cpp",
      "src/dawn_native/opengl/GLFormat.h",
      "src/dawn_native/opengl/NativeSwapChainImplGL.cpp",
      "src/dawn_native/opengl/NativeSwapChainImplGL.h",
      "src/dawn_native/opengl/OpenGLFunctions.cpp",
      "src/dawn_native/opengl/OpenGLFunctions.h",
      "src/dawn_native/opengl/PersistentPipelineStateGL.cpp",
      "src/dawn_native/opengl/PersistentPipelineStateGL.h",
      "src/dawn_native/opengl/PipelineGL.cpp",
      "src/dawn_native/opengl/PipelineGL.h",
      "src/dawn_native/opengl/PipelineLayoutGL.cpp",
      "src/dawn_native/opengl/PipelineLayoutGL.h",
      "src/dawn_native/opengl/QueueGL.cpp",
      "src/dawn_native/opengl/QueueGL.h",
      "src/dawn_native/opengl/RenderPipelineGL.cpp",
      "src/dawn_native/opengl/RenderPipelineGL.h",
      "src/dawn_native/opengl/SamplerGL.cpp",
      "src/dawn_native/opengl/SamplerGL.h",
      "src/dawn_native/opengl/ShaderModuleGL.cpp",
      "src/dawn_native/opengl/ShaderModuleGL.h",
      "src/dawn_native/opengl/SwapChainGL.cpp",
      "src/dawn_native/opengl/SwapChainGL.h",
      "src/dawn_native/opengl/TextureGL.cpp",
      "src/dawn_native/opengl/TextureGL.h",
      "src/dawn_native/opengl/UtilsGL.cpp",
      "src/dawn_native/opengl/UtilsGL.h",
      "src/dawn_native/opengl/opengl_platform.h",
    ]
  }

  if (dawn_enable_vulkan) {
    public_deps += [ "third_party:vulkan_headers" ]
    sources += [
      "src/dawn_native/vulkan/AdapterVk.cpp",
      "src/dawn_native/vulkan/AdapterVk.h",
      "src/dawn_native/vulkan/BackendVk.cpp",
      "src/dawn_native/vulkan/BackendVk.h",
      "src/dawn_native/vulkan/BindGroupLayoutVk.cpp",
      "src/dawn_native/vulkan/BindGroupLayoutVk.h",
      "src/dawn_native/vulkan/BindGroupVk.cpp",
      "src/dawn_native/vulkan/BindGroupVk.h",
      "src/dawn_native/vulkan/BufferVk.cpp",
      "src/dawn_native/vulkan/BufferVk.h",
      "src/dawn_native/vulkan/CommandBufferVk.cpp",
      "src/dawn_native/vulkan/CommandBufferVk.h",
      "src/dawn_native/vulkan/CommandRecordingContext.h",
      "src/dawn_native/vulkan/ComputePipelineVk.cpp",
      "src/dawn_native/vulkan/ComputePipelineVk.h",
      "src/dawn_native/vulkan/DescriptorSetService.cpp",
      "src/dawn_native/vulkan/DescriptorSetService.h",
      "src/dawn_native/vulkan/DeviceVk.cpp",
      "src/dawn_native/vulkan/DeviceVk.h",
      "src/dawn_native/vulkan/ExternalHandle.h",
      "src/dawn_native/vulkan/FencedDeleter.cpp",
      "src/dawn_native/vulkan/FencedDeleter.h",
      "src/dawn_native/vulkan/Forward.h",
      "src/dawn_native/vulkan/NativeSwapChainImplVk.cpp",
      "src/dawn_native/vulkan/NativeSwapChainImplVk.h",
      "src/dawn_native/vulkan/PipelineLayoutVk.cpp",
      "src/dawn_native/vulkan/PipelineLayoutVk.h",
      "src/dawn_native/vulkan/QueueVk.cpp",
      "src/dawn_native/vulkan/QueueVk.h",
      "src/dawn_native/vulkan/RenderPassCache.cpp",
      "src/dawn_native/vulkan/RenderPassCache.h",
      "src/dawn_native/vulkan/RenderPipelineVk.cpp",
      "src/dawn_native/vulkan/RenderPipelineVk.h",
      "src/dawn_native/vulkan/ResourceHeapVk.cpp",
      "src/dawn_native/vulkan/ResourceHeapVk.h",
      "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp",
      "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.h",
      "src/dawn_native/vulkan/SamplerVk.cpp",
      "src/dawn_native/vulkan/SamplerVk.h",
      "src/dawn_native/vulkan/ShaderModuleVk.cpp",
      "src/dawn_native/vulkan/ShaderModuleVk.h",
      "src/dawn_native/vulkan/StagingBufferVk.cpp",
      "src/dawn_native/vulkan/StagingBufferVk.h",
      "src/dawn_native/vulkan/SwapChainVk.cpp",
      "src/dawn_native/vulkan/SwapChainVk.h",
      "src/dawn_native/vulkan/TextureVk.cpp",
      "src/dawn_native/vulkan/TextureVk.h",
      "src/dawn_native/vulkan/UtilsVulkan.cpp",
      "src/dawn_native/vulkan/UtilsVulkan.h",
      "src/dawn_native/vulkan/VulkanError.cpp",
      "src/dawn_native/vulkan/VulkanError.h",
      "src/dawn_native/vulkan/VulkanFunctions.cpp",
      "src/dawn_native/vulkan/VulkanFunctions.h",
      "src/dawn_native/vulkan/VulkanInfo.cpp",
      "src/dawn_native/vulkan/VulkanInfo.h",
      "src/dawn_native/vulkan/external_memory/MemoryService.h",
      "src/dawn_native/vulkan/external_semaphore/SemaphoreService.h",
    ]

    if (is_chromeos) {
      sources += [
        "src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp",
        "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
      ]
    } else if (is_linux) {
      sources += [
        "src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp",
        "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
      ]
    } else if (is_fuchsia) {
      sources += [
        "src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp",
        "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp",
      ]
    } else {
      sources += [
        "src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp",
        "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp",
      ]
    }
    if (build_with_chromium && is_fuchsia) {
      # Necessary to ensure that the Vulkan libraries will be in the
      # final Fuchsia package.
      data_deps = [
        # NOTE: The line below is a work around for http://crbug.com/1001081
        "//third_party/fuchsia-sdk/sdk:trace_engine",
        "//third_party/fuchsia-sdk:vulkan_base",
        "//third_party/fuchsia-sdk:vulkan_validation",
      ]
    }
    if (dawn_enable_vulkan_validation_layers) {
      defines += [
        "DAWN_ENABLE_VULKAN_VALIDATION_LAYERS",
        "DAWN_VK_DATA_DIR=\"$vulkan_data_subdir\"",
      ]
    }
  }
}

# The static and shared libraries for libdawn_native. Most of the files are
# already compiled in libdawn_native_sources, but we still need to compile
# files defining exported symbols.
dawn_component("libdawn_native") {
  DEFINE_PREFIX = "DAWN_NATIVE"

  #Make headers publically visible
  public_deps = [
    ":libdawn_native_headers",
  ]

  deps = [
    ":libdawn_native_sources",
    "${dawn_root}/src/common",
  ]
  sources = [
    "src/dawn_native/DawnNative.cpp",
  ]
  configs = [ ":libdawn_native_internal" ]
  public_configs = [ ":libdawn_native_weak_framework" ]

  if (dawn_enable_d3d12) {
    sources += [ "src/dawn_native/d3d12/D3D12Backend.cpp" ]
  }
  if (dawn_enable_metal) {
    sources += [ "src/dawn_native/metal/MetalBackend.mm" ]
  }
  if (dawn_enable_null) {
    sources += [ "src/dawn_native/null/NullBackend.cpp" ]
  }
  if (dawn_enable_opengl) {
    sources += [ "src/dawn_native/opengl/OpenGLBackend.cpp" ]
  }
  if (dawn_enable_vulkan) {
    sources += [ "src/dawn_native/vulkan/VulkanBackend.cpp" ]

    if (dawn_enable_vulkan_validation_layers) {
      data_deps = [
        "${dawn_vulkan_validation_layers_dir}:vulkan_validation_layers",
      ]
      if (!is_android) {
        data_deps +=
            [ "${dawn_vulkan_validation_layers_dir}:vulkan_gen_json_files" ]
      }
    }
  }
}

###############################################################################
# libdawn_wire
###############################################################################

dawn_json_generator("libdawn_wire_gen") {
  target = "dawn_wire"
  outputs = [
    "src/dawn_wire/WireCmd_autogen.h",
    "src/dawn_wire/WireCmd_autogen.cpp",
    "src/dawn_wire/client/ApiObjects_autogen.h",
    "src/dawn_wire/client/ApiProcs_autogen.cpp",
    "src/dawn_wire/client/ApiProcs_autogen.h",
    "src/dawn_wire/client/ClientBase_autogen.h",
    "src/dawn_wire/client/ClientHandlers_autogen.cpp",
    "src/dawn_wire/client/ClientPrototypes_autogen.inc",
    "src/dawn_wire/server/ServerBase_autogen.h",
    "src/dawn_wire/server/ServerDoers_autogen.cpp",
    "src/dawn_wire/server/ServerHandlers_autogen.cpp",
    "src/dawn_wire/server/ServerPrototypes_autogen.inc",
  ]
}

dawn_component("libdawn_wire") {
  DEFINE_PREFIX = "DAWN_WIRE"

  deps = [
    ":libdawn_wire_gen",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn_wire:libdawn_wire_headers",
  ]

  configs = [ "${dawn_root}/src/common:dawn_internal" ]
  sources = get_target_outputs(":libdawn_wire_gen")
  sources += [
    "src/dawn_wire/WireClient.cpp",
    "src/dawn_wire/WireDeserializeAllocator.cpp",
    "src/dawn_wire/WireDeserializeAllocator.h",
    "src/dawn_wire/WireServer.cpp",
    "src/dawn_wire/client/ApiObjects.h",
    "src/dawn_wire/client/ApiProcs.cpp",
    "src/dawn_wire/client/Buffer.cpp",
    "src/dawn_wire/client/Buffer.h",
    "src/dawn_wire/client/Client.cpp",
    "src/dawn_wire/client/Client.h",
    "src/dawn_wire/client/ClientDoers.cpp",
    "src/dawn_wire/client/ClientInlineMemoryTransferService.cpp",
    "src/dawn_wire/client/Device.cpp",
    "src/dawn_wire/client/Device.h",
    "src/dawn_wire/client/Fence.cpp",
    "src/dawn_wire/client/Fence.h",
    "src/dawn_wire/client/ObjectAllocator.h",
    "src/dawn_wire/server/ObjectStorage.h",
    "src/dawn_wire/server/Server.cpp",
    "src/dawn_wire/server/Server.h",
    "src/dawn_wire/server/ServerBuffer.cpp",
    "src/dawn_wire/server/ServerDevice.cpp",
    "src/dawn_wire/server/ServerFence.cpp",
    "src/dawn_wire/server/ServerInlineMemoryTransferService.cpp",
    "src/dawn_wire/server/ServerQueue.cpp",
  ]

  # Make headers publically visible
  public_deps = [
    "${dawn_root}/src/dawn_wire:libdawn_wire_headers",
  ]
}

###############################################################################
# GLFW wrapping target
###############################################################################

# GLFW does not support ChromeOS, Android or Fuchsia, so provide a small mock
# library that can be linked into the Dawn tests on these platforms. Otherwise,
# use the real library from third_party/.
if (is_win || (is_linux && !is_chromeos) || is_mac) {
  group("dawn_glfw") {
    public_deps = [
      "third_party:glfw",
    ]
  }
} else if (is_fuchsia) {
  # The mock implementation of GLFW on Fuchsia
  config("dawn_glfw_public_config") {
    # Allow inclusion of <GLFW/glfw3.h>
    include_dirs = [ "${dawn_glfw_dir}/include" ]

    # The GLFW/glfw3.h header includes <GL/gl.h> by default, but the latter
    # does not exist on Fuchsia. Defining GLFW_INCLUDE_NONE helps work around
    # the issue, but it needs to be defined for any file that includes the
    # header.
    defines = [
      "GLFW_INCLUDE_NONE",
      "GLFW_INCLUDE_VULKAN",
    ]
  }

  static_library("dawn_glfw") {
    sources = [
      # NOTE: The header below is required to pass "gn check".
      "${dawn_glfw_dir}/include/GLFW/glfw3.h",
      "src/utils/Glfw3Fuchsia.cpp",
    ]
    public_configs = [ ":dawn_glfw_public_config" ]
    deps = [
      "${dawn_root}/src/common",
    ]
  }
} else {
  # Just skip GLFW on other systems
  group("dawn_glfw") {
  }
}

###############################################################################
# Utils for tests and samples
###############################################################################

static_library("dawn_utils") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]

  sources = [
    "src/utils/ComboRenderBundleEncoderDescriptor.cpp",
    "src/utils/ComboRenderBundleEncoderDescriptor.h",
    "src/utils/ComboRenderPipelineDescriptor.cpp",
    "src/utils/ComboRenderPipelineDescriptor.h",
    "src/utils/SystemUtils.cpp",
    "src/utils/SystemUtils.h",
    "src/utils/TerribleCommandBuffer.cpp",
    "src/utils/TerribleCommandBuffer.h",
    "src/utils/Timer.h",
    "src/utils/WGPUHelpers.cpp",
    "src/utils/WGPUHelpers.h",
  ]

  if (is_win) {
    sources += [ "src/utils/WindowsTimer.cpp" ]
  } else if (is_mac) {
    sources += [ "src/utils/OSXTimer.cpp" ]
  } else {
    sources += [ "src/utils/PosixTimer.cpp" ]
  }

  public_deps = [
    "${dawn_root}/src/dawn:dawncpp_headers",
  ]

  deps = [
    ":libdawn_native",
    ":libdawn_wire",
    "${dawn_root}/src/common",
    "${dawn_shaderc_dir}:libshaderc",
  ]
}

###############################################################################
# Dawn test targets
###############################################################################

dawn_json_generator("mock_webgpu_gen") {
  target = "mock_webgpu"
  outputs = [
    "src/dawn/mock_webgpu.h",
    "src/dawn/mock_webgpu.cpp",
  ]
}

test("dawn_unittests") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]

  deps = [
    ":dawn_utils",
    ":libdawn_native",
    ":libdawn_native_sources",
    ":libdawn_wire",
    ":mock_webgpu_gen",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn:dawncpp",
    "${dawn_root}/src/dawn:libdawn_proc",
    "third_party:gmock_and_gtest",
  ]

  # Add internal Dawn Native headers and config for internal unittests.
  deps += [ ":libdawn_native_headers" ]
  configs += [ ":libdawn_native_internal" ]

  sources = get_target_outputs(":mock_webgpu_gen")
  sources += [
    "src/dawn_wire/client/ClientMemoryTransferService_mock.cpp",
    "src/dawn_wire/client/ClientMemoryTransferService_mock.h",
    "src/dawn_wire/server/ServerMemoryTransferService_mock.cpp",
    "src/dawn_wire/server/ServerMemoryTransferService_mock.h",
  ]
  sources += [
    "src/tests/unittests/BitSetIteratorTests.cpp",
    "src/tests/unittests/BuddyAllocatorTests.cpp",
    "src/tests/unittests/BuddyMemoryAllocatorTests.cpp",
    "src/tests/unittests/CommandAllocatorTests.cpp",
    "src/tests/unittests/EnumClassBitmasksTests.cpp",
    "src/tests/unittests/ErrorTests.cpp",
    "src/tests/unittests/ExtensionTests.cpp",
    "src/tests/unittests/GetProcAddressTests.cpp",
    "src/tests/unittests/MathTests.cpp",
    "src/tests/unittests/ObjectBaseTests.cpp",
    "src/tests/unittests/PerStageTests.cpp",
    "src/tests/unittests/RefCountedTests.cpp",
    "src/tests/unittests/ResultTests.cpp",
    "src/tests/unittests/RingBufferAllocatorTests.cpp",
    "src/tests/unittests/SerialMapTests.cpp",
    "src/tests/unittests/SerialQueueTests.cpp",
    "src/tests/unittests/SystemUtilsTests.cpp",
    "src/tests/unittests/ToBackendTests.cpp",
    "src/tests/unittests/validation/BindGroupValidationTests.cpp",
    "src/tests/unittests/validation/BufferValidationTests.cpp",
    "src/tests/unittests/validation/CommandBufferValidationTests.cpp",
    "src/tests/unittests/validation/ComputeIndirectValidationTests.cpp",
    "src/tests/unittests/validation/ComputePassValidationTests.cpp",
    "src/tests/unittests/validation/ComputeValidationTests.cpp",
    "src/tests/unittests/validation/CopyCommandsValidationTests.cpp",
    "src/tests/unittests/validation/DebugMarkerValidationTests.cpp",
    "src/tests/unittests/validation/DrawIndirectValidationTests.cpp",
    "src/tests/unittests/validation/DynamicStateCommandValidationTests.cpp",
    "src/tests/unittests/validation/ErrorScopeValidationTests.cpp",
    "src/tests/unittests/validation/FenceValidationTests.cpp",
    "src/tests/unittests/validation/QueueSubmitValidationTests.cpp",
    "src/tests/unittests/validation/RenderBundleValidationTests.cpp",
    "src/tests/unittests/validation/RenderPassDescriptorValidationTests.cpp",
    "src/tests/unittests/validation/RenderPassValidationTests.cpp",
    "src/tests/unittests/validation/RenderPipelineValidationTests.cpp",
    "src/tests/unittests/validation/SamplerValidationTests.cpp",
    "src/tests/unittests/validation/ShaderModuleValidationTests.cpp",
    "src/tests/unittests/validation/TextureValidationTests.cpp",
    "src/tests/unittests/validation/TextureViewValidationTests.cpp",
    "src/tests/unittests/validation/ToggleValidationTests.cpp",
    "src/tests/unittests/validation/ValidationTest.cpp",
    "src/tests/unittests/validation/ValidationTest.h",
    "src/tests/unittests/validation/VertexBufferValidationTests.cpp",
    "src/tests/unittests/validation/VertexStateValidationTests.cpp",
    "src/tests/unittests/wire/WireArgumentTests.cpp",
    "src/tests/unittests/wire/WireBasicTests.cpp",
    "src/tests/unittests/wire/WireBufferMappingTests.cpp",
    "src/tests/unittests/wire/WireErrorCallbackTests.cpp",
    "src/tests/unittests/wire/WireFenceTests.cpp",
    "src/tests/unittests/wire/WireInjectTextureTests.cpp",
    "src/tests/unittests/wire/WireMemoryTransferServiceTests.cpp",
    "src/tests/unittests/wire/WireOptionalTests.cpp",
    "src/tests/unittests/wire/WireTest.cpp",
    "src/tests/unittests/wire/WireTest.h",
    "src/tests/unittests/wire/WireWGPUDevicePropertiesTests.cpp",
  ]

  if (dawn_enable_d3d12) {
    sources += [ "src/tests/unittests/d3d12/CopySplitTests.cpp" ]
  }

  # When building inside Chromium, use their gtest main function because it is
  # needed to run in swarming correctly.
  if (build_with_chromium) {
    sources += [ "//gpu/dawn_unittests_main.cc" ]
  } else {
    sources += [ "src/tests/UnittestsMain.cpp" ]
  }
}

source_set("dawn_end2end_tests_sources") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]
  testonly = true

  deps = [
    ":dawn_utils",
    ":libdawn_native",
    ":libdawn_wire",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn:dawncpp",
    "${dawn_root}/src/dawn:libdawn_proc",
    "third_party:gmock_and_gtest",
  ]

  sources = [
    "src/tests/DawnTest.h",
    "src/tests/end2end/BasicTests.cpp",
    "src/tests/end2end/BindGroupTests.cpp",
    "src/tests/end2end/BufferTests.cpp",
    "src/tests/end2end/ClipSpaceTests.cpp",
    "src/tests/end2end/ColorStateTests.cpp",
    "src/tests/end2end/CompressedTextureFormatTests.cpp",
    "src/tests/end2end/ComputeCopyStorageBufferTests.cpp",
    "src/tests/end2end/ComputeIndirectTests.cpp",
    "src/tests/end2end/ComputeSharedMemoryTests.cpp",
    "src/tests/end2end/ComputeStorageBufferBarrierTests.cpp",
    "src/tests/end2end/CopyTests.cpp",
    "src/tests/end2end/CullingTests.cpp",
    "src/tests/end2end/DebugMarkerTests.cpp",
    "src/tests/end2end/DepthStencilStateTests.cpp",
    "src/tests/end2end/DestroyTests.cpp",
    "src/tests/end2end/DrawIndexedIndirectTests.cpp",
    "src/tests/end2end/DrawIndexedTests.cpp",
    "src/tests/end2end/DrawIndirectTests.cpp",
    "src/tests/end2end/DrawTests.cpp",
    "src/tests/end2end/DynamicBufferOffsetTests.cpp",
    "src/tests/end2end/FenceTests.cpp",
    "src/tests/end2end/GpuMemorySynchronizationTests.cpp",
    "src/tests/end2end/IndexFormatTests.cpp",
    "src/tests/end2end/MultisampledRenderingTests.cpp",
    "src/tests/end2end/NonzeroTextureCreationTests.cpp",
    "src/tests/end2end/ObjectCachingTests.cpp",
    "src/tests/end2end/OpArrayLengthTests.cpp",
    "src/tests/end2end/PrimitiveTopologyTests.cpp",
    "src/tests/end2end/RenderBundleTests.cpp",
    "src/tests/end2end/RenderPassLoadOpTests.cpp",
    "src/tests/end2end/RenderPassTests.cpp",
    "src/tests/end2end/SamplerTests.cpp",
    "src/tests/end2end/ScissorTests.cpp",
    "src/tests/end2end/TextureFormatTests.cpp",
    "src/tests/end2end/TextureViewTests.cpp",
    "src/tests/end2end/TextureZeroInitTests.cpp",
    "src/tests/end2end/VertexFormatTests.cpp",
    "src/tests/end2end/VertexStateTests.cpp",
    "src/tests/end2end/ViewportOrientationTests.cpp",
    "src/tests/end2end/ViewportTests.cpp",
  ]

  libs = []

  if (dawn_enable_metal) {
    sources += [ "src/tests/end2end/IOSurfaceWrappingTests.cpp" ]

    libs += [ "IOSurface.framework" ]
  }

  if (dawn_enable_d3d12) {
    sources += [ "src/tests/end2end/D3D12ResourceWrappingTests.cpp" ]
    libs += [
      "d3d11.lib",
      "dxgi.lib",
    ]
  }

  if (dawn_enable_opengl) {
    deps += [ ":dawn_glfw" ]
  }
}

source_set("dawn_white_box_tests_sources") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]
  testonly = true

  deps = [
    ":dawn_utils",
    ":libdawn_native",
    ":libdawn_native_sources",
    ":libdawn_wire",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn:dawncpp",
    "${dawn_root}/src/dawn:libdawn_proc",
    "third_party:gmock_and_gtest",
  ]

  sources = [
    "src/tests/DawnTest.h",
  ]

  if (dawn_enable_vulkan) {
    deps += [ "third_party:vulkan_headers" ]

    if (is_linux) {
      sources += [ "src/tests/white_box/VulkanImageWrappingTests.cpp" ]
    }
  }

  if (dawn_enable_d3d12) {
    sources += [ "src/tests/white_box/D3D12SmallTextureTests.cpp" ]
  }

  if (dawn_enable_opengl) {
    deps += [ ":dawn_glfw" ]
  }

  libs = []
}

test("dawn_end2end_tests") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]

  deps = [
    ":dawn_end2end_tests_sources",
    ":dawn_utils",
    ":dawn_white_box_tests_sources",
    ":libdawn_native",
    ":libdawn_wire",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn:dawncpp",
    "${dawn_root}/src/dawn:libdawn_proc",
    "third_party:gmock_and_gtest",
  ]

  sources = [
    "src/tests/DawnTest.cpp",
    "src/tests/DawnTest.h",
  ]

  libs = []

  # When building inside Chromium, use their gtest main function because it is
  # needed to run in swarming correctly.
  if (build_with_chromium) {
    sources += [ "//gpu/dawn_end2end_tests_main.cc" ]
  } else {
    sources += [ "src/tests/End2EndTestsMain.cpp" ]
  }

  if (dawn_enable_opengl) {
    deps += [ ":dawn_glfw" ]
  }
}

test("dawn_perf_tests") {
  configs += [ "${dawn_root}/src/common:dawn_internal" ]

  deps = [
    ":dawn_platform",
    ":dawn_utils",
    ":libdawn_native",
    ":libdawn_wire",
    "${dawn_jsoncpp_dir}:jsoncpp",
    "${dawn_root}/src/common",
    "${dawn_root}/src/dawn:dawncpp",
    "${dawn_root}/src/dawn:libdawn_proc",
    "third_party:gmock_and_gtest",
  ]

  sources = [
    "src/tests/DawnTest.cpp",
    "src/tests/DawnTest.h",
    "src/tests/ParamGenerator.h",
    "src/tests/perf_tests/BufferUploadPerf.cpp",
    "src/tests/perf_tests/DawnPerfTest.cpp",
    "src/tests/perf_tests/DawnPerfTest.h",
    "src/tests/perf_tests/DawnPerfTestPlatform.cpp",
    "src/tests/perf_tests/DawnPerfTestPlatform.h",
    "src/tests/perf_tests/DrawCallPerf.cpp",
  ]

  libs = []

  # When building inside Chromium, use their gtest main function because it is
  # needed to run in swarming correctly.
  if (build_with_chromium) {
    sources += [ "//gpu/dawn_perf_tests_main.cc" ]
  } else {
    sources += [ "src/tests/PerfTestsMain.cpp" ]
  }

  if (dawn_enable_metal) {
    libs += [ "IOSurface.framework" ]
  }

  if (dawn_enable_opengl) {
    deps += [ ":dawn_glfw" ]
  }
}

# Temporary groups to make a 5-way patch to fix crbug.com/913171
group("dawn_unittests_temp_group") {
  testonly = true
  deps = [
    ":dawn_unittests",
  ]
}

group("dawn_end2end_tests_temp_group") {
  testonly = true
  deps = [
    ":dawn_end2end_tests",
  ]
}

group("dawn_perf_tests_temp_group") {
  testonly = true
  deps = [
    ":dawn_perf_tests",
  ]
  data_deps = [
    ":dawn_perf_tests",
  ]
}

###############################################################################
# Dawn samples, only in standalone builds
###############################################################################

if (dawn_standalone) {
  # Library to handle the interaction of Dawn with GLFW windows in samples
  static_library("dawn_bindings") {
    configs += [ "${dawn_root}/src/common:dawn_internal" ]

    sources = [
      "src/utils/BackendBinding.cpp",
      "src/utils/BackendBinding.h",
    ]

    public_deps = [
      "${dawn_root}/src/dawn:dawn_headers",
    ]

    deps = [
      ":dawn_glfw",
      ":libdawn_native",
      "${dawn_root}/src/common",
    ]
    libs = []

    if (dawn_enable_d3d12) {
      sources += [ "src/utils/D3D12Binding.cpp" ]
    }

    if (dawn_enable_metal) {
      sources += [ "src/utils/MetalBinding.mm" ]
      libs += [
        "Metal.framework",
        "QuartzCore.framework",
      ]

      # Suppress warnings that Metal isn't in the deployment target of Chrome
      if (is_mac) {
        cflags_objcc = [ "-Wno-unguarded-availability" ]
      }
    }

    if (dawn_enable_null) {
      sources += [ "src/utils/NullBinding.cpp" ]
    }

    if (dawn_enable_opengl) {
      sources += [ "src/utils/OpenGLBinding.cpp" ]
    }

    if (dawn_enable_vulkan) {
      sources += [ "src/utils/VulkanBinding.cpp" ]
    }
  }

  # Static library to contain code and dependencies common to all samples
  static_library("dawn_sample_utils") {
    sources = [
      "examples/SampleUtils.cpp",
      "examples/SampleUtils.h",
    ]

    # Export all of these as public deps so that `gn check` allows includes
    public_deps = [
      ":dawn_bindings",
      ":dawn_glfw",
      ":dawn_utils",
      ":libdawn_native",
      ":libdawn_wire",
      "${dawn_root}/src/common",
      "${dawn_root}/src/dawn:dawncpp",
      "${dawn_root}/src/dawn:libdawn_proc",
    ]
    public_configs = [ "${dawn_root}/src/common:dawn_internal" ]
  }

  # Template for samples to avoid listing dawn_sample_utils as a dep every time
  template("dawn_sample") {
    executable(target_name) {
      deps = [
        ":dawn_sample_utils",
      ]
      forward_variables_from(invoker, "*", [ "deps" ])

      if (defined(invoker.deps)) {
        deps += invoker.deps
      }
    }
  }

  dawn_sample("CppHelloTriangle") {
    sources = [
      "examples/CppHelloTriangle.cpp",
    ]
  }

  dawn_sample("CHelloTriangle") {
    sources = [
      "examples/CHelloTriangle.cpp",
    ]
  }

  dawn_sample("ComputeBoids") {
    sources = [
      "examples/ComputeBoids.cpp",
    ]
    deps = [
      "third_party:glm",
    ]
  }

  dawn_sample("Animometer") {
    sources = [
      "examples/Animometer.cpp",
    ]
  }

  dawn_sample("CubeReflection") {
    sources = [
      "examples/CubeReflection.cpp",
    ]
    deps = [
      "third_party:glm",
    ]
  }

  group("dawn_samples") {
    deps = [
      ":Animometer",
      ":CHelloTriangle",
      ":ComputeBoids",
      ":CppHelloTriangle",
      ":CubeReflection",
    ]
  }
}

###############################################################################
# Fuzzers
###############################################################################

group("dawn_fuzzers") {
  testonly = true
  deps = [
    "src/fuzzers:dawn_spirv_cross_glsl_fast_fuzzer",
    "src/fuzzers:dawn_spirv_cross_hlsl_fast_fuzzer",
    "src/fuzzers:dawn_spirv_cross_msl_fast_fuzzer",
    "src/fuzzers:dawn_wire_server_and_frontend_fuzzer",
  ]
}
