xref: /aosp_15_r20/external/angle/samples/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("../gni/angle.gni")
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
8*8975f5c5SAndroid Build Coastguard Worker  # Determines if we build the capture_replay sample. Off by default.
9*8975f5c5SAndroid Build Coastguard Worker  angle_build_capture_replay_sample = false
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker  # Decide which context to replay, starting with desktop default
12*8975f5c5SAndroid Build Coastguard Worker  angle_capture_replay_sample_context_id = 1
13*8975f5c5SAndroid Build Coastguard Worker}
14*8975f5c5SAndroid Build Coastguard Worker
15*8975f5c5SAndroid Build Coastguard Workerconfig("sample_util_config") {
16*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "sample_util" ]
17*8975f5c5SAndroid Build Coastguard Worker}
18*8975f5c5SAndroid Build Coastguard Worker
19*8975f5c5SAndroid Build Coastguard Workerangle_source_set("sample_util") {
20*8975f5c5SAndroid Build Coastguard Worker  testonly = true
21*8975f5c5SAndroid Build Coastguard Worker  sources = [
22*8975f5c5SAndroid Build Coastguard Worker    "sample_util/SampleApplication.cpp",
23*8975f5c5SAndroid Build Coastguard Worker    "sample_util/SampleApplication.h",
24*8975f5c5SAndroid Build Coastguard Worker    "sample_util/texture_utils.cpp",
25*8975f5c5SAndroid Build Coastguard Worker    "sample_util/texture_utils.h",
26*8975f5c5SAndroid Build Coastguard Worker    "sample_util/tga_utils.cpp",
27*8975f5c5SAndroid Build Coastguard Worker    "sample_util/tga_utils.h",
28*8975f5c5SAndroid Build Coastguard Worker  ]
29*8975f5c5SAndroid Build Coastguard Worker  data_deps = [
30*8975f5c5SAndroid Build Coastguard Worker    "../:libEGL",
31*8975f5c5SAndroid Build Coastguard Worker    "../:libGLESv1_CM",
32*8975f5c5SAndroid Build Coastguard Worker    "../:libGLESv2",
33*8975f5c5SAndroid Build Coastguard Worker  ]
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Worker  public_deps = [
36*8975f5c5SAndroid Build Coastguard Worker    "../:angle_common",
37*8975f5c5SAndroid Build Coastguard Worker    "../util:angle_test_utils",
38*8975f5c5SAndroid Build Coastguard Worker    "../util:angle_util",
39*8975f5c5SAndroid Build Coastguard Worker    "../util:angle_util_loader_headers",
40*8975f5c5SAndroid Build Coastguard Worker  ]
41*8975f5c5SAndroid Build Coastguard Worker  configs += [ "../:library_name_config" ]
42*8975f5c5SAndroid Build Coastguard Worker  public_configs = [
43*8975f5c5SAndroid Build Coastguard Worker    ":sample_util_config",
44*8975f5c5SAndroid Build Coastguard Worker    "../:no_gl_prototypes",
45*8975f5c5SAndroid Build Coastguard Worker  ]
46*8975f5c5SAndroid Build Coastguard Worker}
47*8975f5c5SAndroid Build Coastguard Worker
48*8975f5c5SAndroid Build Coastguard Workertemplate("angle_sample") {
49*8975f5c5SAndroid Build Coastguard Worker  if (defined(invoker.data)) {
50*8975f5c5SAndroid Build Coastguard Worker    copy(target_name + "_data") {
51*8975f5c5SAndroid Build Coastguard Worker      sources = invoker.data
52*8975f5c5SAndroid Build Coastguard Worker      outputs = [ "$root_out_dir/{{source_file_part}}" ]
53*8975f5c5SAndroid Build Coastguard Worker    }
54*8975f5c5SAndroid Build Coastguard Worker  }
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Worker  angle_executable(target_name) {
57*8975f5c5SAndroid Build Coastguard Worker    testonly = true
58*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker,
59*8975f5c5SAndroid Build Coastguard Worker                           [
60*8975f5c5SAndroid Build Coastguard Worker                             "cflags",
61*8975f5c5SAndroid Build Coastguard Worker                             "data",
62*8975f5c5SAndroid Build Coastguard Worker                             "defines",
63*8975f5c5SAndroid Build Coastguard Worker                             "deps",
64*8975f5c5SAndroid Build Coastguard Worker                             "sources",
65*8975f5c5SAndroid Build Coastguard Worker                           ])
66*8975f5c5SAndroid Build Coastguard Worker    deps += [ ":sample_util" ]
67*8975f5c5SAndroid Build Coastguard Worker    if (defined(invoker.data)) {
68*8975f5c5SAndroid Build Coastguard Worker      deps += [ ":${target_name}_data" ]
69*8975f5c5SAndroid Build Coastguard Worker    }
70*8975f5c5SAndroid Build Coastguard Worker
71*8975f5c5SAndroid Build Coastguard Worker    if (defined(invoker.configs)) {
72*8975f5c5SAndroid Build Coastguard Worker      configs += invoker.configs
73*8975f5c5SAndroid Build Coastguard Worker    }
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Worker    if (defined(invoker.suppressed_configs)) {
76*8975f5c5SAndroid Build Coastguard Worker      suppressed_configs += invoker.suppressed_configs
77*8975f5c5SAndroid Build Coastguard Worker    }
78*8975f5c5SAndroid Build Coastguard Worker
79*8975f5c5SAndroid Build Coastguard Worker    if ((is_linux || is_chromeos) && !is_component_build) {
80*8975f5c5SAndroid Build Coastguard Worker      # Set rpath to find shared libs in a non-component build.
81*8975f5c5SAndroid Build Coastguard Worker      configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
82*8975f5c5SAndroid Build Coastguard Worker    }
83*8975f5c5SAndroid Build Coastguard Worker  }
84*8975f5c5SAndroid Build Coastguard Worker}
85*8975f5c5SAndroid Build Coastguard Worker
86*8975f5c5SAndroid Build Coastguard Workerset_defaults("angle_sample") {
87*8975f5c5SAndroid Build Coastguard Worker  deps = []
88*8975f5c5SAndroid Build Coastguard Worker}
89*8975f5c5SAndroid Build Coastguard Worker
90*8975f5c5SAndroid Build Coastguard Workerangle_sample("hello_triangle") {
91*8975f5c5SAndroid Build Coastguard Worker  sources = [ "hello_triangle/HelloTriangle.cpp" ]
92*8975f5c5SAndroid Build Coastguard Worker}
93*8975f5c5SAndroid Build Coastguard Worker
94*8975f5c5SAndroid Build Coastguard Workerangle_sample("mip_map_2d") {
95*8975f5c5SAndroid Build Coastguard Worker  sources = [ "mip_map_2d/MipMap2D.cpp" ]
96*8975f5c5SAndroid Build Coastguard Worker}
97*8975f5c5SAndroid Build Coastguard Worker
98*8975f5c5SAndroid Build Coastguard Workerangle_sample("multi_texture") {
99*8975f5c5SAndroid Build Coastguard Worker  sources = [ "multi_texture/MultiTexture.cpp" ]
100*8975f5c5SAndroid Build Coastguard Worker  data = [
101*8975f5c5SAndroid Build Coastguard Worker    "multi_texture/basemap.tga",
102*8975f5c5SAndroid Build Coastguard Worker    "multi_texture/lightmap.tga",
103*8975f5c5SAndroid Build Coastguard Worker  ]
104*8975f5c5SAndroid Build Coastguard Worker}
105*8975f5c5SAndroid Build Coastguard Worker
106*8975f5c5SAndroid Build Coastguard Workerangle_sample("multi_window") {
107*8975f5c5SAndroid Build Coastguard Worker  sources = [ "multi_window/MultiWindow.cpp" ]
108*8975f5c5SAndroid Build Coastguard Worker}
109*8975f5c5SAndroid Build Coastguard Worker
110*8975f5c5SAndroid Build Coastguard Workerangle_sample("multiple_draw_buffers") {
111*8975f5c5SAndroid Build Coastguard Worker  sources = [ "multiple_draw_buffers/MultipleDrawBuffers.cpp" ]
112*8975f5c5SAndroid Build Coastguard Worker  data = [
113*8975f5c5SAndroid Build Coastguard Worker    "multiple_draw_buffers/multiple_draw_buffers_copy_fs.glsl",
114*8975f5c5SAndroid Build Coastguard Worker    "multiple_draw_buffers/multiple_draw_buffers_fs.glsl",
115*8975f5c5SAndroid Build Coastguard Worker    "multiple_draw_buffers/multiple_draw_buffers_vs.glsl",
116*8975f5c5SAndroid Build Coastguard Worker  ]
117*8975f5c5SAndroid Build Coastguard Worker}
118*8975f5c5SAndroid Build Coastguard Worker
119*8975f5c5SAndroid Build Coastguard Workerangle_sample("multiview") {
120*8975f5c5SAndroid Build Coastguard Worker  sources = [ "multiview/Multiview.cpp" ]
121*8975f5c5SAndroid Build Coastguard Worker}
122*8975f5c5SAndroid Build Coastguard Worker
123*8975f5c5SAndroid Build Coastguard Workerangle_sample("particle_system") {
124*8975f5c5SAndroid Build Coastguard Worker  sources = [ "particle_system/ParticleSystem.cpp" ]
125*8975f5c5SAndroid Build Coastguard Worker  data = [ "particle_system/smoke.tga" ]
126*8975f5c5SAndroid Build Coastguard Worker}
127*8975f5c5SAndroid Build Coastguard Worker
128*8975f5c5SAndroid Build Coastguard Workerangle_sample("post_sub_buffer") {
129*8975f5c5SAndroid Build Coastguard Worker  sources = [ "post_sub_buffer/PostSubBuffer.cpp" ]
130*8975f5c5SAndroid Build Coastguard Worker}
131*8975f5c5SAndroid Build Coastguard Worker
132*8975f5c5SAndroid Build Coastguard Workerangle_sample("simple_instancing") {
133*8975f5c5SAndroid Build Coastguard Worker  sources = [ "simple_instancing/SimpleInstancing.cpp" ]
134*8975f5c5SAndroid Build Coastguard Worker}
135*8975f5c5SAndroid Build Coastguard Worker
136*8975f5c5SAndroid Build Coastguard Workerangle_sample("simple_texture_2d") {
137*8975f5c5SAndroid Build Coastguard Worker  sources = [ "simple_texture_2d/SimpleTexture2D.cpp" ]
138*8975f5c5SAndroid Build Coastguard Worker}
139*8975f5c5SAndroid Build Coastguard Worker
140*8975f5c5SAndroid Build Coastguard Workerangle_sample("simple_texture_cubemap") {
141*8975f5c5SAndroid Build Coastguard Worker  sources = [ "simple_texture_cubemap/SimpleTextureCubemap.cpp" ]
142*8975f5c5SAndroid Build Coastguard Worker}
143*8975f5c5SAndroid Build Coastguard Worker
144*8975f5c5SAndroid Build Coastguard Workerangle_sample("simple_vertex_shader") {
145*8975f5c5SAndroid Build Coastguard Worker  sources = [ "simple_vertex_shader/SimpleVertexShader.cpp" ]
146*8975f5c5SAndroid Build Coastguard Worker}
147*8975f5c5SAndroid Build Coastguard Worker
148*8975f5c5SAndroid Build Coastguard Workerangle_sample("stencil_operations") {
149*8975f5c5SAndroid Build Coastguard Worker  sources = [ "stencil_operations/StencilOperations.cpp" ]
150*8975f5c5SAndroid Build Coastguard Worker}
151*8975f5c5SAndroid Build Coastguard Worker
152*8975f5c5SAndroid Build Coastguard Workerangle_sample("tex_redef_microbench") {
153*8975f5c5SAndroid Build Coastguard Worker  sources = [ "tex_redef_microbench/TexRedefMicroBench.cpp" ]
154*8975f5c5SAndroid Build Coastguard Worker}
155*8975f5c5SAndroid Build Coastguard Worker
156*8975f5c5SAndroid Build Coastguard Workerangle_sample("texture_wrap") {
157*8975f5c5SAndroid Build Coastguard Worker  sources = [ "texture_wrap/TextureWrap.cpp" ]
158*8975f5c5SAndroid Build Coastguard Worker}
159*8975f5c5SAndroid Build Coastguard Worker
160*8975f5c5SAndroid Build Coastguard Workerangle_sample("tri_fan_microbench") {
161*8975f5c5SAndroid Build Coastguard Worker  sources = [ "tri_fan_microbench/TriFanMicroBench.cpp" ]
162*8975f5c5SAndroid Build Coastguard Worker}
163*8975f5c5SAndroid Build Coastguard Worker
164*8975f5c5SAndroid Build Coastguard Workerangle_sample("window_test") {
165*8975f5c5SAndroid Build Coastguard Worker  sources = [ "WindowTest/WindowTest.cpp" ]
166*8975f5c5SAndroid Build Coastguard Worker}
167*8975f5c5SAndroid Build Coastguard Worker
168*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_hello_triangle") {
169*8975f5c5SAndroid Build Coastguard Worker  sources = [ "gles1/HelloTriangle.cpp" ]
170*8975f5c5SAndroid Build Coastguard Worker}
171*8975f5c5SAndroid Build Coastguard Worker
172*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_simple_texture_2d") {
173*8975f5c5SAndroid Build Coastguard Worker  sources = [ "gles1/SimpleTexture2D.cpp" ]
174*8975f5c5SAndroid Build Coastguard Worker}
175*8975f5c5SAndroid Build Coastguard Worker
176*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_simple_lighting") {
177*8975f5c5SAndroid Build Coastguard Worker  sources = [ "gles1/SimpleLighting.cpp" ]
178*8975f5c5SAndroid Build Coastguard Worker}
179*8975f5c5SAndroid Build Coastguard Worker
180*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_flat_shading") {
181*8975f5c5SAndroid Build Coastguard Worker  sources = [ "gles1/FlatShading.cpp" ]
182*8975f5c5SAndroid Build Coastguard Worker}
183*8975f5c5SAndroid Build Coastguard Worker
184*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_draw_texture") {
185*8975f5c5SAndroid Build Coastguard Worker  sources = [ "gles1/DrawTexture.cpp" ]
186*8975f5c5SAndroid Build Coastguard Worker}
187*8975f5c5SAndroid Build Coastguard Worker
188*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles1_torus_lighting") {
189*8975f5c5SAndroid Build Coastguard Worker  sources = [
190*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/TorusLightingES1.cpp",
191*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/torus.h",
192*8975f5c5SAndroid Build Coastguard Worker  ]
193*8975f5c5SAndroid Build Coastguard Worker}
194*8975f5c5SAndroid Build Coastguard Worker
195*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles2_torus_lighting") {
196*8975f5c5SAndroid Build Coastguard Worker  sources = [
197*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/TorusLightingES2.cpp",
198*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/torus.h",
199*8975f5c5SAndroid Build Coastguard Worker  ]
200*8975f5c5SAndroid Build Coastguard Worker}
201*8975f5c5SAndroid Build Coastguard Worker
202*8975f5c5SAndroid Build Coastguard Workerangle_sample("gles3_torus_bufferstorage") {
203*8975f5c5SAndroid Build Coastguard Worker  sources = [
204*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/TorusBufferStorage.cpp",
205*8975f5c5SAndroid Build Coastguard Worker    "torus_lighting/torus.h",
206*8975f5c5SAndroid Build Coastguard Worker  ]
207*8975f5c5SAndroid Build Coastguard Worker}
208*8975f5c5SAndroid Build Coastguard Worker
209*8975f5c5SAndroid Build Coastguard Workerangle_sample("multiple_contexts") {
210*8975f5c5SAndroid Build Coastguard Worker  sources = [ "multiple_contexts/MultipleContexts.cpp" ]
211*8975f5c5SAndroid Build Coastguard Worker}
212*8975f5c5SAndroid Build Coastguard Worker
213*8975f5c5SAndroid Build Coastguard Workerif (angle_build_capture_replay_sample) {
214*8975f5c5SAndroid Build Coastguard Worker  angle_sample("capture_replay_sample") {
215*8975f5c5SAndroid Build Coastguard Worker    sources = [ "capture_replay/CaptureReplay.cpp" ]
216*8975f5c5SAndroid Build Coastguard Worker
217*8975f5c5SAndroid Build Coastguard Worker    deps = [
218*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_compression",
219*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_frame_capture_test_utils",
220*8975f5c5SAndroid Build Coastguard Worker      "capture_replay:capture_replay_sample_trace",
221*8975f5c5SAndroid Build Coastguard Worker    ]
222*8975f5c5SAndroid Build Coastguard Worker
223*8975f5c5SAndroid Build Coastguard Worker    _data_path = rebase_path("capture_replay", root_out_dir)
224*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_CAPTURE_REPLAY_SAMPLE_DATA_DIR=\"${_data_path}\"" ]
225*8975f5c5SAndroid Build Coastguard Worker
226*8975f5c5SAndroid Build Coastguard Worker    suppressed_configs = [ "$angle_root:constructor_and_destructor_warnings" ]
227*8975f5c5SAndroid Build Coastguard Worker    configs = []
228*8975f5c5SAndroid Build Coastguard Worker
229*8975f5c5SAndroid Build Coastguard Worker    # Disable optimization to avoid optimizing huge files.
230*8975f5c5SAndroid Build Coastguard Worker    if (!is_debug) {
231*8975f5c5SAndroid Build Coastguard Worker      suppressed_configs += [ "//build/config/compiler:default_optimization" ]
232*8975f5c5SAndroid Build Coastguard Worker      configs += [ "//build/config/compiler:no_optimize" ]
233*8975f5c5SAndroid Build Coastguard Worker    }
234*8975f5c5SAndroid Build Coastguard Worker  }
235*8975f5c5SAndroid Build Coastguard Worker}
236*8975f5c5SAndroid Build Coastguard Worker
237*8975f5c5SAndroid Build Coastguard Workergroup("angle_samples") {
238*8975f5c5SAndroid Build Coastguard Worker  testonly = true
239*8975f5c5SAndroid Build Coastguard Worker  deps = []
240*8975f5c5SAndroid Build Coastguard Worker  if (!is_ios) {
241*8975f5c5SAndroid Build Coastguard Worker    deps += [
242*8975f5c5SAndroid Build Coastguard Worker      ":gles1_draw_texture",
243*8975f5c5SAndroid Build Coastguard Worker      ":gles1_flat_shading",
244*8975f5c5SAndroid Build Coastguard Worker      ":gles1_hello_triangle",
245*8975f5c5SAndroid Build Coastguard Worker      ":gles1_simple_lighting",
246*8975f5c5SAndroid Build Coastguard Worker      ":gles1_simple_texture_2d",
247*8975f5c5SAndroid Build Coastguard Worker      ":gles1_torus_lighting",
248*8975f5c5SAndroid Build Coastguard Worker      ":gles2_torus_lighting",
249*8975f5c5SAndroid Build Coastguard Worker      ":gles3_torus_bufferstorage",
250*8975f5c5SAndroid Build Coastguard Worker      ":hello_triangle",
251*8975f5c5SAndroid Build Coastguard Worker      ":mip_map_2d",
252*8975f5c5SAndroid Build Coastguard Worker      ":multi_texture",
253*8975f5c5SAndroid Build Coastguard Worker      ":multi_window",
254*8975f5c5SAndroid Build Coastguard Worker      ":multiple_contexts",
255*8975f5c5SAndroid Build Coastguard Worker      ":multiple_draw_buffers",
256*8975f5c5SAndroid Build Coastguard Worker      ":multiview",
257*8975f5c5SAndroid Build Coastguard Worker      ":particle_system",
258*8975f5c5SAndroid Build Coastguard Worker      ":post_sub_buffer",
259*8975f5c5SAndroid Build Coastguard Worker      ":sample_util",
260*8975f5c5SAndroid Build Coastguard Worker      ":simple_instancing",
261*8975f5c5SAndroid Build Coastguard Worker      ":simple_texture_2d",
262*8975f5c5SAndroid Build Coastguard Worker      ":simple_texture_cubemap",
263*8975f5c5SAndroid Build Coastguard Worker      ":simple_vertex_shader",
264*8975f5c5SAndroid Build Coastguard Worker      ":stencil_operations",
265*8975f5c5SAndroid Build Coastguard Worker      ":tex_redef_microbench",
266*8975f5c5SAndroid Build Coastguard Worker      ":texture_wrap",
267*8975f5c5SAndroid Build Coastguard Worker      ":tri_fan_microbench",
268*8975f5c5SAndroid Build Coastguard Worker      ":window_test",
269*8975f5c5SAndroid Build Coastguard Worker    ]
270*8975f5c5SAndroid Build Coastguard Worker  }
271*8975f5c5SAndroid Build Coastguard Worker}
272