blob: 986c9acd26b6365081c5c40ba8ca1bc20ba2bb73 (
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
|
{
inputs = {
teleia.url = "github:lcolonq/teleia";
nixpkgs.follows = "teleia/nixpkgs";
st = {
url = "github:lcolonq/st";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
native = {
renderer = inputs.teleia.native.build ./. "newton_renderer";
renderer-nonnix = pkgs.stdenv.mkDerivation {
name = "newton-renderer-nonnix";
phases = [ "installPhase" ];
installPhase = ''
mkdir $out
cp -rv ${native.renderer}/bin/newton_renderer $out
chmod +w $out/newton_renderer
patchelf --remove-rpath $out/newton_renderer
patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 $out/newton_renderer
strip $out/newton_renderer
chmod -w $out/newton_renderer
'';
};
};
wasm = {
shader = (inputs.teleia.wasm.build ./. "newton_shader").overrideAttrs (cur: prev: {
preBuild = ''
cd ./crates/shader
'';
postBuild = ''
mv ./dist ../..
cd ../..
'';
});
};
in {
packages.${system} = {
inherit native wasm;
st = inputs.st.packages.x86_64-linux.st;
};
devShells.${system}.default = inputs.teleia.shell;
};
}
|