mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-26 20:55:35 +03:00
167b54d03d
By default the bindings go to /usr/local on the host, which is a very big no-no; this path is not affected by CMAKE_INSTALL_PREFIX, so this commit sets the LLVM_OCAML_INSTALL_PATH variable instead. It should be noted that disabling the ocaml bindings doesn't make all the users of this variable go away, so this commit doesn't do so. This also sorts the -DFOO options passed to cmake, because...sorting.
67 lines
2.1 KiB
Bash
Executable File
67 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env -S bash ../.port_include.sh
|
|
port='llvm'
|
|
useconfigure='true'
|
|
version='16.0.6'
|
|
workdir="llvm-project-${version}.src"
|
|
configopts=(
|
|
"-DCMAKE_TOOLCHAIN_FILE=${SERENITY_BUILD_DIR}/CMakeToolchain.txt"
|
|
)
|
|
files=(
|
|
"https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz#ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e"
|
|
)
|
|
depends=(
|
|
"ncurses"
|
|
"zlib"
|
|
"zstd"
|
|
)
|
|
|
|
configure() {
|
|
# The cross compilers will be picked up from the CMake toolchain file.
|
|
# CC/CXX must point to the host compiler to let it build host tools (tblgen).
|
|
host_env
|
|
|
|
if [ "$SERENITY_TOOLCHAIN" = "Clang" ]; then
|
|
stdlib=""
|
|
unwindlib=""
|
|
exclude_atomic_builtin="OFF"
|
|
else
|
|
stdlib="libstdc++"
|
|
unwindlib="libgcc"
|
|
# Atomic builtins can't be cross-compiled with GCC. Use the libatomic port
|
|
# if the program you're building has references to symbols like __atomic_load.
|
|
exclude_atomic_builtin="ON"
|
|
fi
|
|
|
|
mkdir -p llvm-build
|
|
cmake ${workdir}/llvm \
|
|
-G Ninja \
|
|
-B llvm-build "${configopts[@]}" \
|
|
-DCLANG_DEFAULT_CXX_STDLIB=$stdlib \
|
|
-DCLANG_DEFAULT_UNWINDLIB=$unwindlib \
|
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
-DCMAKE_FIND_ROOT_PATH="$SERENITY_BUILD_DIR"/Root \
|
|
-DCOMPILER_RT_BUILD_CRT=ON \
|
|
-DCOMPILER_RT_BUILD_ORC=OFF \
|
|
-DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$exclude_atomic_builtin \
|
|
-DCOMPILER_RT_OS_DIR=serenity \
|
|
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_C_COMPILER=$CC;-DCMAKE_CXX_COMPILER=$CXX" \
|
|
-DHAVE_LIBRT=OFF \
|
|
-DLLVM_DEFAULT_TARGET_TRIPLE=$SERENITY_ARCH-pc-serenity \
|
|
-DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt" \
|
|
-DLLVM_HAVE_LIBXAR=OFF \
|
|
-DLLVM_INCLUDE_BENCHMARKS=OFF \
|
|
-DLLVM_INCLUDE_TESTS=OFF \
|
|
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \
|
|
-DLLVM_OCAML_INSTALL_PATH="${SERENITY_INSTALL_ROOT}/usr/local/ocaml" \
|
|
-DLLVM_PTHREAD_LIB=pthread \
|
|
-DLLVM_TARGETS_TO_BUILD=X86
|
|
}
|
|
|
|
build() {
|
|
ninja -j${MAKEJOBS} -C llvm-build
|
|
}
|
|
|
|
install() {
|
|
ninja -C llvm-build install
|
|
}
|