# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This file contains variables that can be imported into a repo's dotfile (.gn)
# to make it easier to roll new versions of //build in.

build_dotfile_settings = {
  exec_script_allowlist = [
    "//build/config/android/rules.gni",
    "//build/config/apple/mobile_config.gni",
    "//build/config/chromeos/rules.gni",
    "//build/config/compiler/BUILD.gn",
    "//build/config/compiler/pgo/BUILD.gn",
    "//build/config/gcc/gcc_version.gni",
    "//build/config/host_byteorder.gni",
    "//build/config/ios/ios_sdk.gni",
    "//build/config/ios/rules.gni",
    "//build/config/linux/atk/BUILD.gn",
    "//build/config/linux/atspi2/BUILD.gn",
    "//build/config/linux/BUILD.gn",
    "//build/config/linux/dri/BUILD.gn",
    "//build/config/linux/pkg_config.gni",
    "//build/config/mac/mac_sdk.gni",
    "//build/config/mac/rules.gni",
    "//build/config/posix/BUILD.gn",
    "//build/config/rust.gni",
    "//build/config/win/BUILD.gn",
    "//build/config/win/visual_studio_version.gni",
    "//build/rust/analyze.gni",
    "//build/timestamp.gni",
    "//build/toolchain/apple/toolchain.gni",
    "//build/toolchain/BUILD.gn",
    "//build/toolchain/concurrent_links.gni",
    "//build/toolchain/nacl/BUILD.gn",
    "//build/toolchain/rbe.gni",
    "//build/toolchain/toolchain.gni",
    "//build/toolchain/win/BUILD.gn",
    "//build/toolchain/win/win_toolchain_data.gni",
    "//build/toolchain/zos/BUILD.gn",
    "//build/util/branding.gni",
  ]

  # TODO(crbug.com/389986807) - move other clients to `exec_script_allowlist`
  # so that we don't need to keep supporting `exec_script_whitelist`.
  exec_script_whitelist = exec_script_allowlist
}
