diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2019-11-13 14:38:22 +0000 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2019-11-13 18:29:58 +0000 |
commit | a10ef1aa4fe62aa97859d24921f501183861b7b6 (patch) | |
tree | 66a3ee23b182113951663a0ca0f027e808026a55 /pkgs/development/tools/clang-tools | |
parent | 5d2dc6fd79291d3e46c186644b54e45adc09cfcb (diff) | |
download | nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar.gz nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar.bz2 nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar.lz nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar.xz nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.tar.zst nixpkgs-a10ef1aa4fe62aa97859d24921f501183861b7b6.zip |
clang-tools: teach about nix's include path
By translating NIX_CFLAGS_COMPILE to CPATH, all tools will now find c headers properly, when run in a nix-shell.
Diffstat (limited to 'pkgs/development/tools/clang-tools')
-rw-r--r-- | pkgs/development/tools/clang-tools/default.nix | 11 | ||||
-rw-r--r-- | pkgs/development/tools/clang-tools/wrapper | 20 |
2 files changed, 28 insertions, 3 deletions
diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix index 0abea99f64a..2e8f48901ab 100644 --- a/pkgs/development/tools/clang-tools/default.nix +++ b/pkgs/development/tools/clang-tools/default.nix @@ -13,15 +13,20 @@ in stdenv.mkDerivation { 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 \ - clangd + clang-tidy do - ln -s ${clang}/bin/$tool $out/bin/$tool + ln -s $out/bin/clangd $out/bin/$tool done runHook postInstall diff --git a/pkgs/development/tools/clang-tools/wrapper b/pkgs/development/tools/clang-tools/wrapper new file mode 100644 index 00000000000..fe17880b07d --- /dev/null +++ b/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) "$@" |