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
|