nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 92 lines 1.9 kB view raw
1{ 2 lib, 3 stdenv, 4 llvm_meta, 5 monorepoSrc, 6 release_version, 7 runCommand, 8 cmake, 9 libxml2, 10 libllvm, 11 ninja, 12 libclang, 13 version, 14 python3, 15 buildLlvmPackages, 16 patches ? [ ], 17 devExtraCmakeFlags ? [ ], 18 fetchpatch, 19}: 20 21stdenv.mkDerivation (finalAttrs: { 22 pname = "bolt"; 23 inherit version; 24 25 # Blank llvm dir just so relative path works 26 src = runCommand "bolt-src-${finalAttrs.version}" { inherit (monorepoSrc) passthru; } '' 27 mkdir $out 28 cp -r ${monorepoSrc}/cmake "$out" 29 cp -r ${monorepoSrc}/${finalAttrs.pname} "$out" 30 cp -r ${monorepoSrc}/third-party "$out" 31 32 # BOLT re-runs tablegen against LLVM sources, so needs them available. 33 cp -r ${monorepoSrc}/llvm/ "$out" 34 chmod -R +w $out/llvm 35 ''; 36 37 sourceRoot = "${finalAttrs.src.name}/bolt"; 38 39 patches = lib.optionals (lib.versions.major release_version == "19") [ 40 (fetchpatch { 41 url = "https://github.com/llvm/llvm-project/commit/abc2eae68290c453e1899a94eccc4ed5ea3b69c1.patch"; 42 hash = "sha256-oxCxOjhi5BhNBEraWalEwa1rS3Mx9CuQgRVZ2hrbd7M="; 43 }) 44 (fetchpatch { 45 url = "https://github.com/llvm/llvm-project/commit/5909979869edca359bcbca74042c2939d900680e.patch"; 46 hash = "sha256-l4rQHYbblEADBXaZIdqTG0sZzH4fEQvYiqhLYNZDMa8="; 47 }) 48 ]; 49 50 nativeBuildInputs = [ 51 cmake 52 ninja 53 python3 54 ]; 55 56 buildInputs = [ 57 libllvm 58 libxml2 59 ]; 60 61 cmakeFlags = [ 62 (lib.cmakeFeature "LLVM_TABLEGEN_EXE" "${buildLlvmPackages.tblgen}/bin/llvm-tblgen") 63 ] 64 ++ devExtraCmakeFlags; 65 66 postUnpack = '' 67 chmod -R u+w -- $sourceRoot/.. 68 ''; 69 70 prePatch = '' 71 cd .. 72 ''; 73 74 postPatch = '' 75 cd bolt 76 ''; 77 78 postInstall = '' 79 mkdir -p $dev/lib 80 mv $out/lib/libLLVMBOLT*.a $dev/lib 81 ''; 82 83 outputs = [ 84 "out" 85 "dev" 86 ]; 87 88 meta = llvm_meta // { 89 homepage = "https://github.com/llvm/llvm-project/tree/main/bolt"; 90 description = "LLVM post-link optimizer"; 91 }; 92})