# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

_dart_root = get_path_info(".", "abspath")

declare_args() {
  # Absolute path to the .git folder.
  #
  # This is used in rules that need to refer to `.git/logs/HEAD` to include
  # a hash in the version string. By default the folder is `.git`, but we define
  # it as an argument so it can be overriden by users of `git-worktree` (See
  # Issue #33619).
  #
  # When using git-worktree, you can add
  #
  #    default_git_folder = "/path/to/main/git/repo/.git/worktrees/name/"
  #
  # to out/ReleaseX64/args.gn. The path above can be extracted from the `.git`
  # file under the git worktree folder.
  default_git_folder = "$_dart_root/.git"

  # Whether to enable the SDK hash check that will prevent loading a kernel
  # into a VM which was built with a different SDK.
  verify_sdk_hash = true
}

# The SDK hash to build into VM and kernels.
# The value 0000000000 signifies no hash is set, which will disable the check.
if (verify_sdk_hash) {
  sdk_hash = exec_script("$_dart_root/tools/make_version.py",
                         [ "--format={{GIT_HASH}}" ],
                         "trim string",
                         [
                           "$_dart_root/tools/VERSION",
                           "$_dart_root/tools/utils.py",
                           "$default_git_folder/logs/HEAD",
                         ])
} else {
  sdk_hash = "0000000000"
}
