blob: 922efcbebdf2acca6e2aa82cb694f71db2dfae5a [file] [log] [blame]
# Copyright 2020 The ANGLE Project 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_tests. Off by default.
angle_build_capture_replay_tests = false
# Set the trace directory. Default is traces
angle_capture_replay_test_trace_dir = "traces"
angle_capture_replay_composite_file_id = 1
}
if (angle_build_capture_replay_tests) {
assert(angle_with_capture_by_default, "Must build with capture by default.")
angle_trace_fixture("angle_capture_replay_tests_fixture") {
gl_header = "angle_trace_gl.h"
public_deps = [
"$angle_root:libEGL",
"$angle_root/util:angle_util",
]
}
import(
"${angle_capture_replay_test_trace_dir}/traces${angle_capture_replay_composite_file_id}.gni")
# Build each trace into a module. Use a short name to work around file path limits on Windows.
_trace_counter = 1
_traces = []
foreach(_trace_data, trace_data) {
_trace = _trace_data[0]
_target = "cr_trace_" + _trace_counter
_trace_counter += 1
angle_trace(_target) {
trace_name = _trace
trace_dir = angle_capture_replay_test_trace_dir
trace_ctx = _trace_data[1]
sources = _trace_data[2]
data = _trace_data[3]
fixture = ":angle_capture_replay_tests_fixture"
output_name = _trace
}
_traces += [ ":${_target}" ]
}
angle_executable("capture_replay_tests") {
testonly = true
sources = [ "CaptureReplayTests.cpp" ]
data = [ "${angle_capture_replay_test_trace_dir}/test_names_${angle_capture_replay_composite_file_id}.json" ]
deps = [
":angle_capture_replay_tests_fixture",
"$angle_root:angle_common",
"$angle_root:angle_compression",
"$angle_root/util:angle_frame_capture_test_utils",
] + _traces
configs += [
"$angle_root:library_name_config",
"$angle_root:libANGLE_config",
]
defines = []
if ((is_linux || is_chromeos) && !is_component_build) {
# Set rpath to find shared libs in a non-component build.
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
suppressed_configs += [ "$angle_root:constructor_and_destructor_warnings" ]
# Disable optimization to avoid optimizing huge files.
_trace_folder_relative_path = "./" + angle_capture_replay_test_trace_dir
_data_path = rebase_path(_trace_folder_relative_path, root_out_dir)
defines = [
"ANGLE_CAPTURE_REPLAY_TEST_DATA_DIR=\"${_data_path}\"",
"ANGLE_CAPTURE_REPLAY_TEST_NAMES_PATH=\"${_data_path}/test_names_${angle_capture_replay_composite_file_id}.json\"",
"ANGLE_REPLAY_EXPORT=",
]
include_dirs = [ "." ]
}
} else {
group("capture_replay_tests") {
}
}