mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-17 23:44:17 +08:00
Split clang out of LLVM
This commit is contained in:
parent
50bdac1666
commit
776eed07f3
2
recipes/dev/clang/native.cmake
Normal file
2
recipes/dev/clang/native.cmake
Normal file
@ -0,0 +1,2 @@
|
||||
set(CMAKE_C_COMPILER cc)
|
||||
set(CMAKE_CXX_COMPILER c++)
|
||||
81
recipes/dev/clang/recipe.toml
Normal file
81
recipes/dev/clang/recipe.toml
Normal file
@ -0,0 +1,81 @@
|
||||
[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/**",
|
||||
]
|
||||
@ -19,30 +19,30 @@ script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
COOKBOOK_CMAKE_FLAGS+=(
|
||||
-DLLVM_BUILD_UTILS=On
|
||||
-DLLVM_TOOL_LLVM_COV_BUILD=On
|
||||
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=On
|
||||
-DLLVM_INSTALL_UTILS=On
|
||||
|
||||
# the rest of options that shared to clang
|
||||
-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_TARGETS_TO_BUILD="X86"
|
||||
-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
|
||||
@ -51,31 +51,6 @@ 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"
|
||||
@ -83,24 +58,6 @@ 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" ]
|
||||
|
||||
@ -13,10 +13,10 @@ dependencies = [
|
||||
dev-dependencies = [
|
||||
"llvm21.dev",
|
||||
"llvm21.runtime",
|
||||
"llvm21.clang",
|
||||
"llvm21.clang-dev",
|
||||
"llvm21.lld-dev",
|
||||
"llvm21.lld",
|
||||
"clang",
|
||||
"clang.dev",
|
||||
"clang.lld-dev",
|
||||
"clang.lld",
|
||||
"host:libarchive",
|
||||
"host:zig",
|
||||
]
|
||||
|
||||
@ -27,7 +27,7 @@ dependencies = [
|
||||
"libxrandr",
|
||||
"libsm",
|
||||
# TODO: Should separate clang library and runtime
|
||||
"llvm21.clang"
|
||||
"clang"
|
||||
# "sqlite3",
|
||||
# "nss-nspr",
|
||||
# "startup-notification",
|
||||
@ -41,7 +41,7 @@ dev-dependencies = [
|
||||
"host:llvm21",
|
||||
"host:llvm21.dev",
|
||||
"host:llvm21.runtime",
|
||||
"host:llvm21.clang",
|
||||
"host:clang",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
Loading…
Reference in New Issue
Block a user