mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-24 13:54:19 +08:00
Re-enable llvmpipe, convert llvm and mesa to new recipe format
This commit is contained in:
parent
d35a769daf
commit
3c9432168c
@ -1,4 +1,4 @@
|
||||
BUILD_DEPENDS=(liborbital mesa mesa_glu zlib)
|
||||
BUILD_DEPENDS=(liborbital llvm mesa mesa_glu zlib)
|
||||
|
||||
function recipe_version {
|
||||
printf "1.0.0"
|
||||
|
||||
@ -1,92 +0,0 @@
|
||||
GIT=https://gitlab.redox-os.org/redox-os/llvm-project.git
|
||||
GIT_UPSTREAM=https://github.com/rust-lang/llvm-project.git
|
||||
BRANCH=redox-2022-03-18
|
||||
|
||||
function recipe_version {
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_update {
|
||||
echo "skipping update"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_prepare {
|
||||
mkdir -p build
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_build {
|
||||
native="$(realpath ../native.cmake)"
|
||||
source="$(realpath ../source/llvm)"
|
||||
sysroot="$(realpath ../sysroot)"
|
||||
CMAKE_ARGS=(
|
||||
-DCMAKE_AR="$(which "${AR}")"
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_CROSSCOMPILING=True
|
||||
-DCMAKE_CXX_FLAGS="--std=gnu++11"
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-static"
|
||||
-DCMAKE_RANLIB="$(which "${RANLIB}")"
|
||||
-DCMAKE_INSTALL_PREFIX="/"
|
||||
-DCMAKE_INSTALL_INCLUDEDIR="include"
|
||||
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include"
|
||||
-DCMAKE_SYSTEM_NAME=Generic
|
||||
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$native"
|
||||
-DLLVM_BUILD_BENCHMARKS=Off
|
||||
-DLLVM_BUILD_EXAMPLES=Off
|
||||
-DLLVM_BUILD_TESTS=Off
|
||||
-DLLVM_BUILD_UTILS=Off
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="$HOST"
|
||||
-DLLVM_ENABLE_LTO=Off
|
||||
-DLLVM_ENABLE_RTTI=On
|
||||
-DLLVM_ENABLE_THREADS=On
|
||||
-DLLVM_INCLUDE_BENCHMARKS=Off
|
||||
-DLLVM_INCLUDE_EXAMPLES=Off
|
||||
-DLLVM_INCLUDE_TESTS=Off
|
||||
-DLLVM_INCLUDE_UTILS=Off
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=On
|
||||
-DLLVM_TARGET_ARCH="$ARCH"
|
||||
-DLLVM_TARGETS_TO_BUILD=X86
|
||||
-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
|
||||
-DPYTHON_EXECUTABLE="/usr/bin/python2"
|
||||
-DUNIX=1
|
||||
-Wno-dev
|
||||
)
|
||||
set -x
|
||||
cmake "${CMAKE_ARGS[@]}" "$source"
|
||||
"$REDOX_MAKE" -j$(nproc)
|
||||
set +x
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_test {
|
||||
echo "skipping test"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_clean {
|
||||
"$REDOX_MAKE" clean
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_stage {
|
||||
dest="$(realpath $1)"
|
||||
set -x
|
||||
"$REDOX_MAKE" DESTDIR="$dest" install
|
||||
mv -vT "$dest"/usr/include "$dest/include"
|
||||
mv -vT "$dest"/usr/share "$dest/share"
|
||||
rmdir -v "$dest"/usr
|
||||
find "$dest"/bin -exec "$STRIP" -v {} ';' 2> /dev/null
|
||||
set +x
|
||||
skip=1
|
||||
}
|
||||
59
recipes/llvm/recipe.toml
Normal file
59
recipes/llvm/recipe.toml
Normal file
@ -0,0 +1,59 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/llvm-project.git"
|
||||
upstream = "https://github.com/rust-lang/llvm-project.git"
|
||||
branch = "redox-2022-03-18"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = []
|
||||
script = """
|
||||
COOKBOOK_CONFIGURE="cmake"
|
||||
COOKBOOK_CONFIGURE_FLAGS=(
|
||||
-DCMAKE_AR="$(which "${TARGET}-ar")"
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_CROSSCOMPILING=True
|
||||
-DCMAKE_CXX_FLAGS="--std=gnu++11"
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-static"
|
||||
-DCMAKE_RANLIB="$(which "${TARGET}-ranlib")"
|
||||
-DCMAKE_INSTALL_PREFIX="/"
|
||||
-DCMAKE_INSTALL_INCLUDEDIR="include"
|
||||
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include"
|
||||
-DCMAKE_SYSTEM_NAME=Generic
|
||||
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath ../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_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
|
||||
-DPYTHON_EXECUTABLE="/usr/bin/python2"
|
||||
-DUNIX=1
|
||||
-Wno-dev
|
||||
"${COOKBOOK_SOURCE}/llvm"
|
||||
)
|
||||
set -x
|
||||
cookbook_configure
|
||||
mv -vT "${COOKBOOK_STAGE}"/usr/include "${COOKBOOK_STAGE}/include"
|
||||
mv -vT "${COOKBOOK_STAGE}"/usr/share "${COOKBOOK_STAGE}/share"
|
||||
rmdir -v "${COOKBOOK_STAGE}"/usr
|
||||
set +x
|
||||
"""
|
||||
@ -1,89 +0,0 @@
|
||||
GIT=https://gitlab.redox-os.org/redox-os/mesa.git
|
||||
GIT_UPSTREAM=https://gitlab.freedesktop.org/mesa/mesa
|
||||
BRANCH=redox
|
||||
BUILD_DEPENDS=(expat zlib)
|
||||
|
||||
function recipe_version {
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_update {
|
||||
echo "skipping update"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_build {
|
||||
sysroot="$(realpath ../sysroot)"
|
||||
export CFLAGS="-I$sysroot/include -DHAVE_PTHREAD=1"
|
||||
export CPPFLAGS="-I$sysroot/include -DHAVE_PTHREAD=1"
|
||||
export LDFLAGS="-L$sysroot/lib --static"
|
||||
#export LLVM_CONFIG="x86_64-unknown-redox-llvm-config"
|
||||
|
||||
# TODO: Fix this annoying shite
|
||||
echo "[binaries]" > cross_file.txt
|
||||
echo "c = '${CC}'" >> cross_file.txt
|
||||
echo "cpp = '${CXX}'" >> cross_file.txt
|
||||
echo "ar = '${AR}'" >> cross_file.txt
|
||||
echo "strip = '${STRIP}'" >> cross_file.txt
|
||||
echo "pkgconfig = '${PKG_CONFIG}'" >> cross_file.txt
|
||||
#echo "llvm-config = '${TARGET}-llvm-config'" >> cross_file.txt
|
||||
|
||||
echo "[host_machine]" >> cross_file.txt
|
||||
echo "system = 'redox'" >> cross_file.txt
|
||||
echo "cpu_family = 'x86_64'" >> cross_file.txt
|
||||
echo "cpu = 'x86_64'" >> cross_file.txt
|
||||
echo "endian = 'little'" >> cross_file.txt
|
||||
|
||||
echo "[paths]" >> cross_file.txt
|
||||
echo "prefix = '/'" >> cross_file.txt
|
||||
echo "libdir = 'lib'" >> cross_file.txt
|
||||
echo "bindir = 'bin'" >> cross_file.txt
|
||||
|
||||
unset AR
|
||||
unset AS
|
||||
unset CC
|
||||
unset CXX
|
||||
unset LD
|
||||
unset NM
|
||||
unset OBJCOPY
|
||||
unset OBJDUMP
|
||||
unset PKG_CONFIG
|
||||
unset PKG_CONFIG_PATH
|
||||
unset RANLIB
|
||||
unset READELF
|
||||
unset STRIP
|
||||
|
||||
meson . _build \
|
||||
--cross-file cross_file.txt \
|
||||
--buildtype release \
|
||||
--strip \
|
||||
-Ddefault_library=static \
|
||||
-Dglx=disabled \
|
||||
-Dllvm=disabled \
|
||||
-Dosmesa=gallium \
|
||||
-Dplatforms= \
|
||||
-Dshader-cache=disabled \
|
||||
-Dshared-llvm=disabled \
|
||||
-Dshared-glapi=disabled
|
||||
|
||||
ninja -C _build -v
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_test {
|
||||
echo "skipping test"
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_clean {
|
||||
"$REDOX_MAKE" clean
|
||||
skip=1
|
||||
}
|
||||
|
||||
function recipe_stage {
|
||||
dest="$(realpath $1)"
|
||||
DESTDIR="$dest" ninja -C _build install
|
||||
rm -f "$dest/lib/"*.la
|
||||
skip=1
|
||||
}
|
||||
57
recipes/mesa/recipe.toml
Normal file
57
recipes/mesa/recipe.toml
Normal file
@ -0,0 +1,57 @@
|
||||
#TODO: TEST
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/mesa.git"
|
||||
upstream = "https://gitlab.freedesktop.org/mesa/mesa"
|
||||
branch = "redox"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"expat",
|
||||
"llvm",
|
||||
"zlib",
|
||||
]
|
||||
script = """
|
||||
export CFLAGS="-I${COOKBOOK_SYSROOT}/include -DHAVE_PTHREAD=1"
|
||||
export CPPFLAGS="-I${COOKBOOK_SYSROOT}/include -DHAVE_PTHREAD=1"
|
||||
export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib --static"
|
||||
export LLVM_CONFIG="${TARGET}-llvm-config"
|
||||
|
||||
# TODO: Fix this annoying shite
|
||||
echo "[binaries]" > cross_file.txt
|
||||
echo "c = '${TARGET}-gcc'" >> cross_file.txt
|
||||
echo "cpp = '${TARGET}-g++'" >> cross_file.txt
|
||||
echo "ar = '${TARGET}-ar'" >> cross_file.txt
|
||||
echo "strip = '${TARGET}-strip'" >> cross_file.txt
|
||||
echo "pkgconfig = '${TARGET}-pkg-config'" >> cross_file.txt
|
||||
echo "llvm-config = '${TARGET}-llvm-config'" >> cross_file.txt
|
||||
|
||||
echo "[host_machine]" >> cross_file.txt
|
||||
echo "system = 'redox'" >> cross_file.txt
|
||||
echo "cpu_family = 'x86_64'" >> cross_file.txt
|
||||
echo "cpu = 'x86_64'" >> cross_file.txt
|
||||
echo "endian = 'little'" >> cross_file.txt
|
||||
|
||||
echo "[paths]" >> cross_file.txt
|
||||
echo "prefix = '/'" >> cross_file.txt
|
||||
echo "libdir = 'lib'" >> cross_file.txt
|
||||
echo "bindir = 'bin'" >> cross_file.txt
|
||||
|
||||
meson "${COOKBOOK_SOURCE}" . \
|
||||
--cross-file cross_file.txt \
|
||||
--buildtype release \
|
||||
--strip \
|
||||
-Ddefault_library=static \
|
||||
-Dglx=disabled \
|
||||
-Dllvm=enabled \
|
||||
-Dosmesa=gallium \
|
||||
-Dplatforms= \
|
||||
-Dshader-cache=disabled \
|
||||
-Dshared-llvm=disabled \
|
||||
-Dshared-glapi=disabled
|
||||
ninja -v
|
||||
DESTDIR="${COOKBOOK_STAGE}" ninja install
|
||||
# Hack to add LLVM libs
|
||||
#TODO: only add necessary LLVM libs, not all of them
|
||||
sed -i "s/ -lOSMesa / -lOSMesa $("${TARGET}-llvm-config" --libs) /" "${COOKBOOK_STAGE}/lib/pkgconfig/osmesa.pc"
|
||||
"""
|
||||
Loading…
Reference in New Issue
Block a user