nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 109 lines 3.1 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, makeWrapper 16}: 17 18stdenv.mkDerivation rec { 19 pname = "lldb"; 20 inherit version; 21 22 src = fetch "lldb" "1mriw4adrwm6kzabrjr7yqmdiylxd6glf6samd80dp8idnm9p9z8"; 23 24 patches = [ 25 ./gnu-install-dirs.patch 26 27 # Fix darwin build 28 ./lldb-gdb-remote-no-libcompress.patch 29 ]; 30 31 postPatch = '' 32 # Fix up various paths that assume llvm and clang are installed in the same place 33 sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \ 34 cmake/modules/LLDBStandalone.cmake 35 sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \ 36 cmake/modules/LLDBStandalone.cmake 37 sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \ 38 cmake/modules/LLDBStandalone.cmake 39 40 substituteInPlace tools/CMakeLists.txt \ 41 --replace "add_subdirectory(debugserver)" "" 42 ''; 43 44 outputs = [ "out" "lib" "dev" ]; 45 46 nativeBuildInputs = [ 47 cmake python3 which swig makeWrapper 48 ]; 49 50 buildInputs = [ 51 ncurses zlib libedit libxml2 libllvm 52 ] ++ lib.optionals stdenv.isDarwin [ 53 darwin.libobjc 54 darwin.apple_sdk.libs.xpc 55 darwin.apple_sdk.frameworks.Foundation 56 darwin.bootstrap_cmds 57 darwin.apple_sdk.frameworks.Carbon 58 darwin.apple_sdk.frameworks.Cocoa 59 darwin.apple_sdk.frameworks.DebugSymbols 60 ]; 61 62 CXXFLAGS = "-fno-rtti"; 63 hardeningDisable = [ "format" ]; 64 65 cmakeFlags = [ 66 "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" 67 "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic 68 ] ++ lib.optionals stdenv.isDarwin [ 69 # Building debugserver requires the proprietary libcompression 70 "-DLLDB_NO_DEBUGSERVER=ON" 71 ] ++ lib.optionals doCheck [ 72 "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" 73 "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" 74 ]; 75 76 doCheck = false; 77 78 doInstallCheck = true; 79 80 installCheckPhase = '' 81 if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then 82 echo "ERROR: python files not installed where expected!"; 83 return 1; 84 fi 85 ''; 86 87 postInstall = '' 88 wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ 89 90 mkdir -p $out/share/man/man1 91 cp ../docs/lldb.1 $out/share/man/man1/ 92 93 install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json 94 mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 95 ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin 96 ''; 97 98 meta = llvm_meta // { 99 broken = stdenv.isDarwin && stdenv.isAarch64; 100 homepage = "https://lldb.llvm.org/"; 101 description = "A next-generation high-performance debugger"; 102 longDescription = '' 103 LLDB is a next generation, high-performance debugger. It is built as a set 104 of reusable components which highly leverage existing libraries in the 105 larger LLVM Project, such as the Clang expression parser and LLVM 106 disassembler. 107 ''; 108 }; 109}