| FROM ubuntu:22.04 | |
| ARG USERNAME=cheriot | |
| ARG LLVM_PATH=. | |
| ARG SAIL_PATH=. | |
| RUN apt update \ | |
| && apt upgrade -y \ | |
| && apt install -y software-properties-common \ | |
| && add-apt-repository ppa:xmake-io/xmake \ | |
| && apt update \ | |
| && apt install -y xmake git clang | |
| # Create the user | |
| RUN useradd -m $USERNAME \ | |
| # Add sudo support. Omit if you don't need to install software after connecting. | |
| && apt-get install -y sudo \ | |
| && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ | |
| && chmod 0440 /etc/sudoers.d/$USERNAME | |
| RUN mkdir -p /cheriot-tools/licenses | |
| COPY ${LLVM_PATH}/LLVM-LICENSE.TXT /cheriot-tools/licenses/ | |
| COPY ${SAIL_PATH}/LICENCE-cheriot-sail.txt ${SAIL_PATH}/LICENCE-sail-riscv.txt /cheriot-tools/licenses/ | |
| RUN mkdir -p /cheriot-tools/bin | |
| # FIXME: We should be installing objdump as well | |
| COPY "${LLVM_PATH}/bin/clang" "${LLVM_PATH}/bin/lld" "${LLVM_PATH}/bin/llvm-objdump" "${LLVM_PATH}/bin/clangd" "${LLVM_PATH}/bin/clang-format" "${LLVM_PATH}/bin/clang-tidy" /cheriot-tools/bin/ | |
| COPY "${SAIL_PATH}/cheriot_sim" /cheriot-tools/bin/ | |
| RUN cd /cheriot-tools/bin && ln -s clang clang++ && ln -s lld ld.lld && chmod +x * | |
| USER $USERNAME | |
| ENV SHELL /bin/bash | |
| CMD bash |