17 Star 11 Fork 15

openEuler / BiShengCLanguage

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
build.sh 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
#!/bin/bash
set -e
ROOT_DIR=$(cd "$(dirname $0)"; pwd)
SUB_LLVM_DIR=${ROOT_DIR}/fe/llvm-project
SUB_LLVM_BUILD_DIR=${SUB_LLVM_DIR}/build
SUB_LLVM_INSTALL_DIR=${SUB_LLVM_DIR}/install
SUB_OAC_DIR=${ROOT_DIR}/compiler/OpenArkCompiler
TARGET=${SUB_OAC_DIR}/tools/clang+llvm-15.0.4-x86_64-linux-gnu-ubuntu-18.04-enhanced
THREADS=$(cat /proc/cpuinfo | grep -c processor) # FIXME: this does not work for macos
function build_llvm() {
# TODO: provide debug&release mode
cd ${SUB_LLVM_DIR}
if [ -d "./build" ]
then
echo "./build folder already exists"
echo "Use previously built clang"
cd build
make -j${THREADS} | tee ${ROOT_DIR}/build_llvm.log
mkdir -p install
make install
else
mkdir -p build
mkdir -p install
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install/ -DLLVM_TARGETS_TO_BUILD="X86;AArch64" -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_USE_LINKER=gold -DLLVM_BUILD_DOCS=Off -DLLVM_ENABLE_BINDINGS=Off -G "Unix Makefiles" ../llvm
make -j${THREADS} | tee ${ROOT_DIR}/build_llvm.log
make install
fi
}
function copy_files() {
mkdir -p ${TARGET}/bin
cp -r ${SUB_LLVM_DIR}/install/bin/* ${TARGET}/bin/
cp -r ${SUB_LLVM_DIR}/build/bin/FileCheck ${TARGET}/bin/
cp -r ${SUB_LLVM_DIR}/install/include ${TARGET}
cp -r ${SUB_LLVM_DIR}/install/lib ${TARGET}
cp -r ${SUB_LLVM_DIR}/install/libexec ${TARGET}
cp -r ${SUB_LLVM_DIR}/install/share ${TARGET}
}
function build_oac() {
cd ${SUB_OAC_DIR}
source build/envsetup.sh arm release
make setup
make | tee ${ROOT_DIR}/build_oac.log
}
function copy_output() {
mkdir -p ${ROOT_DIR}/output/
cp -r ${SUB_LLVM_INSTALL_DIR}/* ${ROOT_DIR}/output/
cp -r ${SUB_OAC_DIR}/output/aarch64-clang-release/bin/* ${ROOT_DIR}/output/bin
}
function update_submodule() {
cd ${ROOT_DIR}
# update with remote repos:
# bisheng_c_language_dep/OpenArkCompiler:bsc
# bisheng_c_language_dep/llvm-project:bishengc/15.0.4
git submodule update --init --remote --progress
}
function main() {
echo "Start Building"
echo $(pwd)
update_submodule
build_llvm
copy_files
build_oac
copy_output
echo "Built Successfully"
}
main "$@"
1
https://gitee.com/openeuler/BiShengCLanguage.git
git@gitee.com:openeuler/BiShengCLanguage.git
openeuler
BiShengCLanguage
BiShengCLanguage
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891