stdenv.gcc.gcc might be null, e.g. on ppc-linux Signed-off-by: Shea Levy <shea@shealevy.com>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ stdenv, fetchurl, perl, groff, llvm, cmake, libxml2 }:
 | 
						|
 | 
						|
let
 | 
						|
  version = "3.2";
 | 
						|
  gccReal = if (stdenv.gcc.gcc or null) == null then stdenv.gcc else stdenv.gcc.gcc;
 | 
						|
in
 | 
						|
 | 
						|
stdenv.mkDerivation {
 | 
						|
  name = "clang-${version}";
 | 
						|
 | 
						|
  buildInputs = [ perl llvm groff cmake libxml2 ];
 | 
						|
 | 
						|
  patches = stdenv.lib.optional (stdenv.gcc.libc != null) ./clang-purity.patch;
 | 
						|
 | 
						|
  cmakeFlags = [
 | 
						|
    "-DCLANG_PATH_TO_LLVM_BUILD=${llvm}"
 | 
						|
    "-DCMAKE_BUILD_TYPE=Release"
 | 
						|
    "-DLLVM_TARGETS_TO_BUILD=all"
 | 
						|
    "-DGCC_INSTALL_PREFIX=${gccReal}"
 | 
						|
  ] ++ stdenv.lib.optionals (stdenv.gcc.libc != null) [
 | 
						|
    "-DC_INCLUDE_DIRS=${stdenv.gcc.libc}/include/"
 | 
						|
  ];
 | 
						|
 | 
						|
  enableParallelBuilding = true;
 | 
						|
 | 
						|
  src = fetchurl {
 | 
						|
      url = "http://llvm.org/releases/${version}/clang-${version}.src.tar.gz";
 | 
						|
      sha256 = "0n2nzw3pw2v7fk67f2k2qyzd9wibvi3i5j7cjzz1csqgghzz1aia";
 | 
						|
  };
 | 
						|
 | 
						|
  passthru = { gcc = stdenv.gcc.gcc; };
 | 
						|
 | 
						|
  meta = {
 | 
						|
    homepage = http://clang.llvm.org/;
 | 
						|
    description = "A C language family frontend for LLVM";
 | 
						|
    license = "BSD";
 | 
						|
    maintainers = with stdenv.lib.maintainers; [viric shlevy];
 | 
						|
    platforms = with stdenv.lib.platforms; all;
 | 
						|
  };
 | 
						|
}
 |