Refactor flake.nix slightly

main
xenia 2023-12-29 23:21:40 +01:00
parent 4e92c0f646
commit a0fb48c088
2 changed files with 20 additions and 15 deletions

View File

@ -1,5 +1,5 @@
fn main() {
println!("cargo:rustc-link-search=native=lib");
println!("cargo:rustc-link-search=native={}", env!("SITTERS"));
for lang in &[
#[cfg(feature = "bash")]
"bash",

View File

@ -9,7 +9,9 @@
outputs = { self, nixpkgs, flake-utils, rust-overlay, tree-sitters }:
flake-utils.lib.eachDefaultSystem (sys:
let pkgs = import nixpkgs {
let enabledSitters = ["bash" "c" "python" "rust" "nix" "agda" "html" "javascript"];
pkgs = import nixpkgs {
system = sys;
overlays = [ (import rust-overlay) ];
};
@ -20,25 +22,25 @@
rustc = rust;
cargo = rust;
};
sitters = tree-sitters.packages.${sys};
sitterlist = [
sitters.bash sitters.c sitters.python sitters.rust sitters.nix sitters.agda sitters.html sitters.javascript
];
sitterlist = map (lang: tree-sitters.packages.${sys}.${lang}) enabledSitters;
sitters = pkgs.runCommand "sitters" {inherit sitterlist;} ''
mkdir -p $out
for sitter in $sitterlist ; do
echo "Copying $sitter"
cp $sitter/lib/*.a $out
done
'';
kak-tree-bin = platform.buildRustPackage {
name = "kak-tree-bin";
src = ./.;
cargoLock = { lockFile = ./Cargo.lock; };
buildFeatures = ["bash" "c" "python" "rust" "nix" "agda" "html" "javascript"];
inherit sitterlist;
preBuild = ''
mkdir lib
for sitter in $sitterlist ; do
echo "Copying $sitter"
cp $sitter/lib/* lib
done
'';
buildFeatures = enabledSitters;
doCheck = false;
SITTERS = sitters;
};
in rec {
@ -58,6 +60,9 @@
};
devShells.default = pkgs.mkShell {
packages = [ rust ];
shellHook = ''
export SITTERS="${sitters}"
'';
};
}
);