From 4a3e6d3091c17aa394cb4cf5381535ebe0c8e090 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Tue, 27 Sep 2016 23:55:26 +0200 Subject: 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. --- pkgs/development/tools/clang-tools/default.nix | 28 ++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/tools/clang-tools/default.nix (limited to 'pkgs') diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix new file mode 100644 index 000000000000..e09da0287c76 --- /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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d4be96a76d77..c1d870c1d3a6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4424,6 +4424,8 @@ in clang_35 = wrapCC llvmPackages_35.clang; clang_34 = wrapCC llvmPackages_34.clang; + clang-tools = callPackage ../development/tools/clang-tools { }; + clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { }; clangUnwrapped = llvm: pkg: callPackage pkg { inherit llvm; }; -- cgit 1.4.1