summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.lock34
-rw-r--r--flake.nix34
2 files changed, 64 insertions, 4 deletions
diff --git a/flake.lock b/flake.lock
index bcd2dca..a6970b7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,7 +1,38 @@
1{ 1{
2 "nodes": { 2 "nodes": {
3 "naersk": {
4 "inputs": {
5 "nixpkgs": "nixpkgs"
6 },
7 "locked": {
8 "lastModified": 1671096816,
9 "narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=",
10 "owner": "nix-community",
11 "repo": "naersk",
12 "rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114",
13 "type": "github"
14 },
15 "original": {
16 "owner": "nix-community",
17 "repo": "naersk",
18 "type": "github"
19 }
20 },
3 "nixpkgs": { 21 "nixpkgs": {
4 "locked": { 22 "locked": {
23 "lastModified": 1674333941,
24 "narHash": "sha256-jelQS56nVVFXGOZg6yUZ/3QWgU1Loa4Bzd4+TEPJX+c=",
25 "path": "/nix/store/66j54843ng5il9h6iszzj2f7ajv5lqj1-source",
26 "rev": "339fc3dcc98f39d08496fb90c0d6b5fb81519246",
27 "type": "path"
28 },
29 "original": {
30 "id": "nixpkgs",
31 "type": "indirect"
32 }
33 },
34 "nixpkgs_2": {
35 "locked": {
5 "lastModified": 1670461440, 36 "lastModified": 1670461440,
6 "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", 37 "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=",
7 "owner": "NixOS", 38 "owner": "NixOS",
@@ -18,7 +49,8 @@
18 }, 49 },
19 "root": { 50 "root": {
20 "inputs": { 51 "inputs": {
21 "nixpkgs": "nixpkgs" 52 "naersk": "naersk",
53 "nixpkgs": "nixpkgs_2"
22 } 54 }
23 } 55 }
24 }, 56 },
diff --git a/flake.nix b/flake.nix
index b247db4..143af85 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,18 +1,45 @@
1{ 1{
2 description = "Generate constraint-based diagrams";
3
2 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; 4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
5 inputs.naersk.url = "github:nix-community/naersk";
3 6
4 outputs = { 7 outputs = {
5 self, 8 self,
6 nixpkgs, 9 nixpkgs,
10 naersk,
7 }: let 11 }: let
8 pkgs = nixpkgs.legacyPackages.x86_64-linux; 12 pkgs = import nixpkgs {
13 overlays = [self.overlays.default];
14 localSystem = "x86_64-linux";
15 };
16 naersk-lib = pkgs.callPackage naersk {};
9 in { 17 in {
10 devShell.x86_64-linux = pkgs.mkShell { 18 overlays.default = final: prev: {
19 diaphragm = final.lua5_4.passthru.pkgs.toLuaModule (naersk-lib.buildPackage {
20 src = ./.;
21 nativeBuildInputs = with final; [pkg-config rustPlatform.bindgenHook];
22 buildInputs = with final; [pango z3];
23
24 copyBins = false;
25 copyLibs = true;
26
27 postInstall = ''
28 mkdir -p $out/lib/lua/5.4 $out/share/lua/5.4
11 29
30 mv $out/lib/libdiaphragm.so $out/lib/lua/5.4
31 cp $src/lua-bindings/diaphragm.lua $out/share/lua/5.4/
32 '';
33 });
34 };
35
36 packages.x86_64-linux.default = pkgs.diaphragm;
37
38 devShell.x86_64-linux = pkgs.mkShell {
12 LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; 39 LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
13 40
14 buildInputs = with pkgs; [ 41 buildInputs = with pkgs; [
15 pkgconfig 42 pkg-config
16 cairo 43 cairo
17 gdk-pixbuf 44 gdk-pixbuf
18 gtk3 45 gtk3
@@ -22,6 +49,7 @@
22 cargo-watch 49 cargo-watch
23 50
24 lua5_4 51 lua5_4
52 luarocks
25 stylua 53 stylua
26 ]; 54 ];
27 }; 55 };