-
Notifications
You must be signed in to change notification settings - Fork 555
/
install-boost.sh
executable file
·49 lines (41 loc) · 1.39 KB
/
install-boost.sh
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
#!/bin/bash
set -ex
RIME_ROOT="$(cd "$(dirname "$0")"; pwd)"
boost_version="${boost_version=1.84.0}"
BOOST_ROOT="${BOOST_ROOT=${RIME_ROOT}/deps/boost-${boost_version}}"
boost_tarball="boost-${boost_version}.tar.xz"
download_url="https://github.com/boostorg/boost/releases/download/boost-${boost_version}/${boost_tarball}"
boost_tarball_sha256sum="2e64e5d79a738d0fa6fb546c6e5c2bd28f88d268a2a080546f74e5ff98f29d0e ${boost_tarball}"
download_boost_source() {
cd "${RIME_ROOT}/deps"
if ! [[ -f "${boost_tarball}" ]]; then
curl -LO "${download_url}"
fi
echo "${boost_tarball_sha256sum}" | shasum -a 256 -c
tar -xJf "${boost_tarball}"
[[ -f "${BOOST_ROOT}/bootstrap.sh" ]]
}
boost_cxxflags='-arch arm64 -arch x86_64'
build_boost_macos() {
cd "${BOOST_ROOT}"
./bootstrap.sh --with-toolset=clang --with-libraries="${boost_libs}"
./b2 -q -a link=static architecture=arm cxxflags="${boost_cxxflags}" stage
for lib in stage/lib/*.a; do
lipo $lib -info
done
}
if [[ $# -eq 0 || " $* " =~ ' --download ' ]]; then
if [[ ! -f "${BOOST_ROOT}/bootstrap.sh" ]]; then
download_boost_source
else
echo "found boost at ${BOOST_ROOT}"
fi
cd "${BOOST_ROOT}"
./bootstrap.sh
./b2 headers
fi
if [[ ($# -eq 0 || " $* " =~ ' --build ') && -n "${boost_libs}" ]]; then
if [[ "$OSTYPE" =~ 'darwin' ]]; then
build_boost_macos
fi
fi