# Copyright 2019 the V8 project 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 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.

import("//build/dotfile_settings.gni")

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

# 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 = ["*"]

# These are the list of GN files that run exec_script. This whitelist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged except for gypi_to_gn calls.
exec_script_whitelist =
  build_dotfile_settings.exec_script_whitelist + [
    "//v8/build_overrides/build.gni",
    "//node/node_component.gni",
    "//node/node.gni",
    "//node/unofficial.gni",
    "//node/deps/ada/unofficial.gni",
    "//node/deps/base64/unofficial.gni",
    "//node/deps/brotli/unofficial.gni",
    "//node/deps/cares/unofficial.gni",
    "//node/deps/googletest/unofficial.gni",
    "//node/deps/histogram/unofficial.gni",
    "//node/deps/llhttp/unofficial.gni",
    "//node/deps/nghttp2/unofficial.gni",
    "//node/deps/ngtcp2/unofficial.gni",
    "//node/deps/openssl/unofficial.gni",
    "//node/deps/simdjson/unofficial.gni",
    "//node/deps/simdutf/unofficial.gni",
    "//node/deps/uvwasi/unofficial.gni",
    "//node/deps/uv/unofficial.gni",
    "//node/deps/v8/build_overrides/build.gni",
    "//node/src/inspector/unofficial.gni",
    "//node_tests/BUILD.gn",
  ]

# The python interpreter to use by default.
script_executable = "vpython3"

default_args = {
  #########################################################
  # V8 Node-CI options
  node_v8_path = "//v8"

  #########################################################
  # Changeable defaults
  # General build options
  use_sysroot = false
  is_component_build = false

  # Node.js defaults.
  node_report = true
  is_debug = false
  node_use_custom_libcxx = false

  # V8 options.
  v8_embedder_string = "-node.0"

  #########################################################
  # Alternative configuration not supported. Do not change.
  # General build options.
  clang_use_chrome_plugins = false
  icu_use_data_file = false

  # Node.js requires macOS 11 and later.
  mac_deployment_target="11.0"
  mac_min_system_version="11.0"

  # V8 options catering towards Node.js use case.
  v8_expose_symbols = true
  v8_promise_internal_field_count = 1
  v8_use_external_startup_data = false
  v8_enable_javascript_promise_hooks = true
  # The napi_create_external_buffer API of Node-API does not support sandbox and
  # tests relying on it would fail with sandbox on.
  v8_enable_sandbox = false
  # TODO(cbruni, v8:12302): Remove once API is migrated
  v8_scriptormodule_legacy_lifetime = true
}
