HeavyX/compilers/llvm-hx.nix

62 lines
1.8 KiB
Nix

{ stdenv
, fetchurl, runCommand
, perl, groff, cmake, libxml2, python, libffi, valgrind
, ...
}:
let
llvm-src = fetchurl {
url = "https://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar.xz";
sha256 = "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3";
};
clang-src = fetchurl {
url = "https://releases.llvm.org/7.0.1/cfe-7.0.1.src.tar.xz";
sha256 = "067lwggnbg0w1dfrps790r5l6k8n5zwhlsw7zb6zvmfpwpfn4nx4";
};
combined-src = runCommand "llvm-clang-src" {}
''
mkdir -p $out
mkdir -p $out/tools/clang
tar xf ${llvm-src} -C $out --strip-components=1
tar xf ${clang-src} -C $out/tools/clang --strip-components=1
'';
in
stdenv.mkDerivation rec {
name = "llvm-hx";
src = combined-src;
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
preBuild = ''
NIX_BUILD_CORES=4
makeFlagsArray=(-j''$NIX_BUILD_CORES)
mkdir -p $out/
'';
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DLLVM_BUILD_LLVM_DYLIB=ON"
"-DLLVM_LINK_LLVM_DYLIB=ON"
"-DLLVM_TARGETS_TO_BUILD=X86"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV"
"-DLLVM_ENABLE_ASSERTIONS=OFF"
"-DLLVM_INSTALL_UTILS=ON"
"-DLLVM_INCLUDE_TESTS=OFF"
"-DLLVM_INCLUDE_DOCS=OFF"
"-DLLVM_INCLUDE_EXAMPLES=OFF"
"-DCLANG_ENABLE_ARCMT=OFF"
"-DCLANG_ENABLE_STATIC_ANALYZER=OFF"
"-DCLANG_INCLUDE_TESTS=OFF"
"-DCLANG_INCLUDE_DOCS=OFF"
];
enableParallelBuilding = true;
meta = {
description = "Collection of modular and reusable compiler and toolchain technologies";
homepage = http://llvm.org/;
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ sb0 ];
platforms = stdenv.lib.platforms.all;
};
}