diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-12-21 06:05:12 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-12-21 06:05:12 +0100 |
commit | f107be784e6d5da5f90735765a68fdff96acfbb4 (patch) | |
tree | 145573a598009fb6adbd5ef7fbce0a850681f5f0 /infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools | |
parent | 2e04b35e5ac3a9123cafffbc84494fa4d389cca0 (diff) | |
parent | e9158eca70ae59e73fae23be5d13d3fa0cfc78b4 (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.nix | 39 | ||||
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper | 20 |
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) "$@" |