• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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