# This file is used by the GN meta build system to find the root of the source
# tree and to set startup options. For documentation on the values set in this
# file, run "gn help dotfile" at the command line.

# The location of the build configuration file.
buildconfig = "//build/config/BUILDCONFIG.gn"

# The secondary source root is a parallel directory tree where
# GN build files are placed when they can not be placed directly
# in the source tree, e.g. for third party source trees.
secondary_source = "//build/secondary/"

# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
# their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check".
check_targets = [
  #"//apps/*",  # Medium-hard.
  #"//ash/*",  # Medium-hard.
  #"//base/*",  # Needs GN binary changes to work on Android.
  "//blink/*",
  "//breakpad/*",
  "//build/*",
  "//cc/*",

  #"//chrome/*",  # Epic number of errors.
  "//chromecast/*",

  # TODO(brettw): Fix http://crbug.com/460828 and uncomment the following
  # line.
  #"//chrome_elf/*",
  "//cloud_print/*",

  #"//components/*",  # Lots of errors.
  #"//content/*",  # A whole lot of errors.
  "//courgette/*",
  "//crypto/*",
  "//data/*",
  "//dbus/*",
  "//device/*",

  #"//extensions/*",  # Lots of errors.
  #"//gin/*",  # Easy.
  "//google_apis/*",
  "//google_update/*",

  #"//gpu/*",  # Lots of errors.
  "//gpu:*",

  #"//ios/*",
  "//ipc/*",

  #"//jingle/*",
  #"//media/*",  # Lots of errors.
  #"//mojo/*",
  #"//native_client/*",
  #"//net/*",  # Needs GN binary changes to work on Android.

  #"//pdf/*",  # Medium-hard.
  #"//ppapi/*",  # Lots of errors.
  "//printing/*",

  #"//remoting/*",  # Medium-hard.
  #"//rlz/*",  # Needs checking on Windows.
  #"//sandbox/*",  # Medium-hard.
  "//sdch/*",
  "//skia/*",
  "//sql/*",
  "//storage/*",
  "//sync/*",
  "//testing/*",

  #"//third_party/*",  # May not ever want this.
  "//tools/*",

  #"//ui/*",  # Just a few problems.
  "//url/*",
  "//v8/*",
]

