diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7d69b20..1819cad 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -7,10 +7,29 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ # Build essentials build-essential \ - # Standard clang tools (this will install the default version) - clang \ - clang-format \ - clang-tidy \ + # Add LLVM repository for specific Clang versions + wget \ + lsb-release \ + software-properties-common \ + gnupg \ + && rm -rf /var/lib/apt/lists/* + +# Install development tools - Ubuntu 22.04 approach +RUN apt-get update && apt-get install -y \ + # Build essentials + build-essential \ + # Check what Clang versions are available and install Clang 12 if possible + software-properties-common \ + wget \ + gnupg \ + && apt-get update && \ + # Install available Clang tools (Ubuntu 22.04 has clang-12 available) + apt-get install -y \ + clang-12 \ + clang++-12 \ + clang-format-12 \ + clang-tidy-12 \ + # clangd and lldb may have different versioning clangd \ lldb \ # Build tools @@ -20,7 +39,6 @@ RUN apt-get update && apt-get install -y \ pkg-config \ # Version control and utilities git \ - wget \ curl \ unzip \ # Development utilities @@ -33,9 +51,17 @@ RUN apt-get update && apt-get install -y \ # Text processing vim \ nano \ + # Include What You Use + iwyu \ # Clean up && rm -rf /var/lib/apt/lists/* +# Create symbolic links to make clang-12 the default +RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100 \ + && update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-12 100 \ + && update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-12 100 \ + && update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-12 100 + # Create a non-root user for development RUN groupadd --gid 1000 vscode \ && useradd --uid 1000 --gid vscode --shell /bin/bash --create-home vscode \ @@ -45,9 +71,9 @@ RUN groupadd --gid 1000 vscode \ && chmod 0440 /etc/sudoers.d/vscode \ && rm -rf /var/lib/apt/lists/* -# Set clang as the default compiler -ENV CC=clang -ENV CXX=clang++ +# Set clang-12 as the default compiler +ENV CC=clang-12 +ENV CXX=clang++-12 # Set working directory WORKDIR /workspace