summaryrefslogtreecommitdiff
path: root/shell.nix
blob: 4091fefa91d9aa50cb57b084ad97253b32565ce8 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# SPDX-FileCopyrightText: Atlas Engineer LLC
# SPDX-License-Identifier: BSD-3-Clause

# To start the CL REPL:

# nix-shell /path/to/shell.nix --run 'sbcl --dynamic-space-size 3072'

{ pkgs ? import <nixpkgs> {} } :
with builtins;
let inherit (pkgs) stdenv; in
with pkgs;
stdenv.mkDerivation {
  name = "nyxt-dev";

  nativeBuildInputs = [
    pkgs.libressl.out
    pkgs.libfixposix.out
    pkgs.sqlite.out
    pkgs.pkg-config.out
    pkgs.sbcl
  ]
  ++ pkgs.lib.optionals (!pkgs.stdenv.isDarwin) [
    pkgs.webkitgtk
  ];

  buildInputs = [
    pkgs.sqlite
    pkgs.pkg-config
    pkgs.enchant.out
    pkgs.libfixposix.out
  ]
  ++ pkgs.lib.optionals (!pkgs.stdenv.isDarwin) [
    pkgs.gobject-introspection
    pkgs.gsettings-desktop-schemas.out
    pkgs.glib-networking.out
    pkgs.pango.out
    pkgs.cairo.out
    pkgs.gdk-pixbuf.out
    pkgs.gtk3.out
    pkgs.glib.out
    pkgs.webkitgtk
  ]
  ++ (with gst_all_1; [
    gst-plugins-base
    gst-plugins-good
    gst-plugins-bad
    gst-plugins-ugly
    gst-libav
  ]);

  LD_LIBRARY_PATH = with lib;
    makeLibraryPath (
      [
        pkgs.enchant.out
        pkgs.sqlite.out
        pkgs.pkg-config.out
        pkgs.libfixposix.out
        pkgs.libressl.out
      ]
      ++ pkgs.lib.optionals (!pkgs.stdenv.isDarwin) [
        pkgs.gobject-introspection
        pkgs.gsettings-desktop-schemas.out
        pkgs.glib-networking.out
        pkgs.pango.out
        pkgs.cairo.out
        pkgs.gdk-pixbuf.out
        pkgs.gtk3.out
        pkgs.glib.out
        pkgs.webkitgtk
      ]
    );

  GIO_MODULE_DIR = "${pkgs.glib-networking.out}/lib/gio/modules/";
  GIO_EXTRA_MODULES = "${pkgs.glib-networking.out}/lib/gio/modules/";

  shellHook =
    ''
    NYXT_ROOT=`dirname ${toString ./README.org}`;
    export CL_SOURCE_REGISTRY=$HOME/common-lisp//:$NYXT_ROOT/_build//:$CL_SOURCE_REGISTRY;
    '';

}