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

# This file lives at //build/gn/dotfile.gn for maintenance purposes.
# It's actually used by GN via a symlink at //.gn, which is installed
# by a jiri hook.  This file directs GN to all the other key files.

# 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/"

# The source root location.
root = "//build/gn"

# The executable used to execute scripts in action and exec_script.
script_executable = "/usr/bin/env"

# These arguments override the default values for items in a declare_args
# block. "gn args" in turn can override these.
default_args = {
  # Disable Skia settings not needed for host builds.
  skia_enable_flutter_defines = true
  skia_enable_pdf = false
  skia_use_dng_sdk = false
  skia_use_expat = false
  skia_use_fontconfig = false
  skia_use_libwebp = false
  skia_use_sfntly = false
  skia_use_x11 = false
}

# Enable checking for the layers.
check_targets = [
  "//garnet/*",
  "//peridot/*",
  "//topaz/*",
  "//vendor/*",
  "//zircon/*",
]
