{ stdenv , fetch , cmake , zlib , ncurses , swig , which , libedit , libxml2 , llvm , clang-unwrapped , python , version , darwin }: stdenv.mkDerivation { name = "lldb-${version}"; src = fetch "lldb" "0yy43a27zx3r51b6gkv3v2mdiqcq3mf0ngki47ya0i30v3gx4cl4"; patches = [ ./lldb-libedit.patch ]; postPatch = '' # Fix up various paths that assume llvm and clang are installed in the same place sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \ cmake/modules/LLDBStandalone.cmake sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \ cmake/modules/LLDBStandalone.cmake sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \ cmake/modules/LLDBStandalone.cmake ''; nativeBuildInputs = [ cmake python which swig ]; buildInputs = [ ncurses zlib libedit libxml2 llvm ] ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa darwin.cf-private ]; CXXFLAGS = "-fno-rtti"; hardeningDisable = [ "format" ]; cmakeFlags = [ "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic ]; # Add missing include to fix error when using std::bind prePatch = '' sed -i -e '30i#include ' include/lldb/Utility/TaskPool.h ''; enableParallelBuilding = true; postInstall = '' mkdir -p $out/share/man/man1 cp ../docs/lldb.1 $out/share/man/man1/ ''; meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; homepage = http://llvm.org/; license = licenses.ncsa; platforms = platforms.all; }; }