# Copyright 2021 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Things are easiest for everyone if these source paths are absolute.
_src = get_path_info("../src/gpu/graphite", "abspath")
_include = get_path_info("../include/gpu/graphite", "abspath")
_include_private = get_path_info("../include/private/gpu/graphite", "abspath")

skia_graphite_public = [
  "$_include/BackendTexture.h",
  "$_include/Context.h",
  "$_include/ContextOptions.h",
  "$_include/GraphiteTypes.h",
  "$_include/ImageProvider.h",
  "$_include/Recorder.h",
  "$_include/Recording.h",
  "$_include/TextureInfo.h",
]

skia_graphite_sources = [
  "$_src/AttachmentTypes.h",
  "$_src/Attribute.h",
  "$_src/BackendTexture.cpp",
  "$_src/Buffer.cpp",
  "$_src/Buffer.h",
  "$_src/Caps.cpp",
  "$_src/Caps.h",
  "$_src/ClientMappedBufferManager.cpp",
  "$_src/ClientMappedBufferManager.h",
  "$_src/ClipStack.cpp",
  "$_src/ClipStack_graphite.h",
  "$_src/CommandBuffer.cpp",
  "$_src/CommandBuffer.h",
  "$_src/CommandTypes.h",
  "$_src/ComputePassTask.cpp",
  "$_src/ComputePassTask.h",
  "$_src/ComputePipeline.cpp",
  "$_src/ComputePipeline.h",
  "$_src/ComputeTypes.h",
  "$_src/Context.cpp",
  "$_src/ContextPriv.h",
  "$_src/ContextUtils.cpp",
  "$_src/ContextUtils.h",
  "$_src/CopyTask.cpp",
  "$_src/CopyTask.h",
  "$_src/Device.cpp",
  "$_src/Device.h",
  "$_src/DrawAtlas.cpp",
  "$_src/DrawAtlas.h",
  "$_src/DrawBufferManager.cpp",
  "$_src/DrawBufferManager.h",
  "$_src/DrawCommands.h",
  "$_src/DrawContext.cpp",
  "$_src/DrawContext.h",
  "$_src/DrawList.cpp",
  "$_src/DrawList.h",
  "$_src/DrawOrder.h",
  "$_src/DrawParams.h",
  "$_src/DrawPass.cpp",
  "$_src/DrawPass.h",
  "$_src/DrawTypes.h",
  "$_src/DrawWriter.cpp",
  "$_src/DrawWriter.h",
  "$_src/GlobalCache.cpp",
  "$_src/GlobalCache.h",
  "$_src/GpuWorkSubmission.cpp",
  "$_src/GpuWorkSubmission.h",
  "$_src/GraphicsPipeline.cpp",
  "$_src/GraphicsPipeline.h",
  "$_src/GraphicsPipelineDesc.h",
  "$_src/GraphiteResourceKey.cpp",
  "$_src/GraphiteResourceKey.h",
  "$_src/ImageUtils.cpp",
  "$_src/ImageUtils.h",
  "$_src/Image_Graphite.cpp",
  "$_src/Image_Graphite.h",
  "$_src/KeyContext.cpp",
  "$_src/KeyContext.h",
  "$_src/KeyHelpers.cpp",
  "$_src/KeyHelpers.h",
  "$_src/Log.h",
  "$_src/PaintParams.cpp",
  "$_src/PaintParams.h",
  "$_src/PaintParamsKey.cpp",
  "$_src/PaintParamsKey.h",
  "$_src/PipelineData.cpp",
  "$_src/PipelineData.h",
  "$_src/PipelineDataCache.h",
  "$_src/QueueManager.cpp",
  "$_src/QueueManager.h",
  "$_src/Recorder.cpp",
  "$_src/RecorderPriv.h",
  "$_src/Recording.cpp",
  "$_src/RecordingPriv.h",
  "$_src/RenderPassTask.cpp",
  "$_src/RenderPassTask.h",
  "$_src/Renderer.cpp",
  "$_src/Renderer.h",
  "$_src/RendererProvider.cpp",
  "$_src/RendererProvider.h",
  "$_src/Resource.cpp",
  "$_src/Resource.h",
  "$_src/ResourceCache.cpp",
  "$_src/ResourceCache.h",
  "$_src/ResourceProvider.cpp",
  "$_src/ResourceProvider.h",
  "$_src/ResourceTypes.h",
  "$_src/Sampler.cpp",
  "$_src/Sampler.h",
  "$_src/ShaderCodeDictionary.cpp",
  "$_src/ShaderCodeDictionary.h",
  "$_src/SharedContext.cpp",
  "$_src/SharedContext.h",
  "$_src/SpecialImage_Graphite.cpp",
  "$_src/Surface_Graphite.cpp",
  "$_src/Surface_Graphite.h",
  "$_src/SynchronizeToCpuTask.cpp",
  "$_src/SynchronizeToCpuTask.h",
  "$_src/Task.cpp",
  "$_src/Task.h",
  "$_src/TaskGraph.cpp",
  "$_src/TaskGraph.h",
  "$_src/Texture.cpp",
  "$_src/Texture.h",
  "$_src/TextureInfo.cpp",
  "$_src/TextureProxy.cpp",
  "$_src/TextureProxy.h",
  "$_src/TextureProxyView.h",
  "$_src/TextureUtils.cpp",
  "$_src/TextureUtils.h",
  "$_src/Uniform.h",
  "$_src/UniformManager.cpp",
  "$_src/UniformManager.h",
  "$_src/UploadBufferManager.cpp",
  "$_src/UploadBufferManager.h",
  "$_src/UploadTask.cpp",
  "$_src/UploadTask.h",
  "$_src/geom/BoundsManager.h",
  "$_src/geom/Geometry.h",
  "$_src/geom/IntersectionTree.cpp",
  "$_src/geom/IntersectionTree.h",
  "$_src/geom/Rect.h",
  "$_src/geom/Shape.cpp",
  "$_src/geom/Shape.h",
  "$_src/geom/SubRunData.h",
  "$_src/geom/Transform.cpp",
  "$_src/geom/Transform_graphite.h",
  "$_src/render/AnalyticRRectRenderStep.cpp",
  "$_src/render/AnalyticRRectRenderStep.h",
  "$_src/render/BitmapTextRenderStep.cpp",
  "$_src/render/BitmapTextRenderStep.h",
  "$_src/render/CommonDepthStencilSettings.h",
  "$_src/render/CoverBoundsRenderStep.cpp",
  "$_src/render/CoverBoundsRenderStep.h",
  "$_src/render/DynamicInstancesPatchAllocator.h",
  "$_src/render/MiddleOutFanRenderStep.cpp",
  "$_src/render/MiddleOutFanRenderStep.h",
  "$_src/render/SDFTextRenderStep.cpp",
  "$_src/render/SDFTextRenderStep.h",
  "$_src/render/TessellateCurvesRenderStep.cpp",
  "$_src/render/TessellateCurvesRenderStep.h",
  "$_src/render/TessellateStrokesRenderStep.cpp",
  "$_src/render/TessellateStrokesRenderStep.h",
  "$_src/render/TessellateWedgesRenderStep.cpp",
  "$_src/render/TessellateWedgesRenderStep.h",
  "$_src/render/VerticesRenderStep.cpp",
  "$_src/render/VerticesRenderStep.h",
  "$_src/text/AtlasManager.cpp",
  "$_src/text/AtlasManager.h",
]

