23607a9a77
Change-Id: I55568429061f4775979cac4cdd3af59a6af81b6f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252924 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
656 lines
29 KiB
Plaintext
656 lines
29 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")
|
|
|
|
###############################################################################
|
|
# 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" ]
|
|
}
|
|
}
|
|
|
|
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",
|
|
"//third_party/spirv-cross:spirv_cross",
|
|
"//third_party/spirv-tools: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",
|
|
]
|
|
|
|
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/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/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/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/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/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",
|
|
],
|
|
".",
|
|
"$dawn_root")
|
|
}
|
|
|
|
if (dawn_enable_metal) {
|
|
libs += [
|
|
"Metal.framework",
|
|
"Cocoa.framework",
|
|
"IOKit.framework",
|
|
"IOSurface.framework",
|
|
]
|
|
sources += rebase_path([
|
|
"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/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/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_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")
|
|
}
|
|
}
|
|
}
|
|
|
|
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",
|
|
"HashUtils.h",
|
|
"Math.cpp",
|
|
"Math.h",
|
|
"Platform.h",
|
|
"Result.cpp",
|
|
"Result.h",
|
|
"Serial.h",
|
|
"SerialMap.h",
|
|
"SerialQueue.h",
|
|
"SerialStorage.h",
|
|
"SwapChainUtils.h",
|
|
"vulkan_platform.h",
|
|
"windows_with_undefs.h",
|
|
],
|
|
".",
|
|
"$dawn_root/src/common")
|
|
|
|
configs += [ ":dawn_internal" ]
|
|
deps = [
|
|
":dawn_headers",
|
|
]
|
|
}
|
|
|
|
###############################################################################
|
|
# Dawn headers and libdawn.so
|
|
###############################################################################
|
|
|
|
dawn_json_generator("dawn_headers_gen") {
|
|
target = "dawn_headers"
|
|
outputs = [
|
|
"src/include/dawn/dawn.h",
|
|
"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/dawncpp.h",
|
|
"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" ]
|
|
}
|