make isClang work the way a user might expect

This commit is contained in:
Jude Taylor 2015-08-04 09:55:29 -07:00
parent dc74a81129
commit ef95107ddc
5 changed files with 7 additions and 5 deletions

View File

@ -9,7 +9,7 @@
, cc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
, zlib ? null, extraPackages ? [], extraBuildCommands ? ""
, dyld ? null # TODO: should this be a setup-hook on dyld?
, isGNU ? false, isClang ? false
, isGNU ? false, isClang ? cc.isClang or false
}:
with stdenv.lib;

View File

@ -253,7 +253,7 @@ stdenv.mkDerivation rec {
# On some ARM platforms --enable-thumb
"--enable-shared --disable-static"
(enableFeature true "pic")
(if (stdenv.cc.cc.isClang or false) then "--cc=clang" else null)
(if stdenv.cc.isClang then "--cc=clang" else null)
(enableFeature smallBuild "small")
(enableFeature runtimeCpuDetectBuild "runtime-cpudetect")
(enableFeature grayBuild "gray")

View File

@ -2,7 +2,6 @@
let
inherit (stdenv.lib) optional;
isClang = (stdenv.cc.cc.isClang or false);
in
stdenv.mkDerivation rec{
name = "iniparser-3.1";
@ -15,8 +14,7 @@ stdenv.mkDerivation rec{
patches = ./no-usr.patch;
# TODO: Build dylib on Darwin
buildFlags = (if stdenv.isDarwin then [ "libiniparser.a" ] else [ "libiniparser.so" ])
++ optional isClang "CC=clang";
buildFlags = (if stdenv.isDarwin then [ "libiniparser.a" ] else [ "libiniparser.so" ]) ++ [ "CC=cc" ];
installPhase = ''
mkdir -p $out/lib

View File

@ -1,5 +1,8 @@
{ stdenv, appleDerivation, icu, dyld, libdispatch, launchd, libclosure }:
# this project uses blocks, a clang-only extension
assert stdenv.cc.isClang;
appleDerivation {
buildInputs = [ dyld icu libdispatch launchd libclosure ];

View File

@ -81,6 +81,7 @@ in rec {
nativePrefix = bootstrapTools;
nativeLibc = false;
libc = last.pkgs.darwin.Libsystem;
isClang = true;
cc = { name = "clang-9.9.9"; outPath = bootstrapTools; };
};