diff options
Diffstat (limited to 'pkgs/development/tools/clang-tools')
-rw-r--r-- | pkgs/development/tools/clang-tools/default.nix | 16 | ||||
-rwxr-xr-x[-rw-r--r--] | pkgs/development/tools/clang-tools/wrapper | 19 |
2 files changed, 21 insertions, 14 deletions
diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix index 2e8f48901ab..ba829f2c41d 100644 --- a/pkgs/development/tools/clang-tools/default.nix +++ b/pkgs/development/tools/clang-tools/default.nix @@ -1,22 +1,22 @@ -{ stdenv, llvmPackages }: +{ lib, stdenv, llvmPackages }: let - clang = llvmPackages.clang-unwrapped; + unwrapped = llvmPackages.clang-unwrapped; in stdenv.mkDerivation { pname = "clang-tools"; - version = stdenv.lib.getVersion clang; + version = lib.getVersion unwrapped; dontUnpack = true; + clang = llvmPackages.clang; + inherit unwrapped; + 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 \ @@ -32,8 +32,8 @@ in stdenv.mkDerivation { runHook postInstall ''; - meta = clang.meta // { + meta = unwrapped.meta // { description = "Standalone command line tools for C++ development"; - maintainers = with stdenv.lib.maintainers; [ aherrmann ]; + maintainers = with lib.maintainers; [ aherrmann ]; }; } diff --git a/pkgs/development/tools/clang-tools/wrapper b/pkgs/development/tools/clang-tools/wrapper index 53c99a67f2d..1008023fdc0 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)):@clang@/resource-root/include +export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}${CPLUS_INCLUDE_PATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \ + $(<@clang@/nix-support/libcxx-cxxflags) \ + $(<@clang@/nix-support/libc-cflags)):@clang@/resource-root/include -exec -a "$0" @clang@/bin/$(basename $0) "$@" +exec -a "$0" @unwrapped@/bin/$(basename $0) "$@" |