Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / compilers / llvm / 7 / lldb / default.nix
blob3fa5b411f634747a9a7dbb1c23cc0635965bfc52
1 { lib, stdenv
2 , fetch
3 , cmake
4 , zlib
5 , ncurses
6 , swig
7 , which
8 , libedit
9 , libxml2
10 , llvm
11 , clang-unwrapped
12 , perl
13 , python3
14 , version
15 , darwin
18 stdenv.mkDerivation {
19   pname = "lldb";
20   inherit version;
22   src = fetch "lldb" "0klsscg1sczc4nw2l53xggi969k361cng2sjjrfp3bv4g5x14s4v";
24   nativeBuildInputs = [ cmake perl python3 which swig ];
25   buildInputs = [ ncurses zlib libedit libxml2 llvm ]
26     ++ 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 ];
29   postPatch = ''
30     # Fix up various paths that assume llvm and clang are installed in the same place
31     sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
32       cmake/modules/LLDBStandalone.cmake
33     sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
34       cmake/modules/LLDBStandalone.cmake
35     sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
36       cmake/modules/LLDBStandalone.cmake
37     sed -i -e 's,message(SEND_ERROR "Cannot find debugserver on system."),,' \
38            -e 's,string(STRIP ''${XCODE_DEV_DIR} XCODE_DEV_DIR),,' \
39            tools/debugserver/source/CMakeLists.txt
41     # Fix /usr/bin references for sandboxed builds.
42     patchShebangs scripts
43   '';
45   cmakeFlags = [
46     "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
47     "-DSKIP_DEBUGSERVER=ON"
48   ];
50   CXXFLAGS = "-fno-rtti";
51   hardeningDisable = [ "format" ];
53   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-I${libxml2.dev}/include/libxml2";
55   postInstall = ''
56     mkdir -p $out/share/man/man1
57     cp ../docs/lldb.1 $out/share/man/man1/
58   '';
60   meta = with lib; {
61     description = "A next-generation high-performance debugger";
62     homepage    = "https://llvm.org/";
63     license     = licenses.ncsa;
64     platforms   = platforms.all;
65   };