nix.nvim/nix/cpptools.nix
jiriks74 db5a3f56b4
feat(dap): Added debugger from cpptools
Added:
  - OpenDebugAD7 from [vscode-cpptools](https://github.com/microsoft/vscode-cpptools)

It works better with `nvim-dap-ui`. With GDB you have to wait for stdout
flush to see program output, the output is in the repl instead of the
console, etc. The VSCode debugger doesn't have such issues.
2024-09-25 23:57:17 +02:00

72 lines
2.3 KiB
Nix

{ stdenv, lib
, system ? builtins.currentSystem
, fetchurl
, unzip
, libz
, libcxx
, lttng-ust_2_12
, autoPatchelfHook
}:
stdenv.mkDerivation rec {
pname = "cpptools";
version = "1.21.6";
# Get the current system architecture
# arch = builtins.currentSystem;
linux-x64 = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-linux-x64.vsix";
linux-arm64 = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-linux-arm64.vsix";
darwin-x64 = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-macos-x64.vsix";
darwin-arm64 = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-macos-arm64.vsix";
src = fetchurl {
url = lib.getAttr system {
x86_64-linux = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-linux-x64.vsix";
aarch64-linux = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-linux-arm64.vsix";
aarch64-darwin = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-macos-arm64.vsix";
x86_64-darwin = "https://github.com/microsoft/vscode-cpptools/releases/download/v${version}/cpptools-macos-x64.vsix";
};
hash = lib.getAttr system {
x86_64-linux = "sha256-q6SDImUppICJopOi+HiIUMg7Ue1Qu0A41uewNxRdzeA=";
aarch64-linux = "sha256-/Zci8P5RAK26FASHpQnIYR5fvSF9lgTTrgVAT33Wfwc=";
x86_64-darwin = "sha256-P2LacAaCRXnsGUQOLuIyvfgxweeVHsDFTrAEuN/lBIQ=";
aarch64-darwin = "sha256-P2LacAaCRXnsGUQOLuIyvfgxweeVHsDFTrAEuN/lBIQ=";
};
};
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
unzip
libz
libcxx
lttng-ust_2_12
];
unpackPhase = ''
unzip $src
'';
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $out/opt
cp -r extension/debugAdapters/* $out/opt
install -m755 -D extension/debugAdapters/bin/OpenDebugAD7 $out/opt/bin/OpenDebugAD7
ln -s $out/opt/bin/OpenDebugAD7 $out/bin/OpenDebugAD7
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/microsoft/vscode-cpptools";
description = "Official repository for the Microsoft C/C++ extension for VS Code. ";
platforms = platforms.linux;
};
}