nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 117 lines 3.3 kB view raw
1{ lib, stdenv, llvm_meta 2, fetch 3, fetchpatch 4, cmake 5, zlib 6, ncurses 7, swig 8, which 9, libedit 10, libxml2 11, libllvm 12, libclang 13, python3 14, version 15, darwin 16, makeWrapper 17, perl 18, lit 19}: 20 21stdenv.mkDerivation rec { 22 pname = "lldb"; 23 inherit version; 24 25 src = fetch pname "02gb3fbz09kyw8n71218v5v77ip559x3gqbcp8y3w6n3jpbryywa"; 26 27 patches = [ 28 ./procfs.patch 29 ./gnu-install-dirs.patch 30 31 # Fix darwin build 32 (fetchpatch { 33 name = "lldb-use-system-debugserver-fix.patch"; 34 url = "https://github.com/llvm-mirror/lldb/commit/be770754cc43da22eacdb70c6203f4582eeb011f.diff"; 35 sha256 = "sha256-tKkk6sn//0Hu0nlzoKWs5fXMWc+O2JAWOEJ1ZnaLuVU="; 36 excludes = [ "packages/*" ]; 37 postFetch = '' 38 substituteInPlace "$out" --replace add_lldb_tool_subdirectory add_subdirectory 39 ''; 40 }) 41 ./lldb-gdb-remote-no-libcompress.patch 42 ]; 43 44 outputs = [ "out" "lib" "dev" ]; 45 46 nativeBuildInputs = [ 47 cmake python3 which swig lit makeWrapper 48 ] ++ lib.optionals stdenv.isDarwin [ 49 # for scripts/generate-vers.pl 50 perl 51 ]; 52 53 buildInputs = [ 54 ncurses zlib libedit libxml2 libllvm 55 ] ++ lib.optionals stdenv.isDarwin [ 56 darwin.libobjc 57 darwin.apple_sdk.libs.xpc 58 darwin.apple_sdk.frameworks.Foundation 59 darwin.bootstrap_cmds 60 darwin.apple_sdk.frameworks.Carbon 61 darwin.apple_sdk.frameworks.Cocoa 62 darwin.apple_sdk.frameworks.DebugSymbols 63 ]; 64 65 CXXFLAGS = "-fno-rtti"; 66 hardeningDisable = [ "format" ]; 67 68 cmakeFlags = [ 69 "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" 70 "-DClang_DIR=${libclang.dev}/lib/cmake" 71 "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" 72 "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic 73 ] ++ lib.optionals stdenv.isDarwin [ 74 # Building debugserver requires the proprietary libcompression 75 "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" 76 ] ++ lib.optionals doCheck [ 77 "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" 78 "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" 79 ]; 80 81 doCheck = false; 82 83 doInstallCheck = true; 84 85 installCheckPhase = '' 86 if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then 87 echo "ERROR: python files not installed where expected!"; 88 return 1; 89 fi 90 ''; 91 92 postInstall = '' 93 wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ 94 95 # man page 96 mkdir -p $out/share/man/man1 97 install ../docs/lldb.1 -t $out/share/man/man1/ 98 99 # Editor support 100 # vscode: 101 install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json 102 mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 103 ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 104 ''; 105 106 meta = llvm_meta // { 107 broken = stdenv.isDarwin && stdenv.isAarch64; 108 homepage = "https://lldb.llvm.org/"; 109 description = "A next-generation high-performance debugger"; 110 longDescription = '' 111 LLDB is a next generation, high-performance debugger. It is built as a set 112 of reusable components which highly leverage existing libraries in the 113 larger LLVM Project, such as the Clang expression parser and LLVM 114 disassembler. 115 ''; 116 }; 117}