Setup the dockerfiles necessary to build serene in a container
This commit is contained in:
parent
2da5b1dedf
commit
7dc587ecbc
|
@ -0,0 +1,2 @@
|
|||
./build/
|
||||
./resources/
|
8
builder
8
builder
|
@ -133,6 +133,14 @@ function tests() {
|
|||
|
||||
|
||||
case "$command" in
|
||||
"docker-llvm")
|
||||
docker build -f resources/docker/Dockerfile.llvm -t serene/llvm:15 .
|
||||
;;
|
||||
|
||||
"docker-serene")
|
||||
docker build -f resources/docker/Dockerfile.serene -t serene/build:$(git rev-parse HEAD) .
|
||||
;;
|
||||
|
||||
"setup")
|
||||
rm -rfv $ME/.git/hooks/pre-commit
|
||||
ln -s $ME/scripts/pre-commit $ME/.git/hooks/pre-commit
|
||||
|
|
|
@ -1,36 +1,24 @@
|
|||
FROM debian:11-slim
|
||||
FROM debian:sid-slim as builder
|
||||
|
||||
RUN apt-get update && apt-get install -y wget gnupg
|
||||
RUN apt-get update --fix-missing && apt-get install -y wget gnupg ccache cmake ccache git ninja-build build-essential binutils
|
||||
|
||||
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|apt-key add -
|
||||
RUN echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-13 main" >> /etc/apt/sources.list
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y ccache cmake ccache git ninja-build build-essential clang-13 lldb-13 lld-13
|
||||
RUN echo "deb http://apt.llvm.org/unstable/ llvm-toolchain main" >> /etc/apt/sources.list
|
||||
|
||||
ENV CXX=clang++-13
|
||||
ENV CC=clang-13
|
||||
RUN apt-get update --fix-missing && apt-get install -y clang-format-15 clang-tidy-15 clang-tools-15 clang-15 clangd-15 libc++-15-dev libc++1-15 libc++abi-15-dev libc++abi1-15 libclang-15-dev libclang1-15 liblldb-15-dev lld-15 lldb-15 llvm-15-dev llvm-15-runtime llvm python3-clang-15 python3-lldb-15 mlir-15-tools libmlir-15-dev
|
||||
|
||||
RUN mkdir -p /opt/build
|
||||
COPY ./llvm-project /usr/src/llvm-project
|
||||
|
||||
WORKDIR /opt/build
|
||||
COPY ./ /usr/src/llvm-project
|
||||
|
||||
ENV LDFLAGS="-fuse-ld=lld-13"
|
||||
RUN ln -s `which lld-15` /usr/bin/lld && ln -s `which lldb-15` /usr/bin/lldb
|
||||
|
||||
RUN cmake -G Ninja /usr/src/llvm-project/llvm \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/llvm \
|
||||
-DLLVM_PARALLEL_COMPILE_JOBS=7 \
|
||||
-DLLVM_PARALLEL_LINK_JOBS=1 \
|
||||
-DLLVM_BUILD_EXAMPLES=ON \
|
||||
-DLLVM_TARGETS_TO_BUILD="X86" \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_ENABLE_ASSERTIONS=ON \
|
||||
-DLLVM_CCACHE_BUILD=ON \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||
-DLLVM_ENABLE_PROJECTS='clang;lldb;lld;mlir;clang-tools-extra;compiler-rt' \
|
||||
-DCMAKE_C_COMPILER=clang-13 \
|
||||
-DCMAKE_CXX_COMPILER=clang++-13 \
|
||||
-DLLVM_ENABLE_LLD=ON
|
||||
RUN cmake -G Ninja /usr/src/llvm-project/llvm -DCMAKE_INSTALL_PREFIX=/opt/llvm -DLLVM_PARALLEL_COMPILE_JOBS=7 -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_CCACHE_BUILD=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLLVM_ENABLE_PROJECTS='clang;lldb;lld;mlir;clang-tools-extra;compiler-rt' -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 -DLLVM_ENABLE_LLD=ON
|
||||
|
||||
RUN cmake --build .
|
||||
RUN cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm -P cmake_install.cmake
|
||||
|
||||
FROM debian:sid-slim
|
||||
|
||||
COPY --from=builder /opt/llvm /opt/llvm
|
|
@ -0,0 +1,12 @@
|
|||
FROM serene/llvm:15
|
||||
|
||||
RUN apt-get update --fix-missing && apt-get install -y wget gnupg ccache cmake ccache git ninja-build build-essential binutils libncurses-dev
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
|
||||
ENV PATH="/opt/llvm/bin:$PATH"
|
||||
ENV CXX=clang++
|
||||
ENV CC=clang
|
||||
ENV LDFLAGS="-fuse-ld=lld"
|
||||
|
||||
RUN LD_LIBRARY_PATH="$(clang -print-runtime-dir):$LD_LIBRARY_PATH" ./builder build
|
Loading…
Reference in New Issue