# Copyright 2020 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.

# Override for angle_root
angle_root = "//third_party/angle"

# True if ANGLE can access build/, testing/ and other Chrome folders.
angle_has_build = true

# Paths to ANGLE dependencies in Dawn
angle_glslang_dir = "//third_party/vulkan-deps/glslang/src"
angle_spirv_cross_dir = "//third_party/vulkan-deps/spirv-cross/src"
angle_spirv_headers_dir = "//third_party/vulkan-deps/spirv-headers/src"
angle_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
angle_vulkan_memory_allocator_dir = "//third_party/vulkan_memory_allocator"
