blob: f773dff9f0a8b8438cf6ccf35631d31d662d2d0f [file] [log] [blame] [edit]
#!/bin/bash
# Copies the 'demangle' library, excluding 'DemangleConfig.h', to llvm. If no
# llvm directory is specified, then assume a monorepo layout.
set -e
cd $(dirname $0)
HDRS="ItaniumDemangle.h ItaniumNodes.def StringViewExtras.h Utility.h"
TEST_HDRS="DemangleTestCases.inc"
LLVM_DEMANGLE_DIR=$1
LLVM_TESTING_DIR=
if [[ -z "$LLVM_DEMANGLE_DIR" ]]; then
LLVM_DEMANGLE_DIR="../../../llvm/include/llvm/Demangle"
LLVM_TESTING_DIR=$LLVM_DEMANGLE_DIR/../Testing/Demangle
fi
if [[ ! -d "$LLVM_DEMANGLE_DIR" ]]; then
echo "No such directory: $LLVM_DEMANGLE_DIR" >&2
exit 1
fi
if [[ ! -d "$LLVM_TESTING_DIR" ]]; then
LLVM_TESTING_DIR="../../../llvm/include/llvm/Testing/Demangle"
fi
if [[ ! -d "$LLVM_TESTING_DIR" ]]; then
echo "No such directory: $LLVM_TESTING_DIR" >&2
exit 1
fi
read -p "This will overwrite the copies of $HDRS in $LLVM_DEMANGLE_DIR and $TEST_HDRS in $LLVM_TESTING_DIR; are you sure? [y/N]" -n 1 -r ANSWER
echo
copy_files() {
local src=$1
local dst=$2
local hdrs=$3
cp -f README.txt $dst
chmod -w $dst/README.txt
for I in $hdrs ; do
rm -f $dst/$I
dash=$(echo "$I---------------------------" | cut -c -27 |\
sed 's|[^-]*||')
sed -e '1s|^//=*-* .*\..* -*.*=*// *$|//===--- '"$I $dash"'-*- mode:c++;eval:(read-only-mode) -*-===//|' \
-e '2s|^// *$|// Do not edit! See README.txt.|' \
$src/$I >$dst/$I
chmod -w $dst/$I
done
}
if [[ $ANSWER =~ ^[Yy]$ ]]; then
copy_files . $LLVM_DEMANGLE_DIR $HDRS
copy_files ../../test $LLVM_TESTING_DIR $TEST_HDRS
fi