From d53d5a8b38f8ecbf75388a1582efd4c19e61d5da Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 6 May 2023 21:03:17 +0300 Subject: llvmPackages.lldb: deduplicate >10 --- pkgs/development/compilers/llvm/12/default.nix | 22 +++- .../development/compilers/llvm/12/lldb/default.nix | 142 --------------------- 2 files changed, 17 insertions(+), 147 deletions(-) delete mode 100644 pkgs/development/compilers/llvm/12/lldb/default.nix (limited to 'pkgs/development/compilers/llvm/12') diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix index b936b35b155a..7586ca128826 100644 --- a/pkgs/development/compilers/llvm/12/default.nix +++ b/pkgs/development/compilers/llvm/12/default.nix @@ -134,11 +134,23 @@ let inherit (libraries) libunwind; }; - lldb = callPackage ./lldb { - inherit llvm_meta; - inherit (darwin) libobjc bootstrap_cmds; - inherit (darwin.apple_sdk.libs) xpc; - inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa; + lldb = callPackage ../common/lldb.nix { + src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"; + patches = + let + resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" + { + clangLibDir = "${libclang.lib}/lib"; + } '' + substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir + '')) { }; + in + [ + ./lldb/procfs.patch + resourceDirPatch + ./lldb/gnu-install-dirs.patch + ]; + inherit llvm_meta release_version; }; # Below, is the LLVM bootstrapping logic. It handles building a diff --git a/pkgs/development/compilers/llvm/12/lldb/default.nix b/pkgs/development/compilers/llvm/12/lldb/default.nix deleted file mode 100644 index c75eb255cd75..000000000000 --- a/pkgs/development/compilers/llvm/12/lldb/default.nix +++ /dev/null @@ -1,142 +0,0 @@ -{ lib, stdenv, llvm_meta -, runCommand -, fetch -, cmake -, zlib -, ncurses -, swig -, which -, libedit -, libxml2 -, libllvm -, libclang -, python3 -, version -, libobjc -, xpc -, Foundation -, bootstrap_cmds -, Carbon -, Cocoa -, lit -, makeWrapper -, enableManpages ? false -}: - -stdenv.mkDerivation (rec { - pname = "lldb"; - inherit version; - - src = fetch pname "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"; - - patches = [ - ./procfs.patch - (runCommand "resource-dir.patch" { - clangLibDir = "${libclang.lib}/lib"; - } '' - substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir - '') - ./gnu-install-dirs.patch - ]; - - outputs = [ "out" "lib" "dev" ]; - - nativeBuildInputs = [ - cmake python3 which swig lit makeWrapper - ] ++ lib.optionals enableManpages [ - python3.pkgs.sphinx python3.pkgs.recommonmark - ]; - - buildInputs = [ - ncurses - zlib - libedit - libxml2 - libllvm - ] - ++ lib.optionals stdenv.isDarwin [ - libobjc - xpc - Foundation - bootstrap_cmds - Carbon - Cocoa - ]; - - hardeningDisable = [ "format" ]; - - cmakeFlags = [ - "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" - "-DLLVM_ENABLE_RTTI=OFF" - "-DClang_DIR=${libclang.dev}/lib/cmake" - "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" - ] ++ lib.optionals stdenv.isDarwin [ - "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" - ] ++ lib.optionals (!stdenv.isDarwin) [ - "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic - ] ++ lib.optionals enableManpages [ - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - ] ++ lib.optionals doCheck [ - "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" - "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" - ]; - - doCheck = false; - - doInstallCheck = true; - - installCheckPhase = '' - if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then - echo "ERROR: python files not installed where expected!"; - return 1; - fi - ''; - - postInstall = '' - wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ - - # Editor support - # vscode: - install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json - mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin - ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin - ''; - - meta = llvm_meta // { - homepage = "https://lldb.llvm.org/"; - description = "A next-generation high-performance debugger"; - longDescription = '' - LLDB is a next generation, high-performance debugger. It is built as a set - of reusable components which highly leverage existing libraries in the - larger LLVM Project, such as the Clang expression parser and LLVM - disassembler. - ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "lldb-manpages"; - - buildPhase = '' - make docs-lldb-man - ''; - - propagatedBuildInputs = []; - - # manually install lldb man page - installPhase = '' - mkdir -p $out/share/man/man1 - install docs/man/lldb.1 -t $out/share/man/man1/ - ''; - - postPatch = null; - postInstall = null; - - outputs = [ "out" ]; - - doCheck = false; - - meta = llvm_meta // { - description = "man pages for LLDB ${version}"; - }; -}) -- cgit 1.4.1