forked from mapbox/XcodeClangFormat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure
executable file
·66 lines (56 loc) · 2.17 KB
/
configure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env bash
set -e
set -o pipefail
set -u
LLVM_VERSION=15.0.0
function llvmHash() {
arch=$1
if [ "$arch" = "arm64" ]; then
echo "76fbc61512e0d8002e2a127d932d02bc49722fecca4ebf71ec6230e3aff65356"
else
echo "21f964fe2ff70847d704cac98fa4dd19bd2bd5b126c9a9bca3bad9855e4a413e"
fi
}
function llvmURL() {
arch=$1
if [ "$arch" = "arm64" ]; then
echo "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-${MAC_OS_ARCH}-apple-darwin21.0.tar.xz"
else
echo "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-${MAC_OS_ARCH}-apple-darwin.tar.xz"
fi
}
#architecture should be passed as parameter or script will use host Mac architecture
MAC_OS_ARCH=${1:-$(uname -m)}
LLVM_HASH=$(llvmHash $MAC_OS_ARCH)
LLVM_CONFIG=${LLVM_CONFIG:-llvm-config}
command -v "${LLVM_CONFIG}" >/dev/null 2>&1 || {
PREFIX="deps/clang-${LLVM_VERSION}"
if [ ! -f "${PREFIX}/bin/llvm-config" ]; then
mkdir -p "deps"
FILE="deps/clang-${LLVM_VERSION}.tar.xz"
if [ ! -f "${FILE}" ]; then
URL=$(llvmURL $MAC_OS_ARCH)
echo "Downloading ${URL}..."
curl --retry 3 -# -S -L "${URL}" -o "${FILE}.tmp" && mv "${FILE}.tmp" "${FILE}"
fi
echo -n "Checking file... "
echo "${LLVM_HASH} ${FILE}" | shasum -a 512256 -c
rm -rf "${PREFIX}"
mkdir -p "${PREFIX}"
echo -n "Unpacking archive... "
tar xf "${FILE}" -C "${PREFIX}" --strip-components 1
echo "done."
fi
LLVM_CONFIG="${PREFIX}/bin/llvm-config"
}
PREFIX="$("${LLVM_CONFIG}" --prefix)"
case "${PREFIX}" in
*\ *) (>&2 echo "Error: Path to LLVM may not contain spaces: '${PREFIX}'"); exit 1 ;;
esac
echo "// Do not modify this file. Instead, rerun ./configure" > config.xcconfig
echo "LLVM_LIBDIR=$(${LLVM_CONFIG} --libdir)" >> config.xcconfig
echo "LLVM_INCLUDE_DIR=$(${LLVM_CONFIG} --includedir)" >> config.xcconfig
echo "LLVM_CXXFLAGS=$(${LLVM_CONFIG} --cxxflags)" >> config.xcconfig
echo "ARCHS=$MAC_OS_ARCH" >> config.xcconfig
echo "Wrote config.xcconfig."
open XcodeClangFormat.xcodeproj