# 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/*",
  "//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/*",  # Easy.
  "//google_update/*",

  #"//gpu/*",  # Lots of errors.
  #"//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/*",
]
