nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3
4 stdenv,
5 fetchFromGitLab,
6 fetchpatch,
7 nix-update-script,
8
9 # nativeBuildInputs
10 doxygen,
11 cmake,
12 graphviz,
13}:
14
15stdenv.mkDerivation (finalAttrs: {
16 pname = "eigen";
17 version = "5.0.1";
18
19 src = fetchFromGitLab {
20 owner = "libeigen";
21 repo = "eigen";
22 tag = finalAttrs.version;
23 hash = "sha256-8TW1MUXt2gWJmu5YbUWhdvzNBiJ/KIVwIRf2XuVZeqo=";
24 };
25
26 patches = [
27 # merged upstream
28 (fetchpatch {
29 name = "fix-doc.patch";
30 url = "https://gitlab.com/libeigen/eigen/-/commit/976f15ebca3f486902c3da4c98b8f92c3c4ed7a4.diff";
31 hash = "sha256-/FSXhY+/ZRKfE/aIDAgP+DoNCtH8ikUItYGmfo+QH0E=";
32 })
33 ];
34
35 outputs = [
36 "out"
37 "doc"
38 ];
39
40 nativeBuildInputs = [
41 doxygen
42 cmake
43 graphviz
44 ];
45
46 postInstall = ''
47 cmake --build . -t install-doc
48 '';
49
50 # tests are super long and mostly flaky
51 doCheck = false;
52
53 passthru.updateScript = nix-update-script { };
54
55 meta = {
56 homepage = "https://eigen.tuxfamily.org";
57 description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
58 changelog = "https://gitlab.com/libeigen/eigen/-/blob/${finalAttrs.src.tag}/CHANGELOG.md";
59 license = lib.licenses.lgpl3Plus;
60 maintainers = with lib.maintainers; [
61 nim65s
62 pbsds
63 raskin
64 ];
65 platforms = lib.platforms.unix;
66 };
67})