# 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.
#
# Contains the build rules for confidential trace tests.

import("../../../gni/angle.gni")

angle_shared_library("angle_restricted_trace_loader") {
  sources = [
    "restricted_traces_autogen.h",
    "trace_egl_loader_autogen.cpp",
    "trace_egl_loader_autogen.h",
    "trace_gles_loader_autogen.cpp",
    "trace_gles_loader_autogen.h",
  ]
  defines = [ "ANGLE_TRACE_LOADER_IMPLEMENTATION" ]
  deps = [ "$angle_root:includes" ]
}

angle_trace_fixture("angle_restricted_trace_fixture") {
  gl_header = "angle_trace_gl.h"
  public_deps = [ ":angle_restricted_trace_loader" ]
  public_configs = [ "$angle_root:no_gl_prototypes" ]
}

# Imports "angle_restricted_traces"
import("restricted_traces_autogen.gni")
_traces = []
_trace_headers = []

foreach(_trace_data, angle_restricted_traces) {
  _trace = _trace_data[0]
  _target = "angle_restricted_trace_${_trace}"

  angle_trace(_target) {
    trace_name = _trace
    trace_dir = _trace
    trace_ctx = _trace_data[1]
    sources = _trace_data[2]
    fixture = ":angle_restricted_trace_fixture"
  }

  _traces += [ ":${_target}" ]
  _trace_headers += [ ":${_target}_headers" ]
}

angle_shared_library("angle_restricted_traces") {
  testonly = true

  sources = [
    "restricted_traces_autogen.cpp",
    "restricted_traces_autogen.h",
  ]

  data_deps = _traces
  defines = [ "ANGLE_TRACE_IMPLEMENTATION" ]

  deps = [
           "$angle_root:angle_common",
           "$angle_root/util:angle_util",
         ] + _trace_headers

  public_deps = [ ":angle_restricted_trace_loader" ]
}

group("goldctl") {
  data = []

  # Because this links to a CIPD dependency, which is a symlink on Unix
  # platforms, refer to the actual executable rather than the whole directory;
  # copying the whole directory doesn't work, at least with "mb.py zip".
  if (is_win) {
    data += [ "//tools/skia_goldctl/win/goldctl.exe" ]
  } else if (is_mac) {
    data += [ "//tools/skia_goldctl/mac/goldctl" ]
  } else {
    data += [ "//tools/skia_goldctl/linux/goldctl" ]
  }
}

group("angle_restricted_trace_gold_tests") {
  testonly = true
  data_deps = [
    ":goldctl",
    "$angle_root/src/tests:angle_perftests",
    "$angle_root/src/tests:angle_system_info_test",
  ]
  data = [
    "restricted_trace_gold_tests.py",
    "restricted_traces.json",
    "skia_gold/",
    "//build/skia_gold_common/",
    "//testing/scripts/common.py",
    "//testing/xvfb.py",
  ]
}
