blob: 3e65a0983c0b2f6e19c8ca94f7899ab9cd80bed1 [file] [log] [blame]
# 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
# Decide which context to replay, starting with desktop default
angle_capture_replay_sample_context_id = 1
}
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") {
_contextid = angle_capture_replay_sample_context_id
sources =
rebase_path(
read_file(
"capture_replay/angle_capture_context${_contextid}_files.txt",
"list lines"),
".",
"capture_replay") +
[
"capture_replay/CaptureReplay.cpp",
"capture_replay/angle_capture_context${_contextid}.cpp",
"capture_replay/angle_capture_context${_contextid}.h",
]
_data_path = rebase_path("capture_replay", root_out_dir)
defines = [
"ANGLE_CAPTURE_REPLAY_SAMPLE_DATA_DIR=\"${_data_path}\"",
"ANGLE_CAPTURE_REPLAY_SAMPLE_CONTEXT_ID=${_contextid}",
"ANGLE_CAPTURE_REPLAY_SAMPLE_HEADER=angle_capture_context${_contextid}.h",
]
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",
]
}