aboutsummaryrefslogtreecommitdiff
path: root/.config/nixpkgs/packages/boomer/default.nix
blob: 417aa22b753d6a13f6a89a57c618b40269e3483f (plain)
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
57
58
59
{ stdenv, fetchFromGitHub, makeWrapper, nim, libX11, libXrandr, libGL }:

let

  x11-nim = fetchFromGitHub {
    repo = "x11";
    owner = "nim-lang";
    rev = "b7bae7dffa4e3f12370d5a18209359422ae8bedd";
    sha256 = "1j3kyp0vf2jl20c67gcm759jnfskdf0wc4ajrdbvfxias285c5sb";
  };

  opengl-nim = fetchFromGitHub {
    repo = "opengl";
    owner = "nim-lang";
    rev = "a6fb649e5bd94d8420d4a11287092a4dc3e922b4";
    sha256 = "0w62lfrdms2vb24kd4jnypwmqvdk5x9my1dinnqdq82yl4nz6d0s";
  };

in stdenv.mkDerivation rec {

  pname = "boomer";
  version = "d16c65ce3eae31f4c77de1585b340d8d624c1252";
  src = fetchFromGitHub {
    owner = "tsoding";
    repo = "boomer";
    rev = version;
    sha256 = "1kqfg2i5p1zrvl9jx0ig7f0ckxnaxi9svr0bs52aavwydldnnl8d";
  };

  buildInputs = [ nim libX11 libXrandr libGL makeWrapper ];

  buildPhase = ''
    runHook preBuild
    HOME=$TMPDIR
    nim -p:${x11-nim}/ -p:${opengl-nim}/src c -d:release src/boomer.nim
    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall
    install -Dt $out/bin src/boomer
    runHook postInstall
  '';

  fixupPhase = ''
    runHook preFixup
    patchelf --set-rpath ${
      stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 libXrandr libGL ]
    } $out/bin/boomer
    wrapProgram "$out/bin/boomer" --set LIBGL_ALWAYS_SOFTWARE 1
    runHook postFixup
  '';

  meta = with stdenv.lib; {
    license = licenses.mit;
    platforms = platforms.linux;
    homepage = "https://github.com/tsoding/boomer";
  };
}