1*6dbdd20aSAndroid Build Coastguard Worker#!/bin/bash 2*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 3*6dbdd20aSAndroid Build Coastguard Worker# 4*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*6dbdd20aSAndroid Build Coastguard Worker# 8*6dbdd20aSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*6dbdd20aSAndroid Build Coastguard Worker# 10*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License. 15*6dbdd20aSAndroid Build Coastguard Worker 16*6dbdd20aSAndroid Build Coastguard Workerset -eu 17*6dbdd20aSAndroid Build Coastguard Worker 18*6dbdd20aSAndroid Build Coastguard Worker# For perfetto maintainers. Pulls out demangling-related sources out of 19*6dbdd20aSAndroid Build Coastguard Worker# llvm-project and repackages them as a single tar archive. This works around 20*6dbdd20aSAndroid Build Coastguard Worker# the fact that gitiles, when generating an on-demand archive, uses a current 21*6dbdd20aSAndroid Build Coastguard Worker# timestamp, so the hash of the archive is different every time you fetch. 22*6dbdd20aSAndroid Build Coastguard Worker 23*6dbdd20aSAndroid Build Coastguard Worker# Usage example: 24*6dbdd20aSAndroid Build Coastguard Worker# sh tools/repackage_llvm_demangler.sh 3b4c59c156919902c785ce3cbae0eee2ee53064d 25*6dbdd20aSAndroid Build Coastguard Worker# 26*6dbdd20aSAndroid Build Coastguard Worker# Then upload the tar with "gsutil cp -n -a public-read ... gs://perfetto/...", 27*6dbdd20aSAndroid Build Coastguard Worker# and update install-build-deps. 28*6dbdd20aSAndroid Build Coastguard Worker 29*6dbdd20aSAndroid Build Coastguard WorkerGIT_REF=$1 30*6dbdd20aSAndroid Build Coastguard Worker 31*6dbdd20aSAndroid Build Coastguard WorkerWORK_DIR=$(mktemp -d) 32*6dbdd20aSAndroid Build Coastguard Workerpushd . && cd "${WORK_DIR}" 33*6dbdd20aSAndroid Build Coastguard Worker 34*6dbdd20aSAndroid Build Coastguard WorkerCC_DIR="llvm-project/llvm/lib/Demangle" 35*6dbdd20aSAndroid Build Coastguard WorkerH_DIR="llvm-project/llvm/include/llvm/Demangle" 36*6dbdd20aSAndroid Build Coastguard Worker 37*6dbdd20aSAndroid Build Coastguard WorkerCC_TGZ="Demangle_lib.tgz" 38*6dbdd20aSAndroid Build Coastguard WorkerH_TGZ="Demangle_include.tgz" 39*6dbdd20aSAndroid Build Coastguard Worker 40*6dbdd20aSAndroid Build Coastguard Workercurl -f -L -# "https://llvm.googlesource.com/llvm-project/+archive/${GIT_REF}/llvm/lib/Demangle.tar.gz" -o "${CC_TGZ}" 41*6dbdd20aSAndroid Build Coastguard Workercurl -f -L -# "https://llvm.googlesource.com/llvm-project/+archive/${GIT_REF}/llvm/include/llvm/Demangle.tar.gz" -o "${H_TGZ}" 42*6dbdd20aSAndroid Build Coastguard Worker 43*6dbdd20aSAndroid Build Coastguard Workermkdir -p "${CC_DIR}" 44*6dbdd20aSAndroid Build Coastguard Workermkdir -p "${H_DIR}" 45*6dbdd20aSAndroid Build Coastguard Worker 46*6dbdd20aSAndroid Build Coastguard Workertar xf "${CC_TGZ}" -C "${CC_DIR}" 47*6dbdd20aSAndroid Build Coastguard Workertar xf "${H_TGZ}" -C "${H_DIR}" 48*6dbdd20aSAndroid Build Coastguard Worker 49*6dbdd20aSAndroid Build Coastguard WorkerTAR_NAME="llvm-project-${GIT_REF}.tgz" 50*6dbdd20aSAndroid Build Coastguard Workertar czf "${TAR_NAME}" --sort=name --owner=root:0 --group=root:0 --mtime='UTC 2019-01-01' llvm-project 51*6dbdd20aSAndroid Build Coastguard Worker 52*6dbdd20aSAndroid Build Coastguard WorkerTAR_SHA=$(sha256sum "${TAR_NAME}") 53*6dbdd20aSAndroid Build Coastguard Worker 54*6dbdd20aSAndroid Build Coastguard Workerecho "output file: ${WORK_DIR}/${TAR_NAME}" 55*6dbdd20aSAndroid Build Coastguard Workerecho "contents sha256: ${TAR_SHA}" 56*6dbdd20aSAndroid Build Coastguard Worker 57*6dbdd20aSAndroid Build Coastguard Workerpopd 58