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${llvmPackages.clang.cc.dev}/lib -L${llvmPackages.clang.cc.libllvm.dev}/lib" \
    --prefix NIX_CFLAGS_COMPILE " " "-isystem${llvmPackages.clang.cc.dev}/include -isystem${llvmPackages.clang.cc.libllvm.dev}/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 [llvmPackages.clang.cc.dev llvmPackages.clang.cc.libllvm.dev]

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

Thanks