From 1535dea8ab8e0a5a9d00664de3509db84c1908a9 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Fri, 3 Feb 2023 09:49:00 +0100 Subject: flake: package diaphragm --- flake.lock | 34 +++++++++++++++++++++++++++++++++- flake.nix | 34 +++++++++++++++++++++++++++++++--- 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,6 +1,37 @@ { "nodes": { + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1671096816, + "narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=", + "owner": "nix-community", + "repo": "naersk", + "rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1674333941, + "narHash": "sha256-jelQS56nVVFXGOZg6yUZ/3QWgU1Loa4Bzd4+TEPJX+c=", + "path": "/nix/store/66j54843ng5il9h6iszzj2f7ajv5lqj1-source", + "rev": "339fc3dcc98f39d08496fb90c0d6b5fb81519246", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1670461440, "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", @@ -18,7 +49,8 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "naersk": "naersk", + "nixpkgs": "nixpkgs_2" } } }, diff --git a/flake.nix b/flake.nix index b247db4..143af85 100644 --- a/flake.nix +++ b/flake.nix @@ -1,18 +1,45 @@ { + description = "Generate constraint-based diagrams"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; + inputs.naersk.url = "github:nix-community/naersk"; outputs = { self, nixpkgs, + naersk, }: let - pkgs = nixpkgs.legacyPackages.x86_64-linux; + pkgs = import nixpkgs { + overlays = [self.overlays.default]; + localSystem = "x86_64-linux"; + }; + naersk-lib = pkgs.callPackage naersk {}; in { - devShell.x86_64-linux = pkgs.mkShell { + overlays.default = final: prev: { + diaphragm = final.lua5_4.passthru.pkgs.toLuaModule (naersk-lib.buildPackage { + src = ./.; + nativeBuildInputs = with final; [pkg-config rustPlatform.bindgenHook]; + buildInputs = with final; [pango z3]; + + copyBins = false; + copyLibs = true; + + postInstall = '' + mkdir -p $out/lib/lua/5.4 $out/share/lua/5.4 + mv $out/lib/libdiaphragm.so $out/lib/lua/5.4 + cp $src/lua-bindings/diaphragm.lua $out/share/lua/5.4/ + ''; + }); + }; + + packages.x86_64-linux.default = pkgs.diaphragm; + + devShell.x86_64-linux = pkgs.mkShell { LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; buildInputs = with pkgs; [ - pkgconfig + pkg-config cairo gdk-pixbuf gtk3 @@ -22,6 +49,7 @@ cargo-watch lua5_4 + luarocks stylua ]; }; -- cgit v1.2.3