# These are the list of GN files that run exec_script. This whitelist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged except for gypi_to_gn calls.
exec_script_whitelist = [
  "//ash/BUILD.gn",
  "//build/config/android/BUILD.gn",
  "//build/config/android/config.gni",
  "//build/config/android/internal_rules.gni",
  "//build/config/android/rules.gni",
  "//build/config/compiler/BUILD.gn",
  "//build/config/gcc/gcc_version.gni",
  "//build/config/ios/ios_sdk.gni",
  "//build/config/linux/BUILD.gn",
  "//build/config/linux/pkg_config.gni",
  "//build/config/mac/mac_sdk.gni",
  "//build/config/win/visual_studio_version.gni",
  "//build/gn_helpers.py",
  "//build/gypi_to_gn.py",
  "//build/toolchain/gcc_toolchain.gni",
  "//build/toolchain/mac/BUILD.gn",
  "//build/toolchain/win/BUILD.gn",
  "//chrome/android/BUILD.gn",
  "//chrome/browser/BUILD.gn",
  "//chrome/browser/chromeos/BUILD.gn",
  "//chrome/browser/extensions/BUILD.gn",
  "//chrome/browser/media/router/BUILD.gn",
  "//chrome/browser/ui/BUILD.gn",
  "//chrome/chrome_tests.gni",
  "//chrome/common/BUILD.gn",
  "//chrome/common/extensions/api/schemas.gni",
  "//chrome/renderer/BUILD.gn",
  "//chrome/test/BUILD.gn",
  "//chrome/utility/BUILD.gn",
  "//chromeos/BUILD.gn",

  # TODO(dgn): Layer violation but breaks the build otherwise, see
  # https://crbug.com/474506
  "//clank/java/BUILD.gn",
  "//clank/native/framework/BUILD.gn",

  "//components/domain_reliability/BUILD.gn",
  "//components/scheduler/scheduler.gni",
  "//components/webui_generator/generator/wug.gni",
  "//content/browser/browser.gni",
  "//content/child/child.gni",
  "//content/common/common.gni",
  "//content/content.gni",
  "//content/public/android/BUILD.gn",
  "//content/renderer/renderer.gni",
  "//content/test/BUILD.gn",
  "//extensions/common/api/schemas.gni",
  "//extensions/extensions.gni",
  "//extensions/shell/app_shell.gni",
  "//extensions/shell/common/api/schemas.gni",
  "//google_apis/BUILD.gn",
  "//gpu/gles2_conform_support/BUILD.gn",
  "//jingle/BUILD.gn",
  "//native_client/build/toolchain/gcc_toolchain.gni",
  "//native_client/build/toolchain/nacl/BUILD.gn",
  "//native_client/build/config/android/BUILD.gn",
  "//native_client/build/config/gcc/gcc_version.gni",
  "//native_client/build/config/ios/ios_sdk.gni",
  "//native_client/build/config/linux/BUILD.gn",
  "//native_client/build/config/linux/pkg_config.gni",
  "//native_client/build/config/mac/mac_sdk.gni",
  "//native_client/build/config/win/visual_studio_version.gni",
  "//native_client/build/toolchain/gcc_toolchain.gni",
  "//native_client/build/toolchain/mac/BUILD.gn",
  "//native_client/build/toolchain/nacl/BUILD.gn",
  "//native_client/build/toolchain/win/BUILD.gn",
  "//net/BUILD.gn",
  "//ppapi/ppapi_sources.gni",
  "//printing/BUILD.gn",
  "//remoting/host/BUILD.gn",
  "//remoting/remoting_srcs.gni",
  "//remoting/remoting_version.gni",
  "//skia/BUILD.gn",
  "//third_party/android_platform/BUILD.gn",
  "//third_party/angle/BUILD.gn",
  "//third_party/boringssl/BUILD.gn",
  "//third_party/cld_2/BUILD.gn",
  "//third_party/cython/rules.gni",
  "//third_party/google_input_tools/inputview.gni",
  "//third_party/harfbuzz-ng/BUILD.gn",
  "//third_party/libaddressinput/BUILD.gn",
  "//third_party/opus/BUILD.gn",
  "//third_party/WebKit/Source/bindings/bindings.gni",
  "//third_party/WebKit/Source/bindings/scripts/scripts.gni",
  "//third_party/WebKit/Source/config.gni",
  "//third_party/WebKit/Source/core/core.gni",
  "//third_party/WebKit/Source/devtools/BUILD.gn",
  "//third_party/WebKit/Source/modules/modules.gni",
  "//third_party/WebKit/Source/platform/BUILD.gn",
  "//third_party/WebKit/Source/platform/platform.gni",
  "//third_party/WebKit/Source/web/BUILD.gn",
  "//third_party/WebKit/Source/wtf/BUILD.gn",
  "//tools/gn/BUILD.gn",
  "//tools/gn/build_settings.h",
  "//tools/gn/command_help.cc",
  "//tools/gn/docs/language.md",
  "//tools/gn/format_test_data/053.gn",
  "//tools/gn/format_test_data/053.golden",
  "//tools/gn/format_test_data/055.gn",
  "//tools/gn/format_test_data/055.golden",
  "//tools/gn/function_exec_script.cc",
  "//tools/gn/gn.gyp",
  "//tools/gn/input_conversion.cc",
  "//tools/gn/misc/emacs/gn.el",
  "//tools/gn/misc/vim/syntax/gn.vim",
  "//tools/gn/setup.cc",
  "//ui/views/BUILD.gn",
]
