skia2/third_party/dawn/BUILD.gn
Ben Wagner e990fcc4b0 Enable deprecated-copy-dtor warning.
In C++11 a user declared destructor still requires the compiler to
implicitly default the copy constructor and copy assignment operator,
but this is deprecated. Note that a user declared destructor suppresses
the move constructor and move assignment operator; a user declared
destructor exists if any '~Foo' method declaration appears inside
'class Foo' (even if defaulted); if the copy and move operations are the
same then copy operations that take 'const Foo&' will do fine double
duty as move operations.

Clang seems to have an issue with this warning, in that it does not
appear to distinguish between compiler defaulted and user defaulted
destructors. As a result, it does not always warn when it should.
There may yet be places in the code where a move operation is desired
but may be suppressed because the implicitly defaulted  moves are not
declared because a destructor has been declared.

This wraps dawn and shaderc configs in 'third_party' so that their
headers will be included through '-isystem' in order to avoid the
warnings generated by including their headers.

Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-31 22:15:07 +00:00

706 lines
30 KiB
Plaintext

# 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("../externals/dawn/generator/dawn_generator.gni")
import("../externals/dawn/scripts/dawn_features.gni")
import("../third_party.gni")
###############################################################################
# dawn_platform
###############################################################################
source_set("dawn_platform") {
configs += [ ":dawn_internal" ]
sources =
rebase_path([
"${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",
],
".",
"$dawn_root")
}
###############################################################################
# libdawn_native
###############################################################################
config("libdawn_native_internal") {
configs = [ ":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" ]
}
cflags_cc = [
"-Wno-deprecated-declarations",
"-Wno-narrowing",
]
}
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 = "${dawn_root}/generator/opengl_loader_generator.py"
args = [
"--gl-xml",
rebase_path("../externals/opengl-registry/xml/gl.xml", root_build_dir),
"--supported-extensions",
rebase_path("$dawn_root/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 = [
":dawncpp_headers",
]
sources = rebase_path(
[
"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",
],
".",
"$dawn_root")
}
static_library("libdawn_native") {
deps = [
":dawn_common",
":libdawn_native_headers",
":libdawn_native_utils_gen",
"${dawn_spirv_cross_dir}:spirv_cross",
"${dawn_spirv_tools_dir}:spvtools_val",
]
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",
"${dawn_shaderc_dir}:libshaderc_spvc_sources",
]
sources = rebase_path(get_target_outputs(":libdawn_native_utils_gen"),
".",
"$dawn_root")
sources +=
rebase_path([
"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/BindGroupAndStorageBarrierTrackers.h",
"src/dawn_native/BindGroupLayout.cpp",
"src/dawn_native/BindGroupLayout.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/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/DawnNative.cpp",
"src/dawn_native/Device.cpp",
"src/dawn_native/Device.h",
"src/dawn_native/DynamicUploader.cpp",
"src/dawn_native/DynamicUploader.h",
"src/dawn_native/Device.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/ErrorInjector.cpp",
"src/dawn_native/ErrorInjector.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.h",
"src/dawn_native/ObjectBase.cpp",
"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/Surface.cpp",
"src/dawn_native/Surface.h",
"src/dawn_native/SwapChain.cpp",
"src/dawn_native/SwapChain.h",
"src/dawn_native/Texture.cpp",
"src/dawn_native/Texture.h",
"src/dawn_native/Toggles.cpp",
"src/dawn_native/Toggles.h",
"src/dawn_native/ToBackend.h",
"src/dawn_native/dawn_platform.h",
],
".",
"$dawn_root")
if (dawn_enable_d3d12) {
libs += [ "dxguid.lib" ]
sources += rebase_path(
[
"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/D3D12Backend.cpp",
"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/DescriptorHeapAllocationD3D12.cpp",
"src/dawn_native/d3d12/DescriptorHeapAllocationD3D12.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/HeapD3D12.cpp",
"src/dawn_native/d3d12/HeapD3D12.h",
"src/dawn_native/d3d12/HeapAllocatorD3D12.cpp",
"src/dawn_native/d3d12/HeapAllocatorD3D12.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/ResidencyManagerD3D12.cpp",
"src/dawn_native/d3d12/ResidencyManagerD3D12.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/ShaderVisibleDescriptorAllocatorD3D12.cpp",
"src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.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",
],
".",
"$dawn_root")
}
if (dawn_enable_metal) {
libs += [
"Metal.framework",
"Cocoa.framework",
"IOKit.framework",
"IOSurface.framework",
"QuartzCore.framework",
]
sources += rebase_path([
"src/dawn_native/Surface_metal.mm",
"src/dawn_native/metal/BackendMTL.h",
"src/dawn_native/metal/BackendMTL.mm",
"src/dawn_native/metal/BindGroupLayoutMTL.h",
"src/dawn_native/metal/BindGroupLayoutMTL.mm",
"src/dawn_native/metal/BindGroupMTL.h",
"src/dawn_native/metal/BindGroupMTL.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/CommandRecordingContext.h",
"src/dawn_native/metal/CommandRecordingContext.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/MetalBackend.mm",
"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",
],
".",
"$dawn_root")
}
if (dawn_enable_null) {
sources += rebase_path([
"src/dawn_native/null/DeviceNull.cpp",
"src/dawn_native/null/DeviceNull.h",
"src/dawn_native/null/NullBackend.cpp",
],
".",
"$dawn_root")
}
if (dawn_enable_opengl) {
deps += [ ":libdawn_native_opengl_loader_gen" ]
sources += get_target_outputs(":libdawn_native_opengl_loader_gen")
sources +=
rebase_path([
"src/dawn_native/opengl/BackendGL.cpp",
"src/dawn_native/opengl/BackendGL.h",
"src/dawn_native/opengl/BindGroupGL.cpp",
"src/dawn_native/opengl/BindGroupGL.h",
"src/dawn_native/opengl/BindGroupLayoutGL.cpp",
"src/dawn_native/opengl/BindGroupLayoutGL.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.h",
"src/dawn_native/opengl/GLFormat.cpp",
"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/OpenGLBackend.cpp",
"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",
],
".",
"$dawn_root")
}
configs -= [ "//gn:warnings" ]
if (dawn_enable_vulkan) {
configs += [ "//:our_vulkan_headers" ]
include_dirs = [ "../.." ] # for "include/third_party/vulkan/vulkan/vk_platform.h" in vulkan.h
sources += rebase_path(
[
"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/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/VulkanBackend.cpp",
"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",
],
".",
"$dawn_root")
if (is_chromeos) {
sources += rebase_path(
[
"src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp",
"src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
],
".",
"$dawn_root")
} else if (is_linux) {
sources += rebase_path(
[
"src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp",
"src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
],
".",
"$dawn_root")
} else {
sources += rebase_path(
[
"src/dawn_native/vulkan/external_memory/MemoryServiceNull.cpp",
"src/dawn_native/vulkan/external_semaphore/SemaphoreServiceNull.cpp",
],
".",
"$dawn_root")
}
}
}
third_party_config("libdawn_public") {
include_dirs = [
"$dawn_gen_root/src/include",
"$dawn_gen_root/src",
"$dawn_root/src/include",
"$dawn_root/src",
]
}
config("dawn_internal") {
include_dirs = [ "$dawn_root/src" ]
defines = []
if (dawn_always_assert || is_debug) {
defines += [ "DAWN_ENABLE_ASSERTS" ]
}
if (dawn_enable_d3d12) {
defines += [ "DAWN_ENABLE_BACKEND_D3D12" ]
}
if (dawn_enable_metal) {
defines += [ "DAWN_ENABLE_BACKEND_METAL" ]
}
if (dawn_enable_null) {
defines += [ "DAWN_ENABLE_BACKEND_NULL" ]
}
if (dawn_enable_opengl) {
defines += [ "DAWN_ENABLE_BACKEND_OPENGL" ]
}
if (dawn_enable_vulkan) {
defines += [ "DAWN_ENABLE_BACKEND_VULKAN" ]
}
configs = [ ":libdawn_public" ]
# Only internal Dawn targets can use this config, this means only targets in
# this BUILD.gn file.
visibility = [ ":*" ]
}
static_library("dawn_common") {
sources = rebase_path([
"Assert.cpp",
"Assert.h",
"BitSetIterator.h",
"Compiler.h",
"DynamicLib.cpp",
"DynamicLib.h",
"GPUInfo.cpp",
"GPUInfo.h",
"HashUtils.h",
"LinkedList.h",
"Log.cpp",
"Log.h",
"Math.cpp",
"Math.h",
"PlacementAllocated.h",
"Platform.h",
"Result.cpp",
"Result.h",
"Serial.h",
"SerialMap.h",
"SerialQueue.h",
"SerialStorage.h",
"SlabAllocator.cpp",
"SlabAllocator.h",
"SwapChainUtils.h",
"vulkan_platform.h",
"windows_with_undefs.h",
],
".",
"$dawn_root/src/common")
configs += [ ":dawn_internal" ]
deps = [
":dawn_headers",
]
if (dawn_enable_vulkan) {
configs += [ "//:our_vulkan_headers" ]
}
}
###############################################################################
# Dawn headers and libdawn.so
###############################################################################
dawn_json_generator("dawn_headers_gen") {
target = "dawn_headers"
outputs = [
"src/include/dawn/dawn_proc_table.h",
"src/include/dawn/webgpu.h",
]
}
source_set("dawn_headers") {
public_configs = [ ":libdawn_public" ]
public_deps = [
":dawn_headers_gen",
]
sources = get_target_outputs(":dawn_headers_gen")
sources += [
"${dawn_root}/src/include/dawn/dawn_export.h",
"${dawn_root}/src/include/dawn/dawn_wsi.h",
]
}
###############################################################################
# Dawn C++ headers
###############################################################################
dawn_json_generator("dawncpp_headers_gen") {
target = "dawncpp_headers"
outputs = [
"src/include/dawn/webgpu_cpp.h",
]
}
source_set("dawncpp_headers") {
public_deps = [
":dawn_headers",
":dawncpp_headers_gen",
]
sources = get_target_outputs(":dawncpp_headers_gen")
sources += [ "${dawn_root}/src/include/dawn/EnumClassBitmasks.h" ]
}
###############################################################################
# Dawn C++ wrapper
###############################################################################
dawn_json_generator("dawncpp_gen") {
target = "dawncpp"
outputs = [
"src/dawn/webgpu_cpp.cpp",
]
}
source_set("dawncpp") {
deps = [
":dawncpp_gen",
":dawncpp_headers",
]
sources = get_target_outputs(":dawncpp_gen")
}
###############################################################################
# libdawn_proc
###############################################################################
dawn_json_generator("libdawn_proc_gen") {
target = "dawn_proc"
outputs = [
"src/dawn/dawn_proc.c",
]
}
static_library("libdawn_proc") {
public_deps = [
":dawn_headers",
]
deps = [
":libdawn_proc_gen",
]
sources = get_target_outputs(":libdawn_proc_gen")
sources += [ "${dawn_root}/src/include/dawn/dawn_proc.h" ]
cflags = [ "-Wno-strict-prototypes" ]
}