aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-12-21 06:05:12 +0100
committerMx Kookie <kookie@spacekookie.de>2020-12-21 06:05:12 +0100
commitf107be784e6d5da5f90735765a68fdff96acfbb4 (patch)
tree145573a598009fb6adbd5ef7fbce0a850681f5f0 /infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools
parent2e04b35e5ac3a9123cafffbc84494fa4d389cca0 (diff)
parente9158eca70ae59e73fae23be5d13d3fa0cfc78b4 (diff)
Add 'infra/libkookie/nixpkgs/' from commit 'e9158eca70ae59e73fae23be5d13d3fa0cfc78b4'
git-subtree-dir: infra/libkookie/nixpkgs git-subtree-mainline: 2e04b35e5ac3a9123cafffbc84494fa4d389cca0 git-subtree-split: e9158eca70ae59e73fae23be5d13d3fa0cfc78b4
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper20
2 files changed, 59 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix
new file mode 100644
index 000000000000..2e8f48901aba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, llvmPackages }:
+
+let
+ clang = llvmPackages.clang-unwrapped;
+
+in stdenv.mkDerivation {
+ pname = "clang-tools";
+ version = stdenv.lib.getVersion clang;
+
+ dontUnpack = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ export libc_includes="${stdenv.lib.getDev stdenv.cc.libc}/include"
+ export libcpp_includes="${llvmPackages.libcxx}/include/c++/v1"
+
+ export clang=${clang}
+ substituteAll ${./wrapper} $out/bin/clangd
+ chmod +x $out/bin/clangd
+ for tool in \
+ clang-apply-replacements \
+ clang-check \
+ clang-format \
+ clang-rename \
+ clang-tidy
+ do
+ ln -s $out/bin/clangd $out/bin/$tool
+ done
+
+ runHook postInstall
+ '';
+
+ meta = clang.meta // {
+ description = "Standalone command line tools for C++ development";
+ maintainers = with stdenv.lib.maintainers; [ aherrmann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper
new file mode 100644
index 000000000000..53c99a67f2d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+buildcpath() {
+ local path
+ while (( $# )); do
+ case $1 in
+ -isystem)
+ shift
+ path=$path${path:+':'}$1
+ esac
+ shift
+ done
+ echo $path
+}
+
+export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE})
+export CPATH=${CPATH}${CPATH:+':'}@libc_includes@
+export CPLUS_INCLUDE_PATH=${CPATH}${CPATH:+':'}@libcpp_includes@
+
+exec -a "$0" @clang@/bin/$(basename $0) "$@"