summary refs log tree commit diff
path: root/pkgs/development/tools/clang-tools
diff options
context:
space:
mode:
authorAndreas Herrmann <andreash87@gmx.ch>2016-09-27 23:55:26 +0200
committerAndreas Herrmann <andreash87@gmx.ch>2016-09-28 09:31:30 +0200
commit4a3e6d3091c17aa394cb4cf5381535ebe0c8e090 (patch)
tree0ea1cfb0b57375c844dbe2e2a6a94b9534da374a /pkgs/development/tools/clang-tools
parent124f25bc7d53c6c3314eb306501840d38047638d (diff)
downloadnixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar.gz
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar.bz2
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar.lz
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar.xz
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.tar.zst
nixpkgs-4a3e6d3091c17aa394cb4cf5381535ebe0c8e090.zip
clang-tools: New package
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.
Diffstat (limited to 'pkgs/development/tools/clang-tools')
-rw-r--r--pkgs/development/tools/clang-tools/default.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix
new file mode 100644
index 00000000000..e09da0287c7
--- /dev/null
+++ b/pkgs/development/tools/clang-tools/default.nix
@@ -0,0 +1,28 @@
+{ 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 ];
+  };
+}