| # Copyright 2017 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("../gni/angle.gni") |
| |
| declare_args() { |
| # Determines if we build the capture_replay sample. Off by default. |
| angle_build_capture_replay_sample = false |
| } |
| |
| angle_executable("shader_translator") { |
| sources = [ |
| "shader_translator/shader_translator.cpp", |
| ] |
| include_dirs = [ "../include" ] |
| deps = [ |
| "../:translator", |
| ] |
| } |
| |
| config("sample_util_config") { |
| include_dirs = [ "sample_util" ] |
| } |
| |
| angle_static_library("sample_util") { |
| sources = [ |
| "sample_util/SampleApplication.cpp", |
| "sample_util/SampleApplication.h", |
| "sample_util/texture_utils.cpp", |
| "sample_util/texture_utils.h", |
| "sample_util/tga_utils.cpp", |
| "sample_util/tga_utils.h", |
| ] |
| data_deps = [ |
| "../:libEGL", |
| "../:libGLESv1_CM", |
| "../:libGLESv2", |
| ] |
| public_deps = [ |
| "../:angle_common", |
| "../:angle_util", |
| "../:angle_util_loader_headers", |
| ] |
| configs += [ "../:library_name_config" ] |
| public_configs = [ |
| ":sample_util_config", |
| "../:no_gl_prototypes", |
| ] |
| } |
| |
| template("angle_sample") { |
| if (defined(invoker.data)) { |
| copy(target_name + "_data") { |
| sources = invoker.data |
| outputs = [ |
| "$root_out_dir/{{source_file_part}}", |
| ] |
| } |
| } |
| |
| angle_executable(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "cflags", |
| "defines", |
| "sources", |
| ]) |
| deps = [ |
| ":sample_util", |
| ] |
| if (defined(invoker.data)) { |
| deps += [ ":${target_name}_data" ] |
| } |
| |
| if (defined(invoker.suppressed_configs)) { |
| suppressed_configs += invoker.suppressed_configs |
| } |
| } |
| } |
| |
| angle_sample("hello_triangle") { |
| sources = [ |
| "hello_triangle/HelloTriangle.cpp", |
| ] |
| } |
| |
| angle_sample("mip_map_2d") { |
| sources = [ |
| "mip_map_2d/MipMap2D.cpp", |
| ] |
| } |
| |
| angle_sample("multi_texture") { |
| sources = [ |
| "multi_texture/MultiTexture.cpp", |
| ] |
| data = [ |
| "multi_texture/basemap.tga", |
| "multi_texture/lightmap.tga", |
| ] |
| } |
| |
| angle_sample("multi_window") { |
| sources = [ |
| "multi_window/MultiWindow.cpp", |
| ] |
| } |
| |
| angle_sample("multiple_draw_buffers") { |
| sources = [ |
| "multiple_draw_buffers/MultipleDrawBuffers.cpp", |
| ] |
| data = [ |
| "multiple_draw_buffers/multiple_draw_buffers_copy_fs.glsl", |
| "multiple_draw_buffers/multiple_draw_buffers_fs.glsl", |
| "multiple_draw_buffers/multiple_draw_buffers_vs.glsl", |
| ] |
| } |
| |
| angle_sample("multiview") { |
| sources = [ |
| "multiview/Multiview.cpp", |
| ] |
| } |
| |
| angle_sample("particle_system") { |
| sources = [ |
| "particle_system/ParticleSystem.cpp", |
| ] |
| data = [ |
| "particle_system/smoke.tga", |
| ] |
| } |
| |
| angle_sample("post_sub_buffer") { |
| sources = [ |
| "post_sub_buffer/PostSubBuffer.cpp", |
| ] |
| } |
| |
| angle_sample("simple_instancing") { |
| sources = [ |
| "simple_instancing/SimpleInstancing.cpp", |
| ] |
| } |
| |
| angle_sample("simple_texture_2d") { |
| sources = [ |
| "simple_texture_2d/SimpleTexture2D.cpp", |
| ] |
| } |
| |
| angle_sample("simple_texture_cubemap") { |
| sources = [ |
| "simple_texture_cubemap/SimpleTextureCubemap.cpp", |
| ] |
| } |
| |
| angle_sample("simple_vertex_shader") { |
| sources = [ |
| "simple_vertex_shader/SimpleVertexShader.cpp", |
| ] |
| } |
| |
| angle_sample("stencil_operations") { |
| sources = [ |
| "stencil_operations/StencilOperations.cpp", |
| ] |
| } |
| |
| angle_sample("tex_redef_microbench") { |
| sources = [ |
| "tex_redef_microbench/TexRedefMicroBench.cpp", |
| ] |
| } |
| |
| angle_sample("texture_wrap") { |
| sources = [ |
| "texture_wrap/TextureWrap.cpp", |
| ] |
| } |
| |
| angle_sample("tri_fan_microbench") { |
| sources = [ |
| "tri_fan_microbench/TriFanMicroBench.cpp", |
| ] |
| } |
| |
| angle_sample("window_test") { |
| sources = [ |
| "WindowTest/WindowTest.cpp", |
| ] |
| } |
| |
| angle_sample("gles1_hello_triangle") { |
| sources = [ |
| "gles1/HelloTriangle.cpp", |
| ] |
| } |
| |
| angle_sample("gles1_simple_texture_2d") { |
| sources = [ |
| "gles1/SimpleTexture2D.cpp", |
| ] |
| } |
| |
| angle_sample("gles1_simple_lighting") { |
| sources = [ |
| "gles1/SimpleLighting.cpp", |
| ] |
| } |
| |
| angle_sample("gles1_flat_shading") { |
| sources = [ |
| "gles1/FlatShading.cpp", |
| ] |
| } |
| |
| angle_sample("gles1_draw_texture") { |
| sources = [ |
| "gles1/DrawTexture.cpp", |
| ] |
| } |
| |
| if (angle_build_capture_replay_sample) { |
| # The capture_replay sample is set up to work with a single Context. |
| # To use the capture replay sample first move your capture sources into |
| # the capture_replay folder and enable the gn arg above. |
| angle_sample("capture_replay_sample") { |
| sources = |
| rebase_path(read_file("capture_replay/angle_capture_context1_files.txt", |
| "list lines"), ".", "capture_replay") + |
| [ |
| "capture_replay/CaptureReplay.cpp", |
| "capture_replay/angle_capture_context1.cpp", |
| "capture_replay/angle_capture_context1.h", |
| ] |
| |
| _data_path = rebase_path("capture_replay", root_out_dir) |
| defines = [ "ANGLE_CAPTURE_REPLAY_SAMPLE_DATA_DIR=\"${_data_path}\"" ] |
| suppressed_configs = [ "$angle_root:constructor_and_destructor_warnings" ] |
| } |
| } |
| |
| group("all") { |
| testonly = true |
| deps = [ |
| ":gles1_draw_texture", |
| ":gles1_flat_shading", |
| ":gles1_hello_triangle", |
| ":gles1_simple_lighting", |
| ":gles1_simple_texture_2d", |
| ":hello_triangle", |
| ":mip_map_2d", |
| ":multi_texture", |
| ":multi_window", |
| ":multiple_draw_buffers", |
| ":multiview", |
| ":particle_system", |
| ":post_sub_buffer", |
| ":sample_util", |
| ":simple_instancing", |
| ":simple_texture_2d", |
| ":simple_texture_cubemap", |
| ":simple_vertex_shader", |
| ":stencil_operations", |
| ":tex_redef_microbench", |
| ":texture_wrap", |
| ":tri_fan_microbench", |
| ":window_test", |
| ] |
| } |