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).
This commit is contained in:
parent
cd0ffd3f5f
commit
782cb7aea0
2 changed files with 19 additions and 12 deletions
|
@ -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 ];
|
||||
};
|
||||
|
|
19
pkgs/development/tools/clang-tools/wrapper
Normal file → Executable file
19
pkgs/development/tools/clang-tools/wrapper
Normal file → Executable file
|
@ -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) "$@"
|
||||
|
|
Loading…
Reference in a new issue