Skip to content

Commit d8b5048

Browse files
FraGagJohnRTitor
authored andcommitted
vscode-extensions.vadimcn.vscode-lldb: 1.10.0 -> 1.11.4
- Remove custom lldb. The extension uses stock lldb since 1.11.0. - Build the adapter with clang++. - Build the adapter without weak linkage. - Fix tools/prep-package.js failing due to missing devDependencies. - Update GitHub repo name. - Make various adjustments after upstream reorg.
1 parent a7f22e8 commit d8b5048

File tree

7 files changed

+49
-94
lines changed

7 files changed

+49
-94
lines changed

pkgs/applications/editors/vscode/extensions/default.nix

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,20 @@
33
{
44
autoPatchelfHook,
55
callPackage,
6+
cargo,
67
config,
78
fetchurl,
89
jdk,
910
jq,
1011
lib,
12+
libcxxStdenv,
1113
llvmPackages,
12-
llvmPackages_14,
14+
llvmPackages_19,
15+
makeRustPlatform,
1316
moreutils,
1417
protobuf,
1518
python3Packages,
19+
rustc,
1620
stdenv,
1721
vscode-utils,
1822
zlib,
@@ -5119,7 +5123,17 @@ let
51195123
};
51205124
};
51215125

5122-
vadimcn.vscode-lldb = callPackage ./vadimcn.vscode-lldb { llvmPackages = llvmPackages_14; };
5126+
vadimcn.vscode-lldb = callPackage ./vadimcn.vscode-lldb {
5127+
llvmPackages = llvmPackages_19;
5128+
# The adapter is meant to be compiled with clang++,
5129+
# based on the provided CMake toolchain files.
5130+
# <https://github.com/vadimcn/codelldb/tree/master/cmake>
5131+
rustPlatform = makeRustPlatform {
5132+
stdenv = libcxxStdenv;
5133+
inherit cargo rustc;
5134+
};
5135+
stdenv = libcxxStdenv;
5136+
};
51235137

