diff options
author | Daiderd Jordan <daiderd@gmail.com> | 2016-09-17 22:35:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-17 22:35:43 +0200 |
commit | afa64a60bc73a5b5b1340f9ec9daae198d49e5d2 (patch) | |
tree | e11e71ff6ee4e0b7f3bfb4d4e483842e1ad6ca8a /pkgs/development/tools/misc | |
parent | d997f4581cb56c96461385d46b10d905cd1d5c38 (diff) | |
parent | d3274e8ae3bd2c533e8b2d18f63282ff065562c9 (diff) | |
download | nixlib-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.nix | 41 |
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 |