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

# Require Ninja 1.10.0 to support multiple outputs from a rule with a depfile.
ninja_required_version = "1.10.0"

# 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.
no_check_targets = [ "//third_party/*" ]

# Use of `exec_script()` is discouraged for performance reasons.
# https://fuchsia.dev/fuchsia-src/concepts/build_system/best_practices#exec-script
exec_script_whitelist = [
  "//build/config/clang/clang.gni",
  "//build/config/mac/mac_sdk.gni",
  "//build/config/sanitizers/BUILD.gn",
  "//build/toolchain/concurrent_jobs.gni",
  "//build/toolchain/zircon/zircon_toolchain.gni",
  "//zircon/kernel/arch/x86/phys/BUILD.gn",
]

check_system_includes = true
