about summary refs log tree commit diff
path: root/pkgs/by-name/im/imnodes/package.nix
blob: 5559524a10d55ff9ea816c2faa7b2252e8bdca60 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{
  lib,
  stdenv,
  fetchFromGitHub,
  fetchpatch,
  cmake,
  imgui,
  SDL2,
  xorg,
  imnodes,
  withExamples ? false,
}:

stdenv.mkDerivation rec {
  pname = "imnodes";
  version = "unstable-2024-03-12";
  outputs = [
    "out"
    "dev"
  ];

  src = fetchFromGitHub {
    owner = "Nelarius";
    repo = "imnodes";
    rev = "8563e1655bd9bb1f249e6552cc6274d506ee788b";
    hash = "sha256-E7NNCxYq9dyVvutWbpl2a+D2Ap2ErvdYHBDqpX0kb0c=";
  };
  patches = [
    # CMake install rules
    (fetchpatch {
      url = "https://github.com/Nelarius/imnodes/commit/ff20336fcd82ce07c39fabd76d5bc9fa0a08b3bc.patch";
      hash = "sha256-JHOUjwMofDwt2kg6SLPFZmuQC4bOfjGa3qHFr5MdPIE=";
    })
  ];

  nativeBuildInputs = [ cmake ];
  buildInputs =
    [ imgui ]
    ++ lib.optionals withExamples [
      SDL2
      xorg.libXext
    ];

  cmakeFlags = [ (lib.cmakeBool "IMNODES_EXAMPLES" withExamples) ];

  passthru.tests.examples = imnodes.override { withExamples = true; };

  meta = {
    description = "Small, dependency-free node editor for dear imgui";
    homepage = "https://github.com/Nelarius/imnodes";
    license = lib.licenses.mit;
    maintainers = with lib.maintainers; [ SomeoneSerge ];
    mainProgram = "imnodes";
    platforms = lib.platforms.all;
  };
}