1# Copyright 2022 The ANGLE Project Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# Define a list of source files that ANGLE_PROGRAM_VERSION hash value is 6# generated from. When any of the files listed below changes, the 7# ANGLE_PROGRAM_VERSION should change and we will invalidate shader program 8# cache blobs: applications will compile shader programs from scratch and not 9# loading from blob caches. 10 11# The path of all the files added to angle_code_affecting_program_serialize 12# must be relative to angle_root. 13 14import("compiler.gni") 15import("libANGLE/renderer/d3d/d3d_backend.gni") 16import("libANGLE/renderer/gl/gl_backend.gni") 17import("libANGLE/renderer/metal/metal_backend.gni") 18import("libANGLE/renderer/null/null_backend.gni") 19import("libANGLE/renderer/vulkan/vulkan_backend.gni") 20import("libANGLE/renderer/wgpu/wgpu_sources.gni") 21import("libGLESv2.gni") 22 23angle_code_affecting_program_serialize = libangle_common_sources 24angle_code_affecting_program_serialize += libangle_headers 25angle_code_affecting_program_serialize += libangle_sources 26angle_code_affecting_program_serialize += libangle_gl_sources 27angle_code_affecting_program_serialize += libangle_includes 28angle_code_affecting_program_serialize += angle_translator_exported_headers 29angle_code_affecting_program_serialize += angle_translator_sources 30angle_code_affecting_program_serialize += angle_translator_glsl_base_sources 31angle_code_affecting_program_serialize += 32 angle_translator_glsl_and_vulkan_base_sources 33angle_code_affecting_program_serialize += angle_translator_essl_sources 34angle_code_affecting_program_serialize += angle_translator_glsl_sources 35angle_code_affecting_program_serialize += angle_translator_glsl_apple_sources 36angle_code_affecting_program_serialize += angle_translator_hlsl_sources 37angle_code_affecting_program_serialize += angle_translator_lib_spirv_sources 38angle_code_affecting_program_serialize += 39 angle_translator_essl_symbol_table_sources 40angle_code_affecting_program_serialize += 41 angle_translator_glsl_symbol_table_sources 42angle_code_affecting_program_serialize += angle_translator_lib_msl_sources 43angle_code_affecting_program_serialize += angle_translator_lib_wgsl_sources 44angle_code_affecting_program_serialize += angle_preprocessor_sources 45 46angle_dependencies_affecting_program_serialize = [] 47 48vulkan_backend_dir = "libANGLE/renderer/vulkan/" 49angle_code_affecting_program_serialize += 50 rebase_path(vulkan_backend_sources, angle_root, vulkan_backend_dir) 51 52gl_backend_dir = "libANGLE/renderer/gl/" 53angle_code_affecting_program_serialize += 54 rebase_path(gl_backend_sources, angle_root, gl_backend_dir) 55 56d3d_backend_dir = "libANGLE/renderer/d3d/" 57angle_code_affecting_program_serialize += 58 rebase_path(d3d_shared_sources, angle_root, d3d_backend_dir) 59 60if (angle_enable_d3d9) { 61 angle_code_affecting_program_serialize += 62 rebase_path(d3d9_backend_sources, angle_root, d3d_backend_dir) 63} 64 65if (angle_enable_d3d11) { 66 angle_code_affecting_program_serialize += 67 rebase_path(d3d11_backend_sources, angle_root, d3d_backend_dir) 68} 69 70null_backend_dir = "libANGLE/renderer/null/" 71angle_code_affecting_program_serialize += 72 rebase_path(null_backend_sources, angle_root, null_backend_dir) 73 74if (angle_enable_metal) { 75 metal_backend_dir = "libANGLE/renderer/metal/" 76 angle_code_affecting_program_serialize += 77 rebase_path(metal_backend_sources, angle_root, metal_backend_dir) 78 if (metal_internal_shader_compilation_supported) { 79 angle_dependencies_affecting_program_serialize += 80 [ "src/libANGLE/renderer/metal:angle_metal_internal_shaders" ] 81 } 82} 83 84if (angle_enable_wgpu) { 85 wgpu_backend_dir = "libANGLE/renderer/wgpu/" 86 angle_code_affecting_program_serialize += 87 rebase_path(wgpu_backend_sources, angle_root, wgpu_backend_dir) 88} 89 90if (angle_has_frame_capture) { 91 angle_code_affecting_program_serialize += libangle_capture_sources 92} 93