mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-23 13:24:17 +08:00
79 lines
2.4 KiB
TOML
79 lines
2.4 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-2024-05-11"
|
|
|
|
[build]
|
|
template = "custom"
|
|
dependencies = [
|
|
"zlib"
|
|
]
|
|
script = """
|
|
DYNAMIC_INIT
|
|
|
|
cat > CMakeToolchain-x86_64.cmake <<EOF
|
|
set(CMAKE_SYSTEM_NAME UnixPaths)
|
|
set(CMAKE_FIND_ROOT_PATH ${COOKBOOK_SYSROOT})
|
|
set(CMAKE_C_COMPILER ${TARGET}-gcc)
|
|
set(CMAKE_CXX_COMPILER ${TARGET}-g++)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
|
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
|
|
EOF
|
|
|
|
export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS"
|
|
|
|
COOKBOOK_MAKE="ninja"
|
|
COOKBOOK_CONFIGURE_FLAGS=(
|
|
-GNinja
|
|
-DCMAKE_TOOLCHAIN_FILE=./CMakeToolchain-x86_64.cmake
|
|
-DCMAKE_AR="$(which "${TARGET}-ar")"
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_CROSSCOMPILING=True
|
|
-DCMAKE_CXX_FLAGS="--std=gnu++11"
|
|
-DCMAKE_RANLIB="$(which "${TARGET}-ranlib")"
|
|
-DCMAKE_INSTALL_PREFIX="/usr"
|
|
-DCMAKE_INSTALL_INCLUDEDIR="include"
|
|
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include"
|
|
-DLLVM_LINK_LLVM_DYLIB=On
|
|
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
|
|
-DLLVM_BUILD_BENCHMARKS=Off
|
|
-DLLVM_BUILD_EXAMPLES=Off
|
|
-DLLVM_BUILD_TESTS=Off
|
|
-DLLVM_BUILD_UTILS=Off
|
|
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
|
|
-DLLVM_ENABLE_LTO=Off
|
|
-DLLVM_ENABLE_RTTI=On
|
|
-DLLVM_ENABLE_THREADS=On
|
|
-DLLVM_ENABLE_ZSTD=Off
|
|
-DLLVM_INCLUDE_BENCHMARKS=Off
|
|
-DLLVM_INCLUDE_EXAMPLES=Off
|
|
-DLLVM_INCLUDE_TESTS=Off
|
|
-DLLVM_INCLUDE_UTILS=Off
|
|
-DLLVM_OPTIMIZED_TABLEGEN=On
|
|
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
|
|
-DLLVM_TARGETS_TO_BUILD=X86 # TODO: get from TARGET
|
|
-DLLVM_TOOL_LLVM_COV_BUILD=Off
|
|
-DLLVM_TOOL_LLVM_LTO_BUILD=Off
|
|
-DLLVM_TOOL_LLVM_LTO2_BUILD=Off
|
|
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off
|
|
-DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off
|
|
-DLLVM_TOOL_LLVM_XRAY_BUILD=Off
|
|
-DLLVM_TOOL_LLI_BUILD=Off
|
|
-DLLVM_TOOL_LTO_BUILD=Off
|
|
-DLLVM_TOOLS_INSTALL_DIR=bin
|
|
-DLLVM_UTILS_INSTALL_DIR=bin
|
|
-DUNIX=1
|
|
-DLLVM_ENABLE_PROJECTS="llvm"
|
|
-Wno-dev
|
|
"${COOKBOOK_SOURCE}/llvm"
|
|
)
|
|
set -x
|
|
cmake "${COOKBOOK_CONFIGURE_FLAGS[@]}"
|
|
ninja -j"${COOKBOOK_MAKE_JOBS}"
|
|
DESTDIR="${COOKBOOK_STAGE}" ninja install -j"${COOKBOOK_MAKE_JOBS}"
|
|
set +x
|
|
"""
|