# Copyright (c) 2022 The WebRTC 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 in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("../webrtc.gni")

action("registered_field_trials_header") {
  visibility = [ ":*" ]
  script = "field_trials.py"
  args = [
    "header",
    "--output",
    rebase_path(target_gen_dir, root_build_dir) + "/registered_field_trials.h",
  ]
  outputs = [ "$target_gen_dir/registered_field_trials.h" ]
}

rtc_library("registered_field_trials") {
  visibility = [ "*" ]
  sources = get_target_outputs(":registered_field_trials_header")
  deps = [ ":registered_field_trials_header" ]
}
