4a3e6d3091
Creates and installs wrapper scripts around the clang-tools from `llvmPackages.clang-unwrapped`. Motivation ---------- Fixes #9214 Allows to install clang-tools for C++ development without also installing the clang compiler and its tool-chain. This way it is possible to use e.g. `clang-format` without conflicting with e.g. GCC's tool-chain, or the global system tool-chain.
28 lines
692 B
Nix
28 lines
692 B
Nix
{ stdenv, makeWrapper, writeScript, llvmPackages }:
|
|
|
|
let
|
|
clang = llvmPackages.clang-unwrapped;
|
|
version = stdenv.lib.getVersion clang;
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
name = "clang-tools-${version}";
|
|
builder = writeScript "builder" ''
|
|
source $stdenv/setup
|
|
for tool in \
|
|
clang-apply-replacements \
|
|
clang-check \
|
|
clang-format \
|
|
clang-rename \
|
|
clang-tidy
|
|
do
|
|
makeWrapper $clang/bin/$tool $out/bin/$tool --argv0 $tool
|
|
done
|
|
'';
|
|
buildInputs = [ makeWrapper ];
|
|
inherit clang;
|
|
meta = clang.meta // {
|
|
description = "Standalone command line tools for C++ development";
|
|
maintainers = with stdenv.lib.maintainers; [ aherrmann ];
|
|
};
|
|
}
|