skia_graphite_dawn_sources = [
  "$_include/dawn/DawnBackendContext.h",
  "$_include/dawn/DawnTypes.h",
  "$_include_private/DawnTypesPriv.h",
  "$_src/dawn/DawnCaps.cpp",
  "$_src/dawn/DawnCaps.h",
  "$_src/dawn/DawnCommandBuffer.cpp",
  "$_src/dawn/DawnCommandBuffer.h",
  "$_src/dawn/DawnGraphicsPipeline.cpp",
  "$_src/dawn/DawnGraphicsPipeline.h",
  "$_src/dawn/DawnQueueManager.cpp",
  "$_src/dawn/DawnQueueManager.h",
  "$_src/dawn/DawnResourceProvider.cpp",
  "$_src/dawn/DawnResourceProvider.h",
  "$_src/dawn/DawnSampler.cpp",
  "$_src/dawn/DawnSampler.h",
  "$_src/dawn/DawnSharedContext.cpp",
  "$_src/dawn/DawnSharedContext.h",
  "$_src/dawn/DawnTexture.cpp",
  "$_src/dawn/DawnTexture.h",
  "$_src/dawn/DawnTypesPriv.cpp",
  "$_src/dawn/DawnUtils.cpp",
  "$_src/dawn/DawnUtils.h",
]

