Files
Kilo-Org_kilocode/flake.nix
Catriel Müller 29deeb9985 Fix Nix Build (#57)
* fix: fix nix build

* refactor: fix cargo script

* fix: rust version

* refactor: fix desktop app build
2026-01-29 11:13:58 +01:00

85 lines
2.2 KiB
Nix

{
description = "Kilo development flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
outputs =
{ self, nixpkgs, ... }:
let
systems = [
"aarch64-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
forEachSystem = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
rev = self.shortRev or self.dirtyShortRev or "dirty";
in
{
devShells = forEachSystem (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
bun
nodejs_20
pkg-config
openssl
git
];
};
});
packages = forEachSystem (
pkgs:
let
node_modules = pkgs.callPackage ./nix/node_modules.nix {
inherit rev;
};
kilo = pkgs.callPackage ./nix/kilo.nix {
inherit node_modules;
};
desktop = pkgs.callPackage ./nix/desktop.nix {
inherit kilo;
};
# nixpkgs cpu naming to bun cpu naming
cpuMap = {
x86_64 = "x64";
aarch64 = "arm64";
};
# matrix of node_modules builds - these will always fail due to fakeHash usage
# but allow computation of the correct hash from any build machine for any cpu/os
# see the update-nix-hashes workflow for usage
moduleUpdaters = pkgs.lib.listToAttrs (
pkgs.lib.concatMap
(
cpu:
map
(os: {
name = "${cpu}-${os}_node_modules";
value = node_modules.override {
bunCpu = cpuMap.${cpu};
bunOs = os;
hash = pkgs.lib.fakeHash;
};
})
[
"linux"
"darwin"
]
)
[
"x86_64"
"aarch64"
]
);
in
{
default = kilo;
inherit kilo desktop;
}
// moduleUpdaters
);
};
}