51245138
valentjn.vscode-ltex = vscode-utils.buildVscodeMarketplaceExtension rec {
51255139
mktplcRef = {

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/adapter.nix

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,48 +17,47 @@ let
1717
if stdenv.hostPlatform.isDarwin then
1818
"/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver"
1919
else
20-
"${lldb.out}/bin/lldb-server";
20+
"${lib.getBin lldb}/bin/lldb-server";
21+
LLVM_TRIPLE = stdenv.hostPlatform.config;
2122
in
2223
rustPlatform.buildRustPackage {
2324
pname = "${pname}-adapter";
2425
inherit version src;
2526

2627
useFetchCargoVendor = true;
27-
cargoHash = "sha256-7tGX8wt2bb1segoWbBEBwZbznOaAiAyh9i/JC5FKUBU=";
28+
cargoHash = "sha256-Nh4YesgWa1JR8tLfrIRps9TBdsAfilXu6G2/kB08co8=";
2829

29-
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ lldb ];
30+
# Environment variables, based on <https://github.com/vadimcn/codelldb/blob/master/cargo_config.unix.toml>
31+
# The LLDB_* variables are used in adapter/lldb/build.rs.
32+
"CC_${LLVM_TRIPLE}" = "${stdenv.cc}/bin/cc";
33+
"CXX_${LLVM_TRIPLE}" = "${stdenv.cc}/bin/c++";
34+
LLDB_INCLUDE = "${lib.getDev lldb}/include";
35+
LLDB_LINK_LIB = "lldb";
36+
LLDB_LINK_SEARCH = "${lib.getLib lldb}/lib";
3037

3138
nativeBuildInputs = [ makeWrapper ];
3239

33-
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { NIX_LDFLAGS = "-llldb -lc++abi"; };
34-
3540
buildAndTestSubdir = "adapter";
3641

37-
buildFeatures = [ "weak-linkage" ];
42+
# There's isn't much point in enabling the `weaklink` feature
43+
# when we provide lldb via Nix.
44+
# buildFeatures = [ "weaklink" ];
3845

3946
cargoBuildFlags = [
40-
"--lib"
4147
"--bin=codelldb"
4248
];
4349

4450
postFixup = ''
45-
mkdir -p $out/share/{adapter,formatters}
46-
# codelldb expects libcodelldb.so to be in the same
47-
# directory as the executable, and can't find it in $out/lib.
48-
# To make codelldb executable as a standalone,
49-
# we put all files in $out/share, and then wrap the binary in $out/bin.
51+
mkdir -p $out/share/{adapter,lang_support}
5052
mv $out/bin/* $out/share/adapter
51-
cp $out/lib/* $out/share/adapter
5253
cp -r adapter/scripts $out/share/adapter
53-
cp -t $out/share/formatters formatters/*.py
54+
cp -t $out/share/lang_support lang_support/*.py
5455
ln -s ${lib.getLib lldb} $out/share/lldb
5556
makeWrapper $out/share/adapter/codelldb $out/bin/codelldb \
5657
--set-default LLDB_DEBUGSERVER_PATH "${lldbServer}"
5758
'';
5859

59-
patches = [ ./patches/adapter-output-shared_object.patch ];
60-
61-
# Tests are linked to liblldb but it is not available here.
60+
# Tests fail to build (as of version 1.11.4).
6261
doCheck = false;
6362

6463
passthru = { inherit lldbServer; };

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,20 @@ assert lib.versionAtLeast python3.version "3.5";
1717
let
1818
publisher = "vadimcn";
1919
pname = "vscode-lldb";
20-
version = "1.10.0";
20+
version = "1.11.4";
2121

2222
vscodeExtUniqueId = "${publisher}.${pname}";
2323
vscodeExtPublisher = publisher;
2424
vscodeExtName = pname;
2525

2626
src = fetchFromGitHub {
2727
owner = "vadimcn";
28-
repo = "vscode-lldb";
28+
repo = "codelldb";
2929
rev = "v${version}";
30-
hash = "sha256-ExSS5HxDmJJtYypRYJNz7nY0D50gjoDBc4CnJMfgVw8=";
30+
hash = "sha256-+Pe7ij5ukF5pLgwvr+HOHjIv1TQDiPOEeJtkpIW9XWI=";
3131
};
3232

33-
# need to build a custom version of lldb and llvm for enhanced rust support
34-
lldb = (import ./lldb.nix { inherit fetchFromGitHub llvmPackages; });
33+
lldb = llvmPackages.lldb;
3534

3635
adapter = (
3736
import ./adapter.nix {
@@ -86,10 +85,9 @@ stdenv.mkDerivation {
8685

8786
patches = [ ./patches/cmake-build-extension-only.patch ];
8887

89-
postPatch = ''
90-
# temporary patch for forgotten version updates
91-
substituteInPlace CMakeLists.txt \
92-
--replace-fail "1.9.2" ${version}
88+
# Make devDependencies available to tools/prep-package.js
89+
preConfigure = ''
90+
cp -r ${nodeDeps}/lib/node_modules .
9391
'';
9492

9593
postConfigure =
@@ -117,7 +115,7 @@ stdenv.mkDerivation {
117115
118116
unzip ./codelldb-bootstrap.vsix 'extension/*' -d ./vsix-extracted
119117
120-
mkdir -p $ext/{adapter,formatters}
118+
mkdir -p $ext/adapter
121119
mv -t $ext vsix-extracted/extension/*
122120
cp -t $ext/ -r ${adapter}/share/*
123121
wrapProgram $ext/adapter/codelldb \

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/lldb.nix

Lines changed: 0 additions & 35 deletions
This file was deleted.

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/node_deps.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ buildNpmPackage {
1313
pname = "${pname}-node-deps";
1414
inherit version src;
1515

16-
npmDepsHash = "sha256-fMKGi+AJTMlWl7SQtZ21hUwOLgqlFYDhwLvEergQLfI=";
16+
npmDepsHash = "sha256-Efeun7AFMAnoNXLbTGH7OWHaBHT2tO9CodfjKrIYw40=";
1717

1818
nativeBuildInputs = [
1919
python3

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/patches/adapter-output-shared_object.patch

Lines changed: 0 additions & 22 deletions
This file was deleted.

pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/patches/cmake-build-extension-only.patch

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 5cab8b1..0b500d5 100644
23
--- a/CMakeLists.txt
34
+++ b/CMakeLists.txt
4-
@@ -16,13 +16,6 @@
5+
@@ -16,13 +16,6 @@ endif()
56
set(VERSION "${VERSION}${VERSION_SUFFIX}")
67
message("Version ${VERSION}")
78

@@ -15,32 +16,32 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
1516
if (CMAKE_SYSROOT)
1617
set(CMAKE_C_FLAGS "--sysroot=${CMAKE_SYSROOT} ${CMAKE_C_FLAGS}")
1718
set(CMAKE_CXX_FLAGS "--sysroot=${CMAKE_SYSROOT} ${CMAKE_CXX_FLAGS}")
18-
@@ -102,16 +95,6 @@
19-
configure_file(webpack.config.js ${CMAKE_CURRENT_BINARY_DIR}/webpack.config.js @ONLY)
19+
@@ -116,16 +109,6 @@ configure_file(package.json ${CMAKE_CURRENT_BINARY_DIR}/package.json @ONLY)
20+
configure_file(webpack.config.js ${CMAKE_CURRENT_BINARY_DIR}/webpack.config.js)
2021
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
2122

2223
-# Install node_modules
2324
-execute_process(
24-
- COMMAND ${NPM} ci # like install, but actually respects package-lock file.
25+
- COMMAND ${NPM} --loglevel verbose ci # like install, but actually respects package-lock file.
2526
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
2627
- RESULT_VARIABLE Result
2728
-)
2829
-if (NOT ${Result} EQUAL 0)
29-
- message(FATAL_ERROR "npm intall failed: ${Result}")
30+
- message(FATAL_ERROR "npm install failed: ${Result}")
3031
-endif()
3132
-
3233
# Resolve $refs
3334
execute_process(
3435
COMMAND ${WithEnv} NODE_PATH=${CMAKE_CURRENT_BINARY_DIR}/node_modules node ${CMAKE_CURRENT_SOURCE_DIR}/tools/prep-package.js ${CMAKE_CURRENT_BINARY_DIR}/package.json ${CMAKE_CURRENT_BINARY_DIR}/package.json
35-
@@ -169,6 +152,7 @@
36+
@@ -183,6 +166,7 @@ add_custom_target(adapter_tests
3637

3738
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_BINARY_DIR}/README.md)
3839
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md ${CMAKE_CURRENT_BINARY_DIR}/CHANGELOG.md)
3940
+add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/LICENSE)
4041
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/lldb.png ${CMAKE_CURRENT_BINARY_DIR}/images/lldb.png)
4142
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/user.svg ${CMAKE_CURRENT_BINARY_DIR}/images/user.svg)
4243
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/users.svg ${CMAKE_CURRENT_BINARY_DIR}/images/users.svg)
43-
@@ -185,6 +169,7 @@
44+
@@ -199,6 +183,7 @@ add_custom_target(dev_debugging
4445
set(PackagedFilesBootstrap
4546
README.md
4647
CHANGELOG.md

0 commit comments

Comments
 (0)