diff options
author | Michael Livshin <repo@cmm.kakpryg.net> | 2021-04-22 18:44:26 +0300 |
---|---|---|
committer | Michael Livshin <repo@cmm.kakpryg.net> | 2021-04-24 10:37:57 +0300 |
commit | 782cb7aea0e6ca54582483ebc1cf965c0a897f48 (patch) | |
tree | 72f56c0e7d7ba47c9ec349c96b26b75a77542b05 /pkgs/development/tools/clang-tools | |
parent | cd0ffd3f5fad719586a9b2d06b1faa603da6ba8d (diff) |
fix clangd wrapper
* get libc-cflags and libcxx-cxxflags from the sibling clang derivation. * fix the order of those for C++ (libc-cflags use -idirafter for a reason).
Diffstat (limited to 'pkgs/development/tools/clang-tools')
-rw-r--r-- | pkgs/development/tools/clang-tools/default.nix | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | pkgs/development/tools/clang-tools/wrapper | 19 |
2 files changed, 19 insertions, 12 deletions
diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix index 498310d4324fd..ba829f2c41dfd 100644 --- a/pkgs/development/tools/clang-tools/default.nix +++ b/pkgs/development/tools/clang-tools/default.nix @@ -1,22 +1,22 @@ { lib, stdenv, llvmPackages }: let - clang = llvmPackages.clang-unwrapped; + unwrapped = llvmPackages.clang-unwrapped; in stdenv.mkDerivation { pname = "clang-tools"; - version = lib.getVersion clang; + version = lib.getVersion unwrapped; dontUnpack = true; + clang = llvmPackages.clang; + inherit unwrapped; + installPhase = '' runHook preInstall mkdir -p $out/bin - export libc_includes="${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 \ @@ -32,7 +32,7 @@ in stdenv.mkDerivation { runHook postInstall ''; - meta = clang.meta // { + meta = unwrapped.meta // { description = "Standalone command line tools for C++ development"; maintainers = with lib.maintainers; [ aherrmann ]; }; diff --git a/pkgs/development/tools/clang-tools/wrapper b/pkgs/development/tools/clang-tools/wrapper index 53c99a67f2d36..eebc152d11b1b 100644..100755 --- a/pkgs/development/tools/clang-tools/wrapper +++ b/pkgs/development/tools/clang-tools/wrapper @@ -1,20 +1,27 @@ #!/bin/sh buildcpath() { - local path + local path after while (( $# )); do case $1 in -isystem) shift path=$path${path:+':'}$1 + ;; + -idirafter) + shift + after=$after${after:+':'}$1 + ;; esac shift done - echo $path + echo $path${after:+':'}$after } -export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE}) -export CPATH=${CPATH}${CPATH:+':'}@libc_includes@ -export CPLUS_INCLUDE_PATH=${CPATH}${CPATH:+':'}@libcpp_includes@ +export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \ + $(<@clang@/nix-support/libc-cflags)) +export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}${CPLUS_INCLUDE_PATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \ + $(<@clang@/nix-support/libcxx-cxxflags) \ + $(<@clang@/nix-support/libc-cflags)) -exec -a "$0" @clang@/bin/$(basename $0) "$@" +exec -a "$0" @unwrapped@/bin/$(basename $0) "$@" |