# 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.gn",
  "//build/config/clang/clang.gni",
  "//build/config/mac/mac_sdk.gni",
  "//build/config/sanitizers/BUILD.gn",
  "//build/prebuilt/BUILD.gn",
  "//build/toolchain/concurrent_jobs.gni",
  "//build/toolchain/zircon/zircon_toolchain.gni",
  "//src/graphics/lib/compute/spinel-rs-sys/BUILD.gn",
  "//topaz/tools/protobuf/protobuf_dart.gni",
  "//zircon/kernel/arch/x86/phys/BUILD.gn",
]

check_system_includes = true
