# 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 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 all source code we control.
check_targets = [
  "//examples/*",
  "//garnet/*",
  "//sdk/*",
  "//src/*",
  "//tools/*",
  "//topaz/*",
  "//vendor/*",
  "//zircon/*",
]
