about summary refs log tree commit diff
path: root/pkgs/development/tools/misc
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2016-09-17 22:35:43 +0200
committerGitHub <noreply@github.com>2016-09-17 22:35:43 +0200
commitafa64a60bc73a5b5b1340f9ec9daae198d49e5d2 (patch)
treee11e71ff6ee4e0b7f3bfb4d4e483842e1ad6ca8a /pkgs/development/tools/misc
parentd997f4581cb56c96461385d46b10d905cd1d5c38 (diff)
parentd3274e8ae3bd2c533e8b2d18f63282ff065562c9 (diff)
downloadnixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar.gz
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar.bz2
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar.lz
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar.xz
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.tar.zst
nixlib-afa64a60bc73a5b5b1340f9ec9daae198d49e5d2.zip
Merge pull request #18135 from veprbl/ccache_fix
ccache: enable build on darwin
Diffstat (limited to 'pkgs/development/tools/misc')
-rw-r--r--pkgs/development/tools/misc/ccache/default.nix41
1 files changed, 22 insertions, 19 deletions
diff --git a/pkgs/development/tools/misc/ccache/default.nix b/pkgs/development/tools/misc/ccache/default.nix
index f538c2138926..c98e3a20813f 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, runCommand, gcc, zlib }:
+{ stdenv, fetchurl, fetchpatch, runCommand, zlib }:
 
 let ccache = stdenv.mkDerivation rec {
   name = "ccache-${version}";
@@ -15,43 +15,46 @@ let ccache = stdenv.mkDerivation rec {
     substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
   '';
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
-  passthru = {
+  passthru = let
+      cc = stdenv.cc.cc;
+      ccname = if stdenv.cc.cc.isClang or false then "clang" else "gcc";
+      cxxname = if stdenv.cc.cc.isClang or false then "clang++" else "g++";
+    in {
     # A derivation that provides gcc and g++ commands, but that
     # will end up calling ccache for the given cacheDir
     links = extraConfig: stdenv.mkDerivation rec {
       name = "ccache-links";
       passthru = {
-        inherit gcc;
-        isGNU = true;
+        inherit (cc) isGNU isClang;
       };
-      inherit (gcc.cc) lib;
+      inherit (cc) lib;
       buildCommand = ''
         mkdir -p $out/bin
-        if [ -x "${gcc.cc}/bin/gcc" ]; then
-          cat > $out/bin/gcc << EOF
+        if [ -x "${cc}/bin/${ccname}" ]; then
+          cat > $out/bin/${ccname} << EOF
           #!/bin/sh
           ${extraConfig}
-          exec ${ccache}/bin/ccache ${gcc.cc}/bin/gcc "\$@"
+          exec ${ccache}/bin/ccache ${cc}/bin/${ccname} "\$@"
         EOF
-          chmod +x $out/bin/gcc
+          chmod +x $out/bin/${ccname}
         fi
-        if [ -x "${gcc.cc}/bin/g++" ]; then
-          cat > $out/bin/g++ << EOF
+        if [ -x "${cc}/bin/${cxxname}" ]; then
+          cat > $out/bin/${cxxname} << EOF
           #!/bin/sh
           ${extraConfig}
-          exec ${ccache}/bin/ccache ${gcc.cc}/bin/g++ "\$@"
+          exec ${ccache}/bin/ccache ${cc}/bin/${cxxname} "\$@"
         EOF
-          chmod +x $out/bin/g++
+          chmod +x $out/bin/${cxxname}
         fi
-        for executable in $(ls ${gcc.cc}/bin); do
+        for executable in $(ls ${cc}/bin); do
           if [ ! -x "$out/bin/$executable" ]; then
-            ln -s ${gcc.cc}/bin/$executable $out/bin/$executable
+            ln -s ${cc}/bin/$executable $out/bin/$executable
           fi
         done
-        for file in $(ls ${gcc.cc} | grep -vw bin); do
-          ln -s ${gcc.cc}/$file $out/$file
+        for file in $(ls ${cc} | grep -vw bin); do
+          ln -s ${cc}/$file $out/$file
         done
       '';
     };
@@ -63,7 +66,7 @@ let ccache = stdenv.mkDerivation rec {
     downloadPage = https://ccache.samba.org/download.html;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nckx ];
-    platforms = with platforms; linux;
+    platforms = platforms.unix;
   };
 };
 in ccache