skia_graphite_mtl_sources = [
  "$_include/mtl/MtlBackendContext.h",
  "$_include/mtl/MtlTypes.h",
  "$_include_private/MtlTypesPriv.h",
  "$_src/mtl/MtlBlitCommandEncoder.h",
  "$_src/mtl/MtlBuffer.h",
  "$_src/mtl/MtlBuffer.mm",
  "$_src/mtl/MtlCaps.h",
  "$_src/mtl/MtlCaps.mm",
  "$_src/mtl/MtlCommandBuffer.h",
  "$_src/mtl/MtlCommandBuffer.mm",
  "$_src/mtl/MtlComputeCommandEncoder.h",
  "$_src/mtl/MtlComputePipeline.h",
  "$_src/mtl/MtlComputePipeline.mm",
  "$_src/mtl/MtlGraphicsPipeline.h",
  "$_src/mtl/MtlGraphicsPipeline.mm",
  "$_src/mtl/MtlQueueManager.h",
  "$_src/mtl/MtlQueueManager.mm",
  "$_src/mtl/MtlRenderCommandEncoder.h",
  "$_src/mtl/MtlResourceProvider.h",
  "$_src/mtl/MtlResourceProvider.mm",
  "$_src/mtl/MtlSampler.h",
  "$_src/mtl/MtlSampler.mm",
  "$_src/mtl/MtlSharedContext.h",
  "$_src/mtl/MtlSharedContext.mm",
  "$_src/mtl/MtlTexture.h",
  "$_src/mtl/MtlTexture.mm",
  "$_src/mtl/MtlTrampoline.h",
  "$_src/mtl/MtlTrampoline.mm",
  "$_src/mtl/MtlTypesPriv.mm",
  "$_src/mtl/MtlUtils.h",
  "$_src/mtl/MtlUtils.mm",
]

skia_graphite_vk_sources = [
  "$_include/vk/VulkanGraphiteTypes.h",
  "$_include_private/VulkanGraphiteTypesPriv.h",
  "$_src/vk/VulkanCaps.cpp",
  "$_src/vk/VulkanCaps.h",
  "$_src/vk/VulkanCommandBuffer.cpp",
  "$_src/vk/VulkanCommandBuffer.h",
  "$_src/vk/VulkanGraphiteTypes.cpp",
  "$_src/vk/VulkanGraphiteUtils.h",
  "$_src/vk/VulkanQueueManager.cpp",
  "$_src/vk/VulkanQueueManager.h",
  "$_src/vk/VulkanResourceProvider.cpp",
  "$_src/vk/VulkanResourceProvider.h",
  "$_src/vk/VulkanSharedContext.cpp",
  "$_src/vk/VulkanSharedContext.h",
]

skia_graphite_piet_sources = [
  "$_src/PietRenderTask.cpp",
  "$_src/PietRenderTask.h",
]

skia_graphite_precompile_public = [ "$_include/CombinationBuilder.h" ]

skia_graphite_precompile_sources = [
  "$_src/CombinationBuilder.cpp",
  "$_src/FactoryFunctions.cpp",
  "$_src/FactoryFunctions.h",
  "$_src/PaintOptionsPriv.h",
  "$_src/Precompile.cpp",
  "$_src/Precompile.h",
]
