# Copyright 2024 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 exports variables containing the currently checked-out git revisions
# of the following third-party repositories:
#
#  - gwp_asan_git_revision
#  - llvm_libc_git_revision
#  - scudo_git_revision
#
# They can be used during soft-migrations in conditional statements to stay
# compatible with both the old and the new revision at the same time, e.g.:
#
#   libc_source_set("scudo-allocator") {
#     ...
#     if (scudo_git_revision != "<git hash of the old revision>") {
#       sources += [ "file_that_only_exists_in_the_new_revision.cpp" ]
#     }
#   }

import("libc.gni")

libc_git_revisions = {
  gwp_asan = read_file("${gwp_asan}/.git/HEAD", "trim string")
  llvm_libc = read_file("${llvm_libc}/.git/HEAD", "trim string")
  scudo = read_file("${scudo}/.git/HEAD", "trim string")
}
