diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix index 498310d4324..ba829f2c41d 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 old mode 100644 new mode 100755 index 53c99a67f2d..eebc152d11b --- 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) "$@"