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