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_includes 27angle_code_affecting_program_serialize += angle_translator_exported_headers 28angle_code_affecting_program_serialize += angle_translator_sources 29angle_code_affecting_program_serialize += angle_translator_glsl_base_sources 30angle_code_affecting_program_serialize += 31 angle_translator_glsl_and_vulkan_base_sources 32angle_code_affecting_program_serialize += angle_translator_essl_sources 33angle_code_affecting_program_serialize += angle_translator_glsl_sources 34angle_code_affecting_program_serialize += angle_translator_glsl_apple_sources 35angle_code_affecting_program_serialize += angle_translator_hlsl_sources 36angle_code_affecting_program_serialize += angle_translator_lib_spirv_sources 37angle_code_affecting_program_serialize += 38 angle_translator_essl_symbol_table_sources 39angle_code_affecting_program_serialize += angle_translator_lib_msl_sources 40angle_code_affecting_program_serialize += angle_translator_lib_wgsl_sources 41angle_code_affecting_program_serialize += angle_preprocessor_sources 42 43angle_dependencies_affecting_program_serialize = [] 44 45vulkan_backend_dir = "libANGLE/renderer/vulkan/" 46angle_code_affecting_program_serialize += 47 rebase_path(vulkan_backend_sources, angle_root, vulkan_backend_dir) 48 49gl_backend_dir = "libANGLE/renderer/gl/" 50angle_code_affecting_program_serialize += 51 rebase_path(gl_backend_sources, angle_root, gl_backend_dir) 52 53d3d_backend_dir = "libANGLE/renderer/d3d/" 54angle_code_affecting_program_serialize += 55 rebase_path(d3d_shared_sources, angle_root, d3d_backend_dir) 56 57if (angle_enable_d3d9) { 58 angle_code_affecting_program_serialize += 59 rebase_path(d3d9_backend_sources, angle_root, d3d_backend_dir) 60} 61 62if (angle_enable_d3d11) { 63 angle_code_affecting_program_serialize += 64 rebase_path(d3d11_backend_sources, angle_root, d3d_backend_dir) 65} 66 67null_backend_dir = "libANGLE/renderer/null/" 68angle_code_affecting_program_serialize += 69 rebase_path(null_backend_sources, angle_root, null_backend_dir) 70 71if (angle_enable_metal) { 72 metal_backend_dir = "libANGLE/renderer/metal/" 73 angle_code_affecting_program_serialize += 74 rebase_path(metal_backend_sources, angle_root, metal_backend_dir) 75 if (metal_internal_shader_compilation_supported) { 76 angle_dependencies_affecting_program_serialize += 77 [ "src/libANGLE/renderer/metal:angle_metal_internal_shaders" ] 78 } 79} 80 81if (angle_enable_wgpu) { 82 wgpu_backend_dir = "libANGLE/renderer/wgpu/" 83 angle_code_affecting_program_serialize += 84 rebase_path(wgpu_backend_sources, angle_root, wgpu_backend_dir) 85} 86 87if (angle_has_frame_capture) { 88 angle_code_affecting_program_serialize += libangle_capture_sources 89} 90