| # 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("//build/checkout.gni") |
| import("libc.gni") |
| |
| _gwp_asan_git_path = "${gwp_asan}/.git" |
| _llvm_libc_git_path = "${llvm_libc}/.git" |
| _scudo_git_path = "${scudo}/.git" |
| |
| # If submodules are in use, their .git is actually a text file pointing to the |
| # real git directory, which is stored inside the root project's .git directory. |
| # For instance, third_party/scudo/src/.git will contain: |
| # gitdir: ../../../.git/modules/third_party%2fscudo%2fsrc |
| if (submodules) { |
| _gwp_asan_git_link = read_file(_gwp_asan_git_path, "string") |
| _gwp_asan_git_link_split = string_split(_gwp_asan_git_link) |
| assert(_gwp_asan_git_link_split[0] == "gitdir:") |
| _gwp_asan_git_path = "${gwp_asan}/${_gwp_asan_git_link_split[1]}" |
| |
| _llvm_libc_git_link = read_file(_llvm_libc_git_path, "string") |
| _llvm_libc_git_link_split = string_split(_llvm_libc_git_link) |
| assert(_llvm_libc_git_link_split[0] == "gitdir:") |
| _llvm_libc_git_path = "${llvm_libc}/${_llvm_libc_git_link_split[1]}" |
| |
| _scudo_git_link = read_file(_scudo_git_path, "string") |
| _scudo_git_link_split = string_split(_scudo_git_link) |
| assert(_scudo_git_link_split[0] == "gitdir:") |
| _scudo_git_path = "${scudo}/${_scudo_git_link_split[1]}" |
| } |
| |
| libc_git_revisions = { |
| gwp_asan = read_file("${_gwp_asan_git_path}/HEAD", "trim string") |
| llvm_libc = read_file("${_llvm_libc_git_path}/HEAD", "trim string") |
| scudo = read_file("${_scudo_git_path}/HEAD", "trim string") |
| } |