[source] same_as = "../llvm21" [build] template = "custom" dependencies = [ ] dev-dependencies = [ "host:xz", "host:libarchive", # workaround for cmake error ] script = """ DYNAMIC_INIT COOKBOOK_CMAKE_FLAGS+=( -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" -DLIBCLANG_BUILD_STATIC=On -DLLVM_INCLUDE_BENCHMARKS=Off -DLLVM_INCLUDE_DOCS=Off # the rest of options should be exact with llvm21 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")" -DCMAKE_CXX_FLAGS="--std=gnu++11" -DBUILD_SHARED_LIBS=False -DLLVM_LINK_LLVM_DYLIB=On -DLLVM_BUILD_EXAMPLES=Off -DLLVM_BUILD_TESTS=Off -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_OPTIMIZED_TABLEGEN=On -DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_TOOL_LLVM_COV_BUILD=Off -DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off -DLLVM_TOOLS_INSTALL_DIR=bin -DLLVM_UTILS_INSTALL_DIR=bin -DUNIX=1 ) # 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 # Redundant LLVM packages rm -rf ${COOKBOOK_STAGE}/usr/include/llvm* \ ${COOKBOOK_STAGE}/usr/lib/libLLVM*.a \ ${COOKBOOK_STAGE}/usr/lib/cmake/llvm \ ${COOKBOOK_STAGE}/usr/bin/llvm-* \ """ # lld runtime (no library) [[optional-packages]] name = "lld" dependencies = [ ".runtime" ] files = [ "usr/bin/*.lld", "usr/bin/*-ld", "usr/bin/lld*", ] [[optional-packages]] name = "dev" 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/**", ]