Files
UnrealEngine/Engine/Source/ThirdParty/Intel/ISPC/build/linux/BuildLLVM.command
2025-05-18 13:04:45 +08:00

60 lines
1.4 KiB
Bash

#!/bin/bash
set -e
LLVM_VERSION=${1:-18.1.6}
SCRIPT_DIR=$(cd "$(dirname "$BASH_SOURCE")" ; pwd)
pushd ${SCRIPT_DIR}/../..
UE_MODULE_LOCATION=`pwd`
LLVM_ROOT_LOCATION="$UE_MODULE_LOCATION/llvm-$LLVM_VERSION"
LLVM_SOURCE_LOCATION="$LLVM_ROOT_LOCATION/llvm/"
LLVM_BUILD_LOCATION="$LLVM_SOURCE_LOCATION/build/"
LLVM_INSTALL_LOCATION="$UE_MODULE_LOCATION/llvm/"
CORES=$(getconf _NPROCESSORS_ONLN)
rm -rf $LLVM_INSTALL_LOCATION
rm -rf $LLVM_BUILD_LOCATION
rm -rf $LLVM_ROOT_LOCATION
echo Cloning and building llvm $LLVM_VERSION...
git clone https://github.com/llvm/llvm-project.git --branch llvmorg-$LLVM_VERSION llvm-$LLVM_VERSION
mkdir -p $LLVM_BUILD_LOCATION
CMAKE_ARGS=(
-DCMAKE_INSTALL_PREFIX="$LLVM_INSTALL_LOCATION"
-DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_PROJECTS=clang
-DLLVM_ENABLE_DUMP=ON
-DLLVM_ENABLE_ASSERTIONS=ON
-DLLVM_INSTALL_UTILS=ON
-DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86"
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
)
BUILD_LOCATION="$UE_MODULE_LOCATION/Intermediate"
rm -rf $BUILD_LOCATION
mkdir $BUILD_LOCATION
pushd $BUILD_LOCATION
echo Configuring build for llvm version $LLVM_VERSION...
cmake -G "Unix Makefiles" $LLVM_SOURCE_LOCATION "${CMAKE_ARGS[@]}"
echo Building llvm for Release...
cmake --build . --config Release --parallel ${CORES}
echo Installing llvm for Release...
cmake --install . --config Release
popd
popd
echo Done.