diff --git a/Dockerfile.x86_64 b/Dockerfile.x86_64 index 2b0553e..111f1a3 100644 --- a/Dockerfile.x86_64 +++ b/Dockerfile.x86_64 @@ -14,29 +14,24 @@ RUN apt-get install -y --no-install-recommends \ binutils-dev \ cmake \ git \ - libc++-dev \ libtinfo5 \ libtool \ pkg-config -# LLVM Tools -RUN apt-get install -y --no-install-recommends \ - clang-8 \ - clang-tools-8 \ - llvm-8 \ - llvm-8-dev \ - libc++abi-dev \ - lld-8 \ - libclang-8-dev \ - libclang-common-8-dev -RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100 -RUN update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-8 100 - -# Needed to install from http endpoints via curl +# Needed to install from http endpoints via curl or wget RUN apt-get install -y --no-install-recommends \ curl \ ca-certificates \ - libssl-dev + libssl-dev \ + lsb-release \ + gpg-agent \ + software-properties-common \ + wget + +# LLVM Tools +ENV LLVM_VERSION=8 +ADD install_llvm.sh /sledge/install_llvm.sh +RUN ./sledge/install_llvm.sh $LLVM_VERSION # Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --component rustfmt --target wasm32-wasi -y @@ -55,8 +50,7 @@ RUN apt-get install -y --no-install-recommends \ imagemagick \ netpbm \ pango1.0-tools \ - wamerican \ - wget + wamerican # Interactive Tools RUN apt-get install -y --no-install-recommends \ diff --git a/install_llvm.sh b/install_llvm.sh new file mode 100755 index 0000000..83463e3 --- /dev/null +++ b/install_llvm.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Installs LLVM tooling, delegating the to the LLVM script as much as possible +# We need to shim support for LLVM 8 because the LLVM script only supports 9-12 + +LLVM_VERSION=$1 + +echo "Installing LLVM $LLVM_VERSION" + +# Script Installs clang, lldb, lld, and clangd +if [[ "$LLVM_VERSION" -gt 8 ]]; then + curl --proto '=https' --tlsv1.2 -sSf https://apt.llvm.org/llvm.sh | bash -s -- "$LLVM_VERSION" +else + apt-get install -y --no-install-recommends \ + "clang-$LLVM_VERSION" \ + "lldb-$LLVM_VERSION" \ + "lld-$LLVM_VERSION" \ + "clangd-$LLVM_VERSION" +fi + +apt-get install -y --no-install-recommends \ + "libc++-$LLVM_VERSION-dev" \ + "libc++abi-$LLVM_VERSION-dev" \ + "libc++1-$LLVM_VERSION" \ + "clang-format-$LLVM_VERSION" + +update-alternatives --install /usr/bin/clang clang "/usr/bin/clang-$LLVM_VERSION" 100 +update-alternatives --install /usr/bin/clang++ clang++ "/usr/bin/clang++-$LLVM_VERSION" 100 +update-alternatives --install /usr/bin/llvm-config llvm-config "/usr/bin/llvm-config-$LLVM_VERSION" 100 +update-alternatives --install /usr/bin/clang-format clang-format "/usr/bin/clang-format-$LLVM_VERSION" 100