blob: 441823076c2ca2a942e13448789ddb9e2d3e36fa (
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
|
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
rust-overlay.url = "github:oxalica/rust-overlay";
};
outputs = { self, nixpkgs, rust-overlay }:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
system = "x86_64-linux";
app = "lisp";
rust = pkgs.rust-bin.nightly.latest.default.override { extensions = [ "rust-src" ]; };
rustPlatform = pkgs.makeRustPlatform { cargo = rust; rustc = rust; };
shellInputs = with pkgs; [
rust clang mold rust-analyzer
];
appNativeBuildInputs = with pkgs; [
pkg-config
];
appBuildInputs = appRuntimeInputs ++ (with pkgs; [
]);
appRuntimeInputs = with pkgs; [
];
in
{
devShells.${system}.${app} = pkgs.mkShell {
nativeBuildInputs = appNativeBuildInputs;
buildInputs = shellInputs ++ appBuildInputs;
shellHook = ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.lib.makeLibraryPath appRuntimeInputs}"
ln -fsT ${rust} ./.direnv/rust
'';
};
devShell.${system} = self.devShells.${system}.${app};
packages.${system}.${app} = rustPlatform.buildRustPackage {
pname = app;
version = "0.1.0";
src = ./.;
cargoSha256 = "sha256-lzs+8qAsBJ/ms/OppxnKfJChV9+xM0W/QRZGPn+9uv4=";
nativeBuildInputs = appNativeBuildInputs;
buildInputs = appBuildInputs;
postInstall = ''
cp -r assets $out/bin/
'';
};
defaultPackage.${system} = self.packages.${system}.${app};
apps.${system}.${app} = {
type = "app";
program = "${self.packages.${system}.${app}}/bin/${app}";
};
defaultApp.${system} = self.apps.${system}.${app};
checks.${system}.build = self.packages.${system}.${app};
};
}
|