nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 126 lines 3.2 kB view raw
1{ lib, stdenv, llvm_meta 2, fetch 3, cmake 4, zlib 5, ncurses 6, swig 7, which 8, libedit 9, libxml2 10, libllvm 11, libclang 12, python3 13, version 14, darwin 15, lit 16, makeWrapper 17, enableManpages ? false 18}: 19 20stdenv.mkDerivation (rec { 21 pname = "lldb"; 22 inherit version; 23 24 src = fetch pname "1vlyg015dyng43xqb8cg2l6r9ix8klibxsajazbfnckdnh54hwxj"; 25 26 patches = [ 27 ./procfs.patch 28 ./gnu-install-dirs.patch 29 ]; 30 31 outputs = [ "out" "lib" "dev" ]; 32 33 nativeBuildInputs = [ 34 cmake python3 which swig lit makeWrapper 35 ] ++ lib.optionals enableManpages [ 36 python3.pkgs.sphinx python3.pkgs.recommonmark 37 ]; 38 39 buildInputs = [ 40 ncurses zlib libedit libxml2 libllvm 41 ] ++ lib.optionals stdenv.isDarwin [ 42 darwin.libobjc 43 darwin.apple_sdk.libs.xpc 44 darwin.apple_sdk.frameworks.Foundation 45 darwin.bootstrap_cmds 46 darwin.apple_sdk.frameworks.Carbon 47 darwin.apple_sdk.frameworks.Cocoa 48 ]; 49 50 hardeningDisable = [ "format" ]; 51 52 cmakeFlags = [ 53 "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" 54 "-DLLVM_ENABLE_RTTI=OFF" 55 "-DClang_DIR=${libclang.dev}/lib/cmake" 56 "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" 57 ] ++ lib.optionals stdenv.isDarwin [ 58 "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" 59 ] ++ lib.optionals (!stdenv.isDarwin) [ 60 "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic 61 ] ++ lib.optionals enableManpages [ 62 "-DLLVM_ENABLE_SPHINX=ON" 63 "-DSPHINX_OUTPUT_MAN=ON" 64 "-DSPHINX_OUTPUT_HTML=OFF" 65 ] ++ lib.optionals doCheck [ 66 "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" 67 "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" 68 ]; 69 70 doCheck = false; 71 72 doInstallCheck = true; 73 74 installCheckPhase = '' 75 if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then 76 echo "ERROR: python files not installed where expected!"; 77 return 1; 78 fi 79 ''; 80 81 postInstall = '' 82 wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ 83 84 # Editor support 85 # vscode: 86 install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json 87 mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 88 ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 89 ''; 90 91 meta = llvm_meta // { 92 homepage = "https://lldb.llvm.org/"; 93 description = "A next-generation high-performance debugger"; 94 longDescription = '' 95 LLDB is a next generation, high-performance debugger. It is built as a set 96 of reusable components which highly leverage existing libraries in the 97 larger LLVM Project, such as the Clang expression parser and LLVM 98 disassembler. 99 ''; 100 }; 101} // lib.optionalAttrs enableManpages { 102 pname = "lldb-manpages"; 103 104 buildPhase = '' 105 make docs-man 106 ''; 107 108 propagatedBuildInputs = []; 109 110 # manually install lldb man page 111 installPhase = '' 112 mkdir -p $out/share/man/man1 113 install docs/man/lldb.1 -t $out/share/man/man1/ 114 ''; 115 116 postPatch = null; 117 postInstall = null; 118 119 outputs = [ "out" ]; 120 121 doCheck = false; 122 123 meta = llvm_meta // { 124 description = "man pages for LLDB ${version}"; 125 }; 126})