How do I get multiple clangs with different libraries in one environment?

I would like to have multiple clang versions in the same environment each with a matching version of libclang and libllvm. I need them at build time to build clang plugins and at runtime to use clang with said plugins.

My current approach is to use makeWrapper to create a wrapper for every version to prefix the linker and compilerflags with the flags I need. Something like:

  pkgs.runCommand "clang-with-libs"
  buildInputs = [ pkgs.makeWrapper ];
  } ''
  mkdir $out
  ln -s ${llvmPackages.clang}/* $out
  rm $out/bin
  mkdir $out/bin
  ln -s ${llvmPackages.clang}/bin/* $out/bin
  rm $out/bin/bambu
  makeWrapper ${llvmPackages.clang}/bin/bambu $out/bin/bambu \
    --prefix NIX_LDFLAGS " " "-L${}/lib -L${}/lib" \
    --prefix NIX_CFLAGS_COMPILE " " "-isystem${}/include -isystem${}/include"

It seems rather verbose to add the flags and stuff manually. Is there an easier way to do this? Ideally, I would like to have something like:

imaginaryWrapLikeShell llvmPackages.clang []

Do you have any ideas if there is something like this in the nixpkgs?