{ pkgs, llvmVersion }: let # Select the correct LLVM/Clang version llvmPackages = pkgs."llvmPackages_${llvmVersion}"; in pkgs.mkShell { name = "clang-cpp-shell"; # Native dependencies (e.g., compilers, build tools) nativeBuildInputs = with pkgs; [ # Compiler and core tools llvmPackages.clang llvmPackages.lld llvmPackages.bintools # Language-specific tools llvmPackages.clang-tools # Includes clang-format, clang-tidy cmake ninja gdb valgrind nixpkgs-fmt ]; # Runtime dependencies (e.g., shared libraries) buildInputs = with pkgs; [ # Common libraries (example) libcxx boost ]; # Environment variables shellHook = '' export CC=clang export CXX=clang++ echo "Clang version: $(${llvmPackages.clang}/bin/clang --version | head -n 1)" ''; }