redox/recipes/dev/llvm21/recipe.toml
2025-12-08 03:28:03 -05:00

112 lines
2.5 KiB
TOML

[source]
git = "https://gitlab.redox-os.org/redox-os/llvm-project.git"
upstream = "https://github.com/rust-lang/llvm-project.git"
branch = "redox-2025-10-03"
shallow_clone = true
[build]
template = "custom"
dependencies = [
"zlib",
"libxml2",
]
dev-dependencies = [
"libstdcxx",
"host:xz",
"host:libarchive", # workaround for cmake error
]
script = """
DYNAMIC_INIT
COOKBOOK_CMAKE_FLAGS+=(
-DCMAKE_CXX_FLAGS="--std=gnu++11"
-DBUILD_SHARED_LIBS=False
-DLLVM_LINK_LLVM_DYLIB=On
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
-DLLVM_BUILD_EXAMPLES=Off
-DLLVM_BUILD_TESTS=Off
-DLLVM_BUILD_UTILS=On
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
-DLLVM_ENABLE_LTO=Off
-DLLVM_ENABLE_RTTI=On
-DLLVM_ENABLE_THREADS=On
-DLLVM_INCLUDE_EXAMPLES=Off
-DLLVM_INCLUDE_TESTS=Off
-DLLVM_INSTALL_UTILS=On
-DLLVM_OPTIMIZED_TABLEGEN=On
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
-DLLVM_TARGETS_TO_BUILD="X86;AArch64"
-DLLVM_TOOL_LLVM_COV_BUILD=On
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=On
-DLLVM_TOOLS_INSTALL_DIR=bin
-DLLVM_UTILS_INSTALL_DIR=bin
-DLIBCLANG_BUILD_STATIC=On
-DUNIX=1
-DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra;lld"
)
# Native tablegen build fails with too many jobs, limit to 16
COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))"
COOKBOOK_SOURCE="$COOKBOOK_SOURCE/llvm"
cookbook_cmake
"""
# clang library and runtime
[[optional-packages]]
name = "clang"
dependencies = [ ".runtime" ]
files = [
"usr/bin/clang*",
"usr/libexec/**",
"usr/lib/libclang-cpp.so*",
"usr/lib/libclang.so*",
"usr/lib/clang/**",
"usr/lib/libear/**",
"usr/lib/libscanbuild/**",
"usr/share/clang*/**",
]
# lld runtime (no library)
[[optional-packages]]
name = "lld"
dependencies = [ ".runtime" ]
files = [
"usr/bin/*.lld",
"usr/bin/*-ld",
"usr/bin/lld*",
]
# llvm runtime
[[optional-packages]]
name = "runtime"
files = [
"usr/bin/**",
]
[[optional-packages]]
name = "clang-dev"
dependencies = [ ".clang" ]
files = [
"usr/include/clang*/**",
"usr/lib/libclang*.a",
"usr/lib/cmake/clang/**",
]
[[optional-packages]]
name = "lld-dev"
dependencies = [ ".lld" ]
files = [
"usr/include/lld*/**",
"usr/lib/liblld*.a",
"usr/lib/cmake/lld/**",
]
[[optional-packages]]
name = "dev"
dependencies = [ ".runtime" ]
files = [
"usr/include/llvm*/**",
"usr/lib/libLLVM*.a",
"usr/lib/cmake/llvm/**",
]