mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
* Update build-in-docker.yml * Update build-in-docker.yml * Update build-in-docker.yml * Update build-core.sh * update workflow * Update build-core.sh * Update build-core.sh * Update build-core.sh * Update build-core.sh * update workflow * fix workflow * Update xahaud.binary.dockerfile * fixup * fixup * fixup * fixup * fixup * fixup * Update build-in-docker.yml
123 lines
5.3 KiB
Docker
123 lines
5.3 KiB
Docker
# docker build -t transia/xahaud-hbb-deps .
|
|
# Use the Holy Build Box image as the base image
|
|
FROM ghcr.io/foobarwidget/holy-build-box-x64
|
|
|
|
# Set the user to root and the group to the current user's group ID
|
|
# Note: You will need to replace `$(id -g)` with the actual group ID or remove it if not needed
|
|
# USER root:$(id -g)
|
|
|
|
# Install wget and other necessary tools
|
|
RUN /hbb_exe/activate-exec bash -c "yum update -y && \
|
|
yum install -y wget lz4 lz4-devel git llvm13-static.x86_64 llvm13-devel.x86_64 devtoolset-10-binutils zlib-static ncurses-static \
|
|
devtoolset-7-gcc-c++ \
|
|
devtoolset-9-gcc-c++ \
|
|
devtoolset-10-gcc-c++ \
|
|
snappy snappy-devel \
|
|
zlib zlib-devel \
|
|
lz4-devel \
|
|
libasan && \
|
|
yum clean all && \
|
|
rm -rf /var/cache/yum"
|
|
|
|
COPY . /io/
|
|
|
|
# Create and set the working directory to /io
|
|
WORKDIR /io
|
|
|
|
# Set file permissions mask
|
|
RUN /hbb_exe/activate-exec bash -c "umask 0000"
|
|
|
|
ENV ZSTD_VERSION="1.1.3" \
|
|
BOOST_ROOT="/usr/local/src/boost_1_75_0" \
|
|
Boost_LIBRARY_DIRS="/usr/local/lib" \
|
|
BOOST_INCLUDEDIR="/usr/local/src/boost_1_75_0" \
|
|
LLVM_DIR="/usr/lib64/llvm13/lib/cmake/llvm/" \
|
|
LLVM_LIBRARY_DIR="/usr/lib64/llvm13/lib/"
|
|
|
|
# Install ZStd 1.1.3
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-7/enable && echo '-- Install ZStd 1.1.3 --' && \
|
|
yum install epel-release -y && \
|
|
wget -nc -q -O zstd-${ZSTD_VERSION}.tar.gz https://github.com/facebook/zstd/archive/v${ZSTD_VERSION}.tar.gz && \
|
|
tar xzvf zstd-${ZSTD_VERSION}.tar.gz && \
|
|
cd zstd-${ZSTD_VERSION} && \
|
|
make -j$(nproc) install && \
|
|
cd .. && \
|
|
rm -rf zstd-${ZSTD_VERSION} zstd-${ZSTD_VERSION}.tar.gz"
|
|
|
|
# Install Cmake 3.23.1
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-7/enable && echo '-- Install Cmake 3.23.1 --' && \
|
|
wget -nc -q https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-x86_64.tar.gz && \
|
|
tar -xzf cmake-3.23.1-linux-x86_64.tar.gz -C /hbb/ && \
|
|
rm cmake-3.23.1-linux-x86_64.tar.gz"
|
|
|
|
# Install Boost 1.75.0
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-7/enable && echo '-- Install Boost 1.75.0 --' && \
|
|
wget -nc -q https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.tar.gz && \
|
|
tar -xzf boost_1_75_0.tar.gz && \
|
|
cd boost_1_75_0 && \
|
|
./bootstrap.sh && \
|
|
./b2 link=static -j$(nproc) && \
|
|
./b2 install && \
|
|
cd ../ && \
|
|
rm -rf boost_1_75_0 boost_1_75_0.tar.gz"
|
|
|
|
# Install Protobuf 3.20.0
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-7/enable && echo '-- Install Protobuf 3.20.0 --' && \
|
|
wget -nc -q https://github.com/protocolbuffers/protobuf/releases/download/v3.20.0/protobuf-all-3.20.0.tar.gz && \
|
|
tar -xzf protobuf-all-3.20.0.tar.gz && \
|
|
cd protobuf-3.20.0/ && \
|
|
./autogen.sh && \
|
|
./configure --prefix=/usr --disable-shared link=static && \
|
|
make -j$(nproc) && \
|
|
make install && \
|
|
cd .. && \
|
|
rm -rf protobuf-3.20.0 protobuf-all-3.20.0.tar.gz"
|
|
|
|
# Build LLD
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-7/enable && echo '-- Build LLD --' && \
|
|
ln /usr/bin/llvm-config-13 /usr/bin/llvm-config && \
|
|
mv /opt/rh/devtoolset-9/root/usr/bin/ar /opt/rh/devtoolset-9/root/usr/bin/ar-9 && \
|
|
ln /opt/rh/devtoolset-10/root/usr/bin/ar /opt/rh/devtoolset-9/root/usr/bin/ar && \
|
|
wget -nc -q https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/lld-13.0.1.src.tar.xz && \
|
|
wget -nc -q https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libunwind-13.0.1.src.tar.xz && \
|
|
tar -xf lld-13.0.1.src.tar.xz && \
|
|
tar -xf libunwind-13.0.1.src.tar.xz && \
|
|
cp -r libunwind-13.0.1.src/include libunwind-13.0.1.src/src lld-13.0.1.src/ && \
|
|
cd lld-13.0.1.src && \
|
|
rm -rf build CMakeCache.txt && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. -DLLVM_LIBRARY_DIR=/usr/lib64/llvm13/lib/ -DCMAKE_INSTALL_PREFIX=/usr/lib64/llvm13/ -DCMAKE_BUILD_TYPE=Release && \
|
|
make -j$(nproc) install && \
|
|
ln -s /usr/lib64/llvm13/lib/include/lld /usr/include/lld && \
|
|
cp /usr/lib64/llvm13/lib/liblld*.a /usr/local/lib/ && \
|
|
cd ../../ && \
|
|
rm -rf lld-13.0.1.src libunwind-13.0.1.src lld-13.0.1.src.tar.xz libunwind-13.0.1.src.tar.xz"
|
|
|
|
# Build WasmEdge
|
|
RUN /hbb_exe/activate-exec bash -c "source /opt/rh/devtoolset-9/enable && echo '-- Build WasmEdge --' && \
|
|
wget -nc -q https://github.com/WasmEdge/WasmEdge/archive/refs/tags/0.11.2.zip && \
|
|
unzip -o 0.11.2.zip && \
|
|
cd WasmEdge-0.11.2 && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DWASMEDGE_BUILD_SHARED_LIB=OFF \
|
|
-DWASMEDGE_BUILD_STATIC_LIB=ON \
|
|
-DWASMEDGE_BUILD_AOT_RUNTIME=ON \
|
|
-DWASMEDGE_FORCE_DISABLE_LTO=ON \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
|
-DWASMEDGE_LINK_LLVM_STATIC=ON \
|
|
-DWASMEDGE_BUILD_PLUGINS=OFF \
|
|
-DWASMEDGE_LINK_TOOLS_STATIC=ON \
|
|
-DBoost_NO_BOOST_CMAKE=ON -DLLVM_DIR=/usr/lib64/llvm13/lib/cmake/llvm/ -DLLVM_LIBRARY_DIR=/usr/lib64/llvm13/lib/ && \
|
|
make -j$(nproc) install && \
|
|
cp -r include/api/wasmedge /usr/include/ && \
|
|
cd ../../ && \
|
|
rm -rf WasmEdge-0.11.2 0.11.2.zip"
|
|
|
|
# Set the entrypoint to the activate-exec script with bash
|
|
# This will be the default command that runs when the container starts
|
|
ENTRYPOINT ["/hbb_exe/activate-exec"]
|
|
CMD ["bash"] |