nixpkgs/pkgs/development/compilers/llvm/3.3/clang.nix

46 lines
1.2 KiB
Nix

{ stdenv, fetchurl, perl, groff, llvm, cmake, libxml2, python }:
let
version = "3.3";
gccReal = if (stdenv.cc.cc or null) == null then stdenv.cc else stdenv.cc.cc;
in
stdenv.mkDerivation {
name = "clang-${version}";
buildInputs = [ perl llvm groff cmake libxml2 python ];
patches = [ ./clang-tablegen-dir.patch ] ++
stdenv.lib.optional (stdenv.cc.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.cc.libc != null) [
"-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include/"
];
enableParallelBuilding = true;
src = fetchurl {
url = "http://llvm.org/releases/${version}/cfe-${version}.src.tar.gz";
sha256 = "15mrvw43s4frk1j49qr4v5viq68h8qlf10qs6ghd6mrsmgj5vddi";
};
passthru = {
isClang = true;
cc = stdenv.cc.cc;
gcc = gccReal;
};
meta = {
homepage = http://clang.llvm.org/;
description = "A C language family frontend for LLVM";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; all;
};
}