depot/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix
Luke Granger-Brown 57725ef3ec Squashed 'third_party/nixpkgs/' content from commit 76612b17c0ce
git-subtree-dir: third_party/nixpkgs
git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
2024-11-10 23:59:47 +00:00

92 lines
1.8 KiB
Nix

{ lib
, clangStdenv
, cmake
, fetchFromGitHub
, llvmPackages_13
# Libraries
, argparse
, cling
, cppzmq
, libuuid
, ncurses
, openssl
, pugixml
, xeus
, xeus-zmq
, xtl
, zeromq
, zlib
# Settings
, debug ? false
}:
let
# Nixpkgs moved to argparse 3.x, but we need ~2.9
argparse_2_9 = argparse.overrideAttrs (oldAttrs: {
version = "2.9";
src = fetchFromGitHub {
owner = "p-ranav";
repo = "argparse";
rev = "v2.9";
sha256 = "sha256-vbf4kePi5gfg9ub4aP1cCK1jtiA65bUS9+5Ghgvxt/E=";
};
});
in
clangStdenv.mkDerivation rec {
pname = "xeus-cling";
version = "0.15.3";
src = fetchFromGitHub {
owner = "QuantStack";
repo = "xeus-cling";
rev = "${version}";
hash = "sha256-OfZU+z+p3/a36GntusBfwfFu3ssJW4Fu7SV3SMCoo1I=";
};
patches = [
./0001-Fix-bug-in-extract_filename.patch
./0002-Don-t-pass-extra-includes-configure-this-with-flags.patch
];
nativeBuildInputs = [ cmake ];
buildInputs = [
argparse_2_9
cling.unwrapped
cppzmq
libuuid
llvmPackages_13.llvm
ncurses
openssl
pugixml
xeus
xeus-zmq
xtl
zeromq
zlib
];
cmakeBuildType = if debug then "Debug" else "Release";
postPatch = ''
substituteInPlace src/xmagics/executable.cpp \
--replace "getDataLayout" "getDataLayoutString"
substituteInPlace src/xmagics/execution.cpp \
--replace "simplisticCastAs" "castAs"
substituteInPlace src/xmime_internal.hpp \
--replace "code.str()" "code.str().str()"
'';
dontStrip = debug;
meta = {
description = "Jupyter kernel for the C++ programming language";
mainProgram = "xcpp";
homepage = "https://github.com/jupyter-xeus/xeus-cling";
maintainers = with lib.maintainers; [ thomasjm ];
platforms = lib.platforms.unix;
license = lib.licenses.mit;